我建立了一个使用所见即所得编辑器 (TinyMCE) 的博客。您构建了一篇博客文章,发布它,并将其存储在 MySQL 数据库中。然后该帖子被另一个页面拉出。我敢肯定,对你们大多数人来说都是简单的东西。
它在我的测试服务器上运行良好,所以我将其切换到另一台服务器,但现在图像无法在查看博客页面上正常显示。
我检查了 img URL,它看起来像这样。
<img src="\"/img/parking1.png\"" alt="\"\"">
我还没有写一个方法来做到这一点,但它似乎是转义 () 引号。
它没有在我的上一个服务器上执行此操作,并且工作正常,所以我假设它是服务器(托管)安全问题。
我试图删除它们,用空白替换它们:
$cleanpost = str_replace('\', '',$post);
$post
是从数据库中提取的数据。这是错误的语法,将反斜杠放在引号之间会破坏它。
谁能告诉我怎么做?或者我什至认为这是我应该做的是正确的吗?
非常感谢。
编辑:用于博客文章插入的 PHP 代码
if (isset($_POST['blogpost'])) {
$nowdate = new DateTime('NOW');
$thisdate = $nowdate->format('Y-m-d H:i:s');
$post = $_POST['blogpost'];
$title = $_POST['posttitle'];
$status = 'yes';
try {
$conn = new PDO('mysql:host=host;dbname=dbname', $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare('INSERT INTO blogposts(posttext, thisdate, posttitle, active) VALUES(:post, :postdate, :posttitle, :status)');
$stmt->execute(array(
':post'=>$post, ':postdate'=>$thisdate, ':posttitle'=>$title, ':status'=>$status
));
//echo $stmt->rowCount(); // 1
} catch(PDOException $e) {
echo 'Error: ' . $e->getMessage();
echo 'died';
};
}
最佳答案
您可以使用 stripslashes()
对字符串进行反转义。
$post = stripslashes($post);
关于PHP Remove\from 从数据库中提取的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17492011/