0

私はこのビットのコードを持っています:

if(isset($_POST['register_form'])) {
    if(isset($_POST['username']) &&
       isset($_POST['password']) &&
       isset($_POST['lastname']) &&
       isset($_POST['email'])) {
         Register();
       }
    else {
      echo 'It seems like some information is missing. Please fill in the whole form.';
    }
  }

これは、次の形式に適用されます。

  <form action="" method="post">
    <fieldset>
      <legend>Register Form</legend>
      <input type="text" name="username" maxlenght="32" placeholder="Username"/> <br />
      <input type="password" name="password" placeholder="Password" /> <br />
      <input type="lastname" name="lastname" placeholder="Last name" /> <br />
      <input type="email" name="email" placeholder="Email" maxlenght="1024" /> <br />
      <input type="submit" value="Register" name="register_form" />
    </fieldset>
  </form>

私はこれが間違っていることを知っています。if ステートメントは、実際に「ユーザー名」、「パスワード」などのフォームがあるかどうかのみをチェックしますが、空かどうかはチェックしません。しかし、正しく入力されていないかどうかを確認する方法がわかりません。誰かが私を助けることができれば、それは素晴らしいことです.

前もって感謝します。

4

5 に答える 5

0

検証には JavaScript を使用できます。サーバー側の検証では、次のように記述できます。

function validate($value){
     if(isset($value) && !empty($value)){
        return true;
     }else{
        return false;
     }
}


if(validate($_POST['username']) &&
       validate($_POST['password']) &&
       validate($_POST['lastname']) &&
       validate($_POST['email'])) {
         Register();
    }
    else {
      echo 'It seems like some information is missing. Please fill in the whole form.';
  }
于 2013-10-31T17:26:10.560 に答える
0

私はそのようなチェックのための機能を持っているのが好きです。この特定のケースでは、配列キーのチェックに関数を使用します。

function check_key($key, $array) {
    if (isset($array[$key]) && (! empty($array[$key])))
        return true;
    return false;
}

次のように使用できます。

if(check_key('register_form', $_POST)
    if(check_key('username', $_POST) && check_key('password', $_POST) 
    && check_key('lastname', $_POST) && check_key('email', $_POST) )
        Register();
else
  echo 'It seems like some information is missing. Please fill in the whole form.';
于 2013-10-31T17:38:24.893 に答える