2015-05-29 64 views
1

所以我發現這種形式我只是分崩離析,甚至沒有提交內容直到第一個撇號時有人鍵入撇號到這個文本區域。我如何去轉義內容,使它們進入我的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."'"); 
+2

http://php.net /manual/en/function.urlencode.php –

+4

請[停止使用'mysql_ *'函數](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php )。他們不再被維護,並[正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。瞭解[準備的陳述](http://en.wikipedia.org/wiki/Prepared_statement),並考慮使用PDO,[它不像你想象的那麼難](http://jayblanchard.net/demystifying_php_pdo.html) 。如果您使用準備好的語句,則不必擔心會轉義任何*。 –

+0

@JayBlanchard我使用mysqli而不是mysql。你認爲這有問題嗎?我不知道可以與mysqli_fetch_assoc相媲美的函數來返回我需要的所有東西。我讀到mysqli是改進版本。 – Zapp

回答

1

撇號有特殊意義的SQL,所以讓他們到他們需要的數據「逃脫」 PHP有一個快速功能這一點,還會執行一些安全檢查以幫助防止數據庫被黑客入侵。

$note = mysql_real_escape_string($note); 

從MySQL和到mysqli的

與庫MySQLi移開DITTO,這是類似的,你只需要提供連接變量....

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

謝謝!這很有幫助,並向我展示瞭如何進行更改 – new2programming