2012-02-03 57 views
4

我構建了一個php腳本來輸出張貼在表單中的數據,但是我遇到了一個問題。該網站將運行的服務器運行PHP 5.1.6。此版本的PHP不支持filter_var。PHP - Filter_var替代?

我需要知道在短期內(最好是昨天)的替代方案,並且無法在Google或堆棧溢出上直接找到某些東西。

Mayhap有人在這裏遇到了同樣的問題,併爲我快速解決?

此代碼:

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

需要與PHP 5.1.6兼容,因此該電子郵件地址會在genuinity檢查,並沒有惡意代碼在任何領域。有小費嗎?

非常感謝!

+3

使用正則表達式來代替filter_var是唯一的選擇。 – 2012-02-03 09:21:38

+0

正則表達式對於簡單文本替換有點重量級。考慮爲此目的定義的函數:mysql_real_escape_string(),htmlentities(),addslashes(),... – EGOrecords 2012-02-03 09:38:19

回答

4

的電子郵件,你可以使用正則表達式:(例如: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功能確實遠遠比只使用這些方法

+0

謝謝,EGOrecords。我將使用你給出的電子郵件的例子和字符串的特性。如果其他人將來也有同樣的問題,這裏有一個很好的開始幫助你:htmlentities:http://codeassembly.com/How-to-sanitize-your-php-input/ – WebGremlin 2012-02-03 10:33:06

+0

...這真的應該'已經被給出了tick =) – Toby 2012-11-20 14:05:04

2

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

+0

如果他無法更新到更新的PHP版本,他不能安裝PHP擴展(因爲您總是需要更深入的訪問服務器...) – EGOrecords 2012-02-03 09:36:50

+0

他沒有說這個;) – DerVO 2012-02-03 09:43:42

+0

坦率地說,EGOrecords是正確的。儘管如此,感謝您的意見。 :) – WebGremlin 2012-02-03 09:48:49

2

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

-1

使用我在以前的答案中給出的信息,這裏是我如何固定我的問題:

<?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>'; 
} 
?> 

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