簡體   English   中英

PHP - Filter_var替代?

[英]PHP - Filter_var alternative?

我構建了一個PHP腳本來輸出表單中發布的數據,但我遇到了一個問題。 該網站將運行的服務器運行PHP 5.1.6。 此版本的PHP不支持filter_var。

我需要在短期內(最好是昨天)知道一個替代方案,並且無法在Google或Stack Overflow上找到直接的內容。

Mayhap這里有人遇到了同樣的問題並且快速解決了我的問題?

這段代碼:

$email= filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
$answer= filter_var($_POST['answer'], FILTER_SANITIZE_STRING);

需要與PHP 5.1.6兼容,因此在genuinity上檢查電子郵件地址,並且在任一字段中都不使用惡意代碼。 有小費嗎?

非常感謝!

對於電子郵件,您可以使用正則表達式:(例如: http//www.totallyphp.co.uk/validate-an-email-address-using-regular-expressions

對於字符串你也可以做正則表達式,但這有點太重了,所以如果你把它發送到數據庫可能是mysql_real_escape_string()的組合,對於html你應該使用htmlentities()

http://de.php.net/manual/en/function.mysql-real-escape-string.php

http://www.php.net/manual/en/function.htmlentities.php

我不認為filter_var函數與僅僅使用這些方法有很大不同

您可以通過PECL將擴展安裝到PHP 5.1: http//pecl.php.net/package/filter

我會一般使用正則表達式。 它為您提供最大的靈活性。 在互聯網上有很多有用的資源。 看看這里這里

使用我在前面的答案中給出的信息,這是我如何解決我的問題:

<?PHP // Retreive POST data and sanitize it: trim string, no HTML, plain text
$variable1=htmlentities(trim($_POST['input1']), ENT_NOQUOTES);
$variable2=htmlentities(trim($_POST['input2']), ENT_NOQUOTES);
$emailaddress=$_POST['email']; // sanitizing email address happens below

if(eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $emailadres)){    // check email address and if legit, do this:
        echo '<p>The e-mail address given is valid.</p>'

} else{ // if email is not legit, do this:
        echo '<p>The e-mail address given is not valid.</p>';
}
?>

我希望這可以幫助別人 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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