我有一个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);
}
答案 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