[英]Use foreach and mysqli_real_escape_string for many post value
我有一個收集許多數據的頁面,在將sql查詢插入數據庫之前,我需要轉義這些數據。
我在SQL查詢之前寫這個:
foreach($_POST as $k => $v) $_POST[$k] = mysqli_real_escape_string($conn,$v);
我的$ conn是:
$conn = new mysqli('localhost', 'xxx', 'yyy', 'zzz');
仍然可以工作,但是我不確定是否安全。
這是處理POST變量的極其錯誤的方法 。 在很多方面都錯了。
並且肯定是不安全的。
取決於您將在查詢中使用POST數據的方式,此代碼可能會更正,或者根本無法使用和不安全。
正如Barmar所說,您應該使用准備好的語句。 如果您也為插入數據准備了語句,則更好。
這應該是安全的。
$query=$conn->prepare("select * from yourtable where colum= ? and column2 = ? ");
$query->bind_param('ss', $_POST['var1'],$_POST['var2'] );
嘗試這個
$conn = new mysqli('localhost', 'xxx', 'yyy', 'zzz');
$ARR_DATA = array();
foreach($_POST as $k => $v)
{
$ARR_DATA[$k] = mysqli_real_escape_string($conn,$v); // store your escaped value in $ARR_DATA
}
現在,您可以在任意位置使用$ARR_DATA
值,而不是使用$_POST
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.