2

Ok。これは以下の私のコードです。メールの検証に関するwebtutsのチュートリアルに従おうとしています。しかし、私のサンプルはうまくいきません。無効な電子メールを入力したことをユーザーに警告することになっています。それで、私の仲間がしたことは、彼が「show_warning」jquery関数を作成して、$msgを表示できるようにしたことです。しかし、うまくいきません。私の論理は間違っていますか?

<?php

if(isset($_POST['username']) && !empty($_POST['username']) AND
   isset($_POST['password']) && !empty($_POST['password']) AND
   isset($_POST['email']) && !empty($_POST['email']) AND
   isset($_POST['role_id']) && !empty($_POST['role_id'])) 
    {
        $username = ($_POST['username']);
        $password = ($_POST['password']);
        $email = ($_POST['email']);
        $role_id = ($_POST['role_id']);  

            if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email))
            {  
                $msg = 'The email you entered is invalid. Please try again.';
            }
                else
            {  
                $msg = 'Your account has been made, <br /> please verify by clicking the activation link in your email.';  
            }     
    } 
?>

======================================

<div id="main-content">
  <div id="create-user">

      <h1>Create User</h1>
      <form action="" method="post">
      <table id="userform" width="600px" border=0>
        <tr>
          <td><label for="username">Username</label>
            <input type="text" id="username" name="username" /></td>
          <td><label for="password">Password</label>
            <input type="text" id="password" name="password" /></td>
        </tr>
        <tr>
          <td><label for="email">Email</label>
            <input type="text" id="email" name="email" /></td>
          <td><label for="role_id">Role</label>
            <select>
              <?php $roles = load_roles() ;?>
              <?php foreach ($roles as $role): ?>
              <option value='<?php echo $role['role_id']; ?>'><?php echo $role['role']; ?></option>
              <?php endforeach; ?>
            </select></td>
        </tr>
        <tr>
          <td><input type="submit" id="submit" name="save_user" value="Create User"></td>
        </tr>
      </table>
    </form>
  </div>
</div>
4

3 に答える 3

4

eregi()関数は PHP 5.3.0 で非推奨になりました。この機能に依存することはお勧めできません。

だからそれが本当の理由だろう

AND preg_match()i (PCRE_CASELESS) 修飾子を使用することをお勧めします。

Yadav Chetanの答えのように、FILTER_VALIDATE_EMAIL代わりにそれらのregxを使用します

于 2013-05-16T04:44:54.450 に答える