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 回答