0

当我的登录页面验证我这个用户名或密码不正确时,我使用这段代码,

echo "<script languge='javascript'>location.href='index.php?msg=Incorrect UserName OR Password';</script>";

我在我的 index.php 上使用此代码来显示味精

echo $msg=$_GET["msg"];

但问题是当我继续使用 index.php 输入我的用户名和密码时,出现错误而不是 msg。

注意:未定义索引:第 28 行 C:\wamp\www\CIT Site\admin\index.php 中的 msg

请告诉我默认情况下如何获取 null msg 以及如何在没有任何错误声明的情况下打印它。

提前致谢

4

2 回答 2

3

您需要先检查该键是否存在于数组中

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

或者您可以使用速记三元运算符。

$msg = (isset($_GET['msg'])) ? $_GET['msg'] : null;
echo $msg;

正如评论中所讨论的,如果您只是在呼应,请执行以下操作。

<?php echo (isset($_GET['msg'])) ? $_GET['msg'] : null; ?>
于 2013-04-29T21:00:26.127 回答
2

首先,我认为您应该更改 msg get 变量的值,即“用户名或密码不正确”。将其更改为其他内容,可能是数字或更短的内容。5 或 iup(用户名密码错误)。

这将是您的网址:index.php?msg=iup

然后在 index.php 上,您需要检查是否设置了 GET 变量“msg”,如果它等于 iup,则设置错误变量

<?php
if (isset($_GET['msg']))
{
  $messageValue = $_GET['msg'];

  if ($messageValue == 'iup')
  {
     //the incorrect username or password message was sent
     $error = "Incorrect UserName OR Password";
  }
}
?>

上面的代码应该放在 html 声明上方的文档开头。我们现在在 html 文档正文的某处打开一个脚本,如果错误变量不为空,则回显错误消息,检查它是否为空而不只是 isset 很重要,因为在这种情况下,如果出现错误,isset 将显示错误错误变量没有被赋值。

<?php
if (!empty($error))
{
   echo '<p>' . $error . '</p>';
}    
?>
于 2013-04-29T21:20:25.430 回答