0

フォームを送信した後、PHP でユーザー名とパスワードを検証する非常に単純なログイン ページを作成しました。

検証の最初のステップは、ユーザー名とパスワードが空でないことを確認することです。空の場合は、ユーザーをログイン ページに戻します。

$e = $_POST['email'];
$p = $_POST['password'];


if($e == '' || $p == ''  || is_null($e) || is_null($p)){
    header('Location: login.php?e=missing');
}

ifユーザー名とパスワードが空かどうかをチェックするステートメントは、次のelseステートメントを追加した場合にのみ機能することがわかりました。

$e = $_POST['email'];
$p = $_POST['password'];


if($e == '' || $p == ''  || is_null($e) || is_null($p)){
    header('Location: login.php?e=missing');
}else{

    //more validation
}

正直なところ、私のコードは機能し、追加しelseて問題は解決しましたが、なぜですか??? ありがとう。

4

5 に答える 5

4
$e = $_POST['email'];
$p = $_POST['password'];


if(trim($e) == '' || trim($p) == ''){
    header('Location: login.php?e=missing');
    exit(); // add this else it wont leave the page!
}else{

    //more validation
}
于 2012-10-04T14:03:02.863 に答える
1
if($e == '' || $p == ''){
    header('Location: login.php?e=missing');
}

exit()ヘッダー行の後にを追加する必要があります。それ以外の場合、処理は通常どおり続行され、残りのすべてのコードが実行されます。

于 2012-10-04T14:02:59.953 に答える
1

empty変数が設定されているかどうか、および空であるかどうかを確認するために使用する必要があります。

 $e = $_POST['email'];
 $p = $_POST['password'];

 if( empty($e) || empty($p) )     {
   header('Location: login.php?e=missing');  
   exit;  
}
else {
//more validation
}
于 2012-10-04T14:10:20.823 に答える
0
 if($e == '' || $p == ''){
        header('Location: login.php?e=missing');
    }

次に、その使用:

if(!isset($e) || !isset($p)){
    header('Location: login.php?e=missing');
    exit();
}

空白が原因で発生するか、trim() 関数を使用して空白を削除し、exit(); を使用できます。ヘッダーの後に必須*

于 2012-10-04T14:09:18.897 に答える
0
$e = $_POST['email'];
$p = $_POST['password'];

if(!empty($e) && !empty($p))
{
    header('Location: login.php?e=missing');
    exit();
}
else
{
    //more validation
}
于 2012-10-04T14:06:09.137 に答える