我有一個用戶也可以添加註釋的文本區域。在下一頁中,我使用$_POST[Comments]
來顯示輸入內容。我有一個編輯按鈕可以返回並查看輸入的內容並編輯筆記,但是當我顯示$_POST[Comments]
時,它會顯示一直到撇號的所有內容。如何將使用PHP的文本區域中的互斥傳遞給MySQL
例子:
原來錄入:Let's try this.
當編輯:Let
現在,當我把它傳遞給服務器做我用下面的函數來防止SQL注入
的SQL加function keepSafe($value) {
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
if (!is_numeric($value)) {
$value = "'" . mysqli_real_escape_string($value) . "'";
}
return $value;
}
以下是我用來格式化SQL插入的輸入。
$Comments = str_replace("\n","<br />",$_POST['CustComments']);
$Comments = keepSafe($_POST['Comments']);
我需要能夠在提交前編輯時在筆記部分看到所有的撇號。我想確保當我提交它時,SQL注入會阻止安全代碼。
您第一次使用'$ _ POST [ 'CustComments']'然後'$ _ POST [ '評論']'你的最後一個例子,如果該事項(它應該,對你)。另外(不是答案特定的),你應該替換'\ r \ n'而不是'\ n'(從Windows的角度來看)。同樣也(不回答具體),你應該使用準備語句,而不是直接變量插入(因爲你使用mysqli)。 – newfurniturey
[偉大的逃避現實(或:你需要知道如何處理文本中的文本)](http://kunststube.net/escapism/) – deceze
它看起來像你從一個非常古老的來源獲得示例代碼。很久以前,魔術引號已經從PHP中刪除。至於如何正確處理這個問題,那就是準備好的陳述的目的。 – GordonM