2010-12-14 3 views
0

Я использовалПочему не работает моя проверка подлинности электронной почты? PHP

if (!preg_match('/[a-z||0-9]@[a-z||0-9].[a-z]/', $email)) { 
    [PRINT ERROR] 
} 

&

if (!eregi("^[0-9]+$", $email)) { 
    [PRINT ERROR] 
} 

&

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
    [PRINT ERROR] 
} 

Я также пытался вынимая! и заставить его работать в обратном направлении, но почему-то никто из них не работает, чтобы узнать, действительно ли это. Любые идеи, почему? ... у меня есть это в другой, если заявление, я не уверен, что может быть причиной ..

Я использую PHP

+0

Может быть, вы могли бы предоставить * это *? Что находится в '$ email'? – Gordon

+0

$ email из формы. Имя поля ввода - электронная почта, и я использовал $ email = $ _REQUEST ['email']; для сбора информации в нем. Я знаю, что эта часть работает, так как я могу получить правильную информацию для отправки по электронной почте себе – Chris

+0

Это сработало спасибо, я думаю, когда я это сделал, меня перепутали где-то – Chris

ответ

1

Попробуйте

'/[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}/' 

...

if (!preg_match('/[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}/', strtoupper($email))) { 
    [PRINT ERROR] 
} 

Насколько я могу видеть, ни один из ваших регулярных выражений выражений не будет соответствовать по электронной почте.

+0

Я просто справился с этим с сайта, я исправил его для проверки своей электронной почты, когда я пытался заставить его работать, плохо попробуйте и посмотрите, работает ли это, может быть, я просто испортил, когда я сделал мой – Chris

+0

Помните, что вы можете использовать http://www.regextester.com/ для проверки регулярных выражений – mrwooster

0

Проверьте версию PHP. eregi устарел после 5.3.0. Кроме того, регулярное выражение неверно.

+1

deprecated! = Удален – Gordon

1

Попробуйте это из исходного кода Kohana:

function email($email) 
{ 
    return (bool) preg_match('/^[-_a-z0-9\'+*$^&%=~!?{}]++(?:\.[-_a-z0-9\'+*$^&%=~!?{}]+)*[email protected](?:(?![-.])[-a-z0-9.]+(?<![-.])\.[a-z]{2,6}|\d{1,3}(?:\.\d{1,3}){3})(?::\d++)?$/iD', (string) $email); 
} 
0

Попробуйте это (с WordPress):

// from wordpress code: wp-includes/formatting.php 
function is_email($user_email) 
{ 
    $chars = "/^([a-z0-9+_]|\\-|\\.)[email protected](([a-z0-9_]|\\-)+\\.)+[a-z]{2,6}\$/i"; 

    if (strpos($user_email, '@') !== false && strpos($user_email, '.') !== false) 
    { 
     if (preg_match($chars, $user_email)) { 
      return true; 
     } else { 
      return false; 
     } 
    } else { 
     return false; 
    } 
} 
Смежные вопросы