0

私はログインコードで作業しています..ログインページを開いたときに表示されるこのメッセージを除いて、正常に動作します!!

Notice: Undefined index: msg in C:\xampp\htdocs\thesite\login.php on line 103

loginExcution.phpにこれを入力すると表示されます

    else {
        //Login failed
        header("location:login.php? msg=*invalid name or password");
        exit();
    }

これにより、ログインフォームページにメッセージが表示されます

<?php
$msg = $_GET['msg'];
print $msg;
?>
4

2 に答える 2

2

にスペースを入れないでくださいheader("Location:

else {
    //Login failed
    header("Location: login.php?msg=invalid%20name%20or%20password");
    exit();
}

編集: s%20は実際にはスペースです。urlencode()詳細が必要な場合は、PHP関数を参照してください。上記のコードはこれと同等です:

else {
    //Login failed
    header("Location: login.php?msg=" . urlencode("invalid name or password"));
    exit();
}
于 2012-07-01T06:49:25.963 に答える
0

simpleianmの回答で言及されている最初のスペースを削除する以外に。コードがこの行$_GET['msg']に到達し、msgが定義されていないインデックスである場合、通知がトリガーされます。代わりにこれを行うことができます

 if (isset($_GET['msg'])){
      $msg=$_GET['msg'];
      print $msg;
 }

ただし、メッセージの内容をURLに渡すことはお勧めできません。ユーザーはJavaScriptを渡して、疑いを持たないユーザーにリンクを送信できます。代わりに、コードlogin.php?msg=invalidにすることができます

その後、コードで

 if (isset($_GET['msg'])){
      switch ($msg){
          case "invalid":
              echo "Invalid username or password";
          break;
      }  
 }
于 2012-07-01T07:02:28.860 に答える