3

preg_match() を使用して電子メール アドレスを検証する際に問題があります。

これは私が持っているコードのブロックです。

if (VerifierAdresseMail($email))
  echo '<p>valide.</p>';
else
  echo '<p>not valid</p>';


  function VerifierAdresseMail($adresse) {
    $Syntaxe = '#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
    if (preg_match($Syntaxe, $adresse))
      return true;
    else
      return false;
  }

これはうまくいかないようです。白いページを返すだけです。application.iniにこれがありますが、エラーが表示されません

[developpement : production]


phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
phpSettings.track_errors = 1
phpSettings.error_reporting = E_ALL

resources.frontController.params.displayExceptions = 1

phpSettings.date.timezone = "Europe/Paris"

ご協力いただきありがとうございます

4

2 に答える 2

21

preg_match()メールアドレスの検証には使用しないでください。filter_var()代わりに使用してください:

if (filter_var($adresse, FILTER_VALIDATE_EMAIL)) {
     // valid
} else {
     // not valid
}
于 2012-09-21T08:42:04.787 に答える
3

むしろこれを使うべきだと思います:

filter_var('e-mail@provider.com', FILTER_VALIDATE_EMAIL);

フィルター処理されたデータを返します。フィルターが失敗した場合は FALSE を返します。

ドキュメント: http://php.net/manual/en/function.filter-var.php

于 2012-09-21T08:43:23.820 に答える