所见即所得文本编辑器在查询中显示不好

WYSIWYG text editor showing not good in query

本文关键字:显示 查询 文本 文本编辑 编辑器 所见即所得      更新时间:2023-09-26

我遇到了一个问题,我将CKeditor集成到了我的CMS中,当我将一些文本复制到查询中时,在

之后显示一个<'h2> <'p>,然后如果有人试图删除这些统计信息,在我删除后,它在页面上显示了更多的<'h2> <'p>

<'p>
 <'p>
 <'p>
 <'p>

page.php

// Query the body section for the proper page
    $stmt = $con->prepare('SELECT pagebody FROM travel WHERE link = ?');
    $stmt->bind_param('s', $pageid);
    $stmt->execute();
    $result = $stmt->get_result();
    while ($row = $result->fetch_array()) {
        // do something with $row
        $body = htmlspecialchars_decode(stripslashes($row['pagebody'])); //pentru caractere speciale
    } <?php echo $body; ?>

//编辑页面

<?php
// You may want to obtain refering site name that this post came from for security purposes here
// exit the script if it is not from your site and script
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$pid = $_POST['pid'];
$titlu = $_POST['titlu'];
$link = $_POST['link'];
$keyword = $_POST['keyword'];
$poza = $_POST['poza'];
$descriere = $_POST['descriere'];
$data = $_POST['data'];
$pagebody = $_POST['pagebody'];
// Filter Function -------------------------------------------------------------------
function filterFunction ($var) { 
    $var = nl2br(htmlspecialchars($var));
    $var = str_replace("/", "''''", $var);
    $var = preg_replace("~/~", "''''", $var);
    return $var; 
} 
$titlu = filterFunction($titlu);
$link = filterFunction($link);
$keyword = filterFunction($keyword);
$poza = filterFunction($poza);
$descriere = filterFunction($descriere);
$data = filterFunction($data);
$pagebody = filterFunction($pagebody);
// End Filter Function --------------------------------------------------------------
include_once "../conx.php";
// Add the updated info into the database table
$stmt = $con->prepare("UPDATE travel SET titlu=?, link=?, keywords=?, poza=?, descriere=?, pagebody=?, data=? WHERE id = ?");
    // TODO check that $stmt creation succeeded
    // "s" means the database expects a string
    $stmt->bind_param("ssssssss", $titlu, $link, $keyword, $poza, $descriere, $pagebody, $data, $pid);
    $stmt->execute();
    $stmt->close();

这是由于PHP代码中的这一行:

 $var = str_replace("/", "''''", $var);