簡體   English   中英

將foreach和mysqli_real_escape_string用於許多帖子值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM