粘贴到textarea中的文本未插入数据库

时间:2014-09-01 12:49:18

标签: php mysql textarea sql-insert

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

从某些网页/网站复制的文本有效,例如从blindtextgenerator.com复制的文本,但不是从thebestpageintheuniverse.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); 

}

2 个答案:

答案 0 :(得分:4)

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

现在我找到了解决方案

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');

这对我有用。如果这对您有用,请告诉我。

由于

答案 1 :(得分:2)

我遇到了同样的问题,这给了我一个关于错误的线索:How can I prevent SQL injection in PHP?就像昆汀所说的那样。有一个设置,可能是PHP设置,不允许插入大量文本而不准备sql语句。

我改变了我对插入和更新的方式,改变了上面和上面链接中提到的方式:http://php.net/manual/en/mysqli-stmt.bind-param.php