粘贴到文本区域的文本未插入数据库


Text pasted into textarea not being inserted into database

我有一个文本区域,它在提交时插入数据库。它在键入文本时有效,但有时在将文本粘贴到文本区域时不起作用。相反,它成功发布,没有错误,

从某些网页/网站复制的文本有效,例如从blindtextgenerator.com复制的文本,但从euniverse.net中的主页复制的文本无效(仅举个例子)

我不确定是什么情况导致粘贴的文本无法插入数据库。我一直在运行测试,我不认为这是由链接、选项卡、新行或文本大小引起的。

以下是相关的php文件

 if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    header("/venue/index.php");
$title = $_POST['title'];
$post = $_POST['post'];
$title = htmlentities($title);
$post = htmlentities($post);
      $operation = "INSERT INTO talk (title, user, post)
                          VALUES('". $title ."','". $_SESSION['name'] ."', '". $post ."');";
$result = mysqli_query($con, $operation); 
}

当我复制并粘贴到文本区域时,它不允许我在数据库中插入值。

现在我找到了的解决方案

HTML---<textarea name="description"></textarea>

PHP---请添加addslashes,如$text = addslashes($_POST['description']);

$query = "INSERT INTO addevent(event_description) VALUES ('$text')"; 
mysqli_query($conn,$query) or die('unsuccessful');

这对我有效。让我知道这对你是否也有效。

感谢

我也遇到了同样的问题,这给了我一个错误的线索:如何防止PHP中的SQL注入?就像昆汀已经说过的。有一个设置,可能是PHP设置,不允许在不准备sql语句的情况下插入大量文本。

我把插入和更新的方式改为上面和这里的链接中提到的方式:http://php.net/manual/en/mysqli-stmt.bind-param.php

相关文章: