Saya mencoba menemukan cara untuk secara efektif membersihkan semua variabel POST dan GET dengan satu fungsi. Inilah fungsinya sendiri:
//clean the user's input
function cleanInput($value, $link = '')
{
//if the variable is an array, recurse into it
if(is_array($value))
{
//for each element in the array...
foreach($value as $key => $val)
{
//...clean the content of each variable in the array
$value[$key] = cleanInput($val);
}
//return clean array
return $value;
}
else
{
return mysql_real_escape_string(strip_tags(trim($value)), $link);
}
}
Dan inilah kode yang akan memanggilnya:
//This stops SQL Injection in POST vars
foreach ($_POST as $key => $value)
{
$_POST[$key] = cleanInput($value, $link);
}
//This stops SQL Injection in GET vars
foreach ($_GET as $key => $value)
{
$_GET[$key] = cleanInput($value, $link);
}
Bagi saya ini sepertinya ini akan berhasil. Tetapi untuk beberapa alasan itu tidak mengembalikan array dari beberapa kotak centang yang saya miliki di formulir. Mereka tetap tampil kosong.
Saya telah menguji kode saya tanpa fungsi di atas dan berfungsi dengan baik, saya hanya ingin sedikit keamanan tambahan di sana.
Terima kasih!