我通常使用此函数来清理我的表单输入,然后将它们存储到我的数据库中:
//Function to sanitize values received from the form. Prevents sql injection function clean($str) { $str = @trim($str); if(get_magic_quotes_gpc()) { $str = stripslashes($str); } return MysqL_real_escape_string($str); }
直到今天我还没有意识到MysqL_real_escape_string需要数据库连接,因为我在将数据存储到数据库之前清理数据时只使用了它.
我尝试在联系表单上使用该功能,并得到“无法建立到服务器的链接”错误.我可以连接到数据库,但没有必要,因为我只是在通过联系表单发送到我的电子邮件之前尝试清理数据.
使用filter_var()
http://php.net/manual/en/function.filter-var.php
就像你想要清理电子邮件一样:
$_POST['email'] = filter_var($_POST['email'],FILTER_SANITIZE_EMAIL);
消息
$_POST['message'] = filter_var($_POST['message'],FILTER_SANITIZE_STRING);
是恩惠