在没有mysql_real_escape_string的情况下清理联系表单

Bro*_*ke. 7 php forms security sanitize contact-form

我通常使用此函数来清理表单输入,然后将它们存储到我的数据库中:

//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);
}
Run Code Online (Sandbox Code Playgroud)

直到今天,我还没有意识到mysql_real_escape_string需要数据库连接,因为我在将数据存储到数据库之前清理数据时只使用了它.

我尝试在联系表单上使用该功能,并得到"无法建立到服务器的链接"错误.我可以连接到数据库,但没有必要,因为我只是在通过联系表单发送到我的电子邮件之前尝试清理数据.

清理未存储在mysql数据库中的数据的最佳方法是什么?这些数据是否仍需要清理?

Hai*_*vgi 15

使用 filter_var()

http://php.net/manual/en/function.filter-var.php

就像你想要清理电子邮件一样:

$_POST['email'] =    filter_var($_POST['email'], FILTER_SANITIZE_EMAIL); 
Run Code Online (Sandbox Code Playgroud)

消息

$_POST['message'] = filter_var($_POST['message'], FILTER_SANITIZE_STRING);
Run Code Online (Sandbox Code Playgroud)

是恩惠