在php中传递消息时出现错误行

时间:2012-07-01 06:47:02

标签: php

我一直在使用登录代码..除了在打开登录页面时显示的此消息,它工作正常!!

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;
?>

2 个答案:

答案 0 :(得分:2)

请勿在{{1​​}}。

中添加空格
header("Location:

编辑: else { //Login failed header("Location: login.php?msg=invalid%20name%20or%20password"); exit(); } 实际上是空格。如果您想了解更多信息,请查看PHP函数%20。上面的代码等同于:

urlencode()

答案 1 :(得分:0)

除了删除simpleianm答案中提到的第一个空格。如果代码到达此行$ _GET ['msg']并且msg未定义索引,则会触发通知。你可以这样做

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

但是,通过网址传递邮件内容并不是一个好主意。用户可以传递一些javascript并将链接发送给毫无戒心的用户。相反,你可以使它成为一个代码login.php?msg =无效

然后在代码中

 if (isset($_GET['msg'])){
      switch ($msg){
          case "invalid":
              echo "Invalid username or password";
          break;
      }  
 }