Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 转义文本区域中的撇号和其他字符_Php_Html_Forms_Escaping_Textarea - Fatal编程技术网

Php 转义文本区域中的撇号和其他字符

Php 转义文本区域中的撇号和其他字符,php,html,forms,escaping,textarea,Php,Html,Forms,Escaping,Textarea,所以我发现我的这个表单已经崩溃了,直到有人在这个文本区域键入撇号时第一个撇号之前,我甚至没有提交内容。我如何转义这些内容,让它们进入我的MySQL表?谢谢 <form action=\"./functions/notes.php\" method='post'> <input type='hidden' id='ID' name='ID' value='{$row['ID']}' /> <textarea placeholder=\"Add more notes

所以我发现我的这个表单已经崩溃了,直到有人在这个文本区域键入撇号时第一个撇号之前,我甚至没有提交内容。我如何转义这些内容,让它们进入我的MySQL表?谢谢

<form action=\"./functions/notes.php\" method='post'>
<input type='hidden' id='ID' name='ID' value='{$row['ID']}' />

<textarea placeholder=\"Add more notes here...\" name=\"notes\"></textarea><br />
<input type='submit' name='formNotes' id='formNotes' value='Add to Notes' />
</form>


然后在notes.php文件中

$notesID = $_POST['ID'];
$note = $_POST['notes'];
$date= date('Y-m-d');
$result = mysql_query("UPDATE Project_Submissions SET Notes=CONCAT(Notes,'<br />".$date." ".$note."') WHERE ID ='".$notesID."'");
$notesID=$\u POST['ID'];
$note=$_POST['notes'];
$date=日期('Y-m-d');
$result=mysql\u query(“更新项目”\u提交集Notes=CONCAT(Notes,“
“$date.”“$note.”),其中ID=“$notesID.”;
撇号对SQL有特殊的意义,因此为了将它们放入需要“转义”的数据中,PHP提供了一个快速的功能,它还可以执行一些安全检查,以帮助防止数据库被入侵

$note = mysql_real_escape_string($note);
从mysql迁移到mysqlI也是如此

对于MySQLI,您只需要提供连接变量就可以了

$note = mysqli_real_escape_string($link, $note);

请它们不再得到维护,而是在使用。学习替代,并考虑使用PDO。如果使用预先准备好的语句,就不必担心转义任何内容。@JayBlanchard我使用mysqli而不是mysql。你认为这有问题吗?我不知道有什么函数可以与mysqli_fetch_assoc相比,用于返回我需要的所有内容。我读到mysqli是改进版。@JoseManuelAbarcaRodríguez实际上,urlencode是错误的函数/方法。正确的答案是绑定查询,正确/错误的答案是逃避查询。使用urlencode需要您在提取值时进行URDECODE,否则您将在文本中得到一堆
%20
值(和其他url实体)。至少,将它传递到htmlentities中。@zappmysqli比PDO好。选择哪一个只是个人喜好。关键是绑定查询,而不是使用连接和转义构建查询。哦,是的,mysqli是经过改进的mysql。Mysql将在以后的版本中删除。谢谢!这很有帮助,并向我展示了如何进行更改