Я построил 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, поэтому адрес электронной почты проверяется на подлинность и что в обоих полях не используется вредоносный код. Какие-нибудь советы?
Спасибо!
для писем вы можете использовать Regex: (например: 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-]+)*(\.[az]{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>'; } ?>
Я надеюсь, что это помогает кому-то 🙂