【问题标题】:Simple password check using $_SESSION. Cant check SESSION['pass'] using if使用 $_SESSION 进行简单的密码检查。无法使用 if 检查 SESSION['pass']
【发布时间】:2014-12-10 17:19:37
【问题描述】:

我这辈子都无法让它工作,我已经将代码破解到最低限度,显然最后的}else{ 会联系一个通过$_POST 提交的简单表单。

我知道在会话中存储身份验证不是最佳做法,但这是针对带有日历的独立页面,因此“最高安全性”不是优先事项。

这里是代码

<?php
ini_set('display_errors', 1);
session_start();


if($_SESSION['passw'] === "word") {

echo 'password checked ok<br>';

}elseif($_POST['password'] === "word"){

$_SESSION['passw'] = "word";
unset($_POST);
}else{

$_POST['password'] = "word";
header('Location: '.$_SERVER['PHP_SELF']);

}


?>

任何想法都非常感谢:-)

【问题讨论】:

  • 不要打扰 if 语句,总是在文件开头使用session_start();,这是强制性的。会话不可能存在,它不存在于您的新文件中,只是因为您在旧文件中启动它,您需要在每个文件中保持会话处于活动状态。 Similar question/answer 就在几个小时前。
  • 无论会话是否启动,都需要发起session_start();

标签: php session post if-statement


【解决方案1】:

我很确定 $_SESSION 已设置,即使您尚未开始会话。

因此,由于您没有开始会话,因此无法将其保存到。

单独使用session_start(),看看是否有帮助。

【讨论】:

  • 谢谢,不幸的是我就是这样开始的,我只是开始使用 isset 来查看它是否设置了导致问题的会话
猜你喜欢
  • 1970-01-01
  • 2012-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多