【问题标题】:using PHP sessions to verify username使用 PHP 会话验证用户名
【发布时间】:2012-12-27 04:53:09
【问题描述】:

我觉得这是一个非常简单的解决方法,但我尝试了很多不同的方法,并且在谷歌上花了很多时间。基本上一个用户登录,我的脚本确保他们在我的数据库中。效果很好,然后我开始我的视野。

session_start();
$_SESSION['log']=$username;
header("location:lindex.php");

在我的下一页 lindex.php 上,我按顺序调用会话并尝试根据 $_SESSION['log'] 中的值是否为“支持”来设置 if 语句,但似乎不管值是什么在我的会话调用中,它总是执行我尝试基于字符串长度、strstr、strpos、==“支持的 if 语句。没有任何工作。任何想法?这里是 lindex.php:

session_start();
if(empty($_SESSION['log'])){
echo "You must log in";
exit();}

if(strstr($_SESSION['log'], 'support'))
{
header("location:../sindex.php");
}

附注。如果会话为空,则退出脚本。

【问题讨论】:

  • 为什么要使用log 来键入您的username

标签: php mysql sql session


【解决方案1】:
if(strstr($_SESSION['log'], 'support'))

应该是:

if($_SESSION['log'] == 'support'))

【讨论】:

  • 我什至无法告诉你我尝试了多少次......这次成功了。单引号和双引号之间有什么意义吗?
  • @PhpProg,双引号会让 PHP 在字符串中搜索变量,单引号不会,但在这种情况下应该没有区别。你可能不小心放了一个= 符号,所以它变成了if($_SESSION['log'] = 'support'),这总是正确的。请参阅this 以了解将来避免此类错误的简单方法。 =o)
【解决方案2】:
if(isset($_SESSION['log'] === "support")) 
{
echo "You are logged in ";
} else {

echo "You are not logged in ";
header("Location: http://site.com/login.php"); //should be always absolute URI
die();
}

【讨论】:

  • if(isset($_SESSION['log'] === "support")) 是做什么的?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-16
  • 2012-05-19
  • 2014-09-03
  • 1970-01-01
  • 2015-12-08
相关资源
最近更新 更多