На моем веб-сайте у меня есть форма для связи с нами, которая работала нормально, пока я не обновился до php 7. Теперь, когда я заполняю форму, она возвращается как неверный адрес электронной почты, и в журналах не отображается никаких ошибок.
Раньше он показывал ошибку как
PHP Fatal error: Uncaught Error: Call to undefined function eregi() in /app/index.php:27
Это строка 27:
if (!empty($email) && !preg_match("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)){
$err[] = "Invalid email<br>";
}
Поэтому я изменил eregi
на preg_match
, но теперь это просто не работает.
<?php
$err=array();
if(count($_POST) > 0)
{
$name = isset($_REQUEST["name"]) ? trim($_REQUEST["name"]) : "";
$address = isset($_REQUEST["subject"]) ? trim($_REQUEST["subject"]) : "";
$country = isset($_REQUEST["country"]) ? trim($_REQUEST["country"]) : "";
$email = isset($_REQUEST["email"]) ? trim($_REQUEST["email"]) : "";
$contact_no = isset($_REQUEST["contact_no"]) ? trim($_REQUEST["contact_no"]) : "";
$budget = isset($_REQUEST["budget"]) ? trim($_REQUEST["budget"]) : "";
$com_name = isset($_REQUEST["com_name"]) ? trim($_REQUEST["com_name"]) : "";
$message_text = isset($_REQUEST["message_text"]) ? trim(addslashes($_REQUEST["message_text"])) : "";
$message_text=htmlentities($message_text,ENT_QUOTES);
$ipaddress = $_SERVER['REMOTE_ADDR'];
$date = date("F j, Y, g:i a");
if(empty($name)) $err[]="You must enter your name,";
if(empty($email)) $err[]="proper email address,";
if (!empty($email) && !preg_match("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)){
$err[] = "Invalid email<br>";
}
if(empty($contact_no)) $err[]="proper contact no";
if(!empty($contact_no) && !(is_numeric($contact_no)) )
$err[]="Contact No must be in Number<br>";
why isn't this code working?
Вы сбросили много кода, но почти не объяснили, что этот код должен делать или в чем заключается реальная проблема. Пожалуйста, добавьте формулировку проблемы к вашему вопросу. - person Tim Biegeleisen   schedule 01.06.2019/
в начале и в конце шаблонаpreg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/"
- person The fourth bird   schedule 01.06.2019'/^[\w-]+(?:\.[\w-]+)*@[\w-]+(?:\.[a-z0-9-]+)*\.[a-z]{1,12}$/i'
с помощьюi
флаг (без учета регистра). Есть много новых доменов верхнего уровня, и я не буду ограничивать их окончанием на\.[a-z]{2,3}$
. На самом деле я бы использовал максимум/^\S+@\S+$/
. См. демонстрацию вашей рабочей строки 27. - person bobble bubble   schedule 01.06.2019