【问题标题】:Notice:Undefined index:user & pass [duplicate]注意:未定义索引:用户和密码[重复]
【发布时间】:2014-05-05 16:56:24
【问题描述】:

这是一个使用cookies作为密码的脚本.....在本地主机上运行它会显示通知 未定义索引:用户 未定义索引:通过
代码如下:

<html>
<body>
<form action="<?php echo ($self); ?>" method="post">
Please enter your details for access :<br>
Name:<input type="text" name="user" size="10">
Password:<input type="text" name="pass" size="10"><br><br>
<input type="submit" value="Log in">
</form>
</body>
</html>
<?php
$user=$_POST['user'];
$pass=$_POST['pass'];
$self=$_SERVER['PHP_SELF'];
if(($user!=null)and ($pass!=null))
{
 if($pass=="mypassword")
  {
    setcookie("checkpass","okkay");
header("Location:loggedin.php");
exit();
  }
 else
  {
  setcookie("checkpass");
 } 
}
?>

【问题讨论】:

  • 不要在 cookie 中存储密码或用户名,这真的很糟糕..
  • 他没有将密码存储在cookie中,而是设置了一个cookie来检查密码是否有效,仍然是错误的但没有存储密码那么糟糕
  • 旁注:您在带有 cookie 的标头之前输出。
  • 使用$user = (isset($_POST['user'])?($_POST['user']):(die ("missing POST argument user")); 并与密码相同...如果 $_POST 表示索引未定义,您将不会从 $_POST 获得任何信息。
  • 用上面的代码替换它显示-解析错误:语法错误,意外';'

标签: php forms cookies


【解决方案1】:

发生这种情况是因为您需要使用 isset 并将该条件语句包装在您的 PHP 周围。

另外,您将收到一条错误消息,例如:

警告:无法修改标头信息 - 标头已由(输出开始于.....

所以,把你的 PHP 放在 HTML 之上。

<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);

if(isset($_POST['user']) && isset($_POST['pass'])){

$user=$_POST['user'];
$pass=$_POST['pass'];
$self=$_SERVER['PHP_SELF'];
if(($user!=null) and ($pass!=null))
{
 if($pass=="mypassword")
  {
    setcookie("checkpass","okkay");

// echo "OK";

 header("Location:loggedin.php");
exit();
  }
 else
  {
  setcookie("checkpass");

// echo "SORRY";

 } 
}

} // brace for if(isset($_POST['user']) ...
?>

<html>
<body>
<form action="<?php echo ($self); ?>" method="post">
Please enter your details for access :<br>
Name:<input type="text" name="user" size="10">
Password:<input type="text" name="pass" size="10"><br><br>
<input type="submit" value="Log in">
</form>
</body>
</html>

密码

我还注意到您可能以纯文本形式存储密码。不建议这样做。

使用以下方法之一:

其他链接:

【讨论】:

  • 此工作错误已被删除....但单击提交按钮时显示禁止访问!错误 403
  • 这很可能是网络服务器/配置问题。不幸的是,我对本地主机的东西几乎一无所知。 @arpit
  • See this page 这可能会有所帮助。 @arpit
  • 也请咨询this answer。 @arpit
  • kk....没问题..我发布的代码运行良好...只显示这两个通知....仍然感谢您的努力...我只是 php 的新手
猜你喜欢
  • 2016-02-25
  • 1970-01-01
  • 2017-08-26
  • 2016-04-28
  • 2015-10-17
  • 1970-01-01
  • 1970-01-01
  • 2018-03-17
相关资源
最近更新 更多