2012-02-03 59 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>'; 
} 
?> 

我希望这可以帮助别人:)