Проверка электронной почты груши

Я пытаюсь создать простой интернет-магазин, в котором есть несколько форм, которые необходимо заполнить клиентам. После того, как они заполнены, я проверяю их с помощью Pear Validate.php.

$validate = new Validate();

$options = array("check_domain"=>true,"use_rfc822"=>true);

$test = $validate->email("$epost",$ehdot);
if (!($test)) {
    $checks = false;
    echo 'EMAIL IS WRONG </p>';

}

$epost — адрес электронной почты, который клиент вставляет в форму электронной почты. Почему-то выдает такую ​​ошибку:

Strict Standards: Only variables should be passed by 
reference in /home2-3/e/anon/public_html/php/verkkostore/Validate.php on line 586

Вот код из Validate.php из строки 586

$domain = preg_replace('/[^-a-z.0-9]/i', '', array_pop(explode('@', $email)));

Заранее спасибо!


person Miifor    schedule 03.12.2014    source источник
comment
$pop = array_pop(explode('@', $email)); $domain = preg_replace('/[^-a-z.0-9]/i', '', $pop); может сработать.   -  person Funk Forty Niner    schedule 03.12.2014
comment
^^^ работаешь, да/нет/ушел обедать?   -  person Funk Forty Niner    schedule 03.12.2014
comment
Смело идите обедать. Мне все равно нужно идти через минуту   -  person Miifor    schedule 03.12.2014
comment
Вы пробовали мое предложение? Обед уже прошел ;)   -  person Funk Forty Niner    schedule 03.12.2014
comment
Это работает, когда я ввожу неправильный тип электронной почты, такой как asd, но не когда я отправляю электронную почту с явно неправильным адресом домена, например, [email protected].   -  person Miifor    schedule 04.12.2014
comment
Тем не менее, он избавился от первоначальной ошибки.   -  person Funk Forty Niner    schedule 04.12.2014
comment
Я сделал еще несколько проверок и обнаружил, что это все-таки не избавляет от них. Если в других формах есть неверные данные, пользователь должен остаться на странице и ввести их заново. В этом случае, если в форме электронной почты был указан правильный тип адреса, появляется та же ошибка. На этот раз ошибка находится в строке, в которой есть эта часть вашего кода: $pop = array_pop(explode('@', $email));   -  person Miifor    schedule 04.12.2014


Ответы (1)


Хорошо, вот как я это исправил. Спасибо за помощь, она наставила меня на правильный путь!

$array = explode('@', $email);
$pop = array_pop($array);
$domain = preg_replace('/[^-a-z.0-9]/i', '', $pop);
person Miifor    schedule 04.12.2014