【问题标题】:Is it possible to differentiate the header while session activated [closed]会话激活时是否可以区分标头[关闭]
【发布时间】:2015-12-23 03:29:02
【问题描述】:

当用户登录时必须显示注销,否则它将显示登录栏......我正在尝试下面的代码:

<?php
if(session_start())
{
  echo "<a href='home.php'>Logout</a>";
}
else echo " <a href='index1.php'>Login/Register</a>";
?>

// 但这不起作用。请帮忙

【问题讨论】:

  • 欢迎来到 SO。只是为了确认一下,它怎么不适合你?显示什么?
  • 您在注销时使用的是 session_destroy() 还是 unset()
  • 不,我已经完成了注销部分。如果用户未登录,则在标题菜单中将显示登录,否则如果他已登录,则标题菜单将更改为注销
  • @AnirbanGhosh 当我运行你的代码时,我看到“注销”。这不是你想要的吗?我不确定这里有什么不适合你?

标签: php


【解决方案1】:

您正在调用session_start(),它将开始会话。您需要做的是创建登录脚本,然后启动会话。此时我可能会设置一个 $_SESSION 变量,例如 $_SESSION['logged_in'] = true。然后在导航标题中检查

if($_SESSION['logged_in'] === true){
   // do something
}

这也许是处理这个问题的更好方法。

【讨论】:

  • 根据您的建议,我已经尝试了这段代码先生:
  • 注销"; } else echo " 登录/注册"; ?>
  • 但是这次登录后也显示虚假部分......现在真实部分不起作用
  • 您有单独的登录文件吗?每次运行该代码时,它都会设置$_SESSION['username'] = '',这不是true 值。您应该将您的登录功能与此脚本分开
  • 是的,登录部分在不同的脚本中。我是否应该在该登录脚本中添加 $_SESSION['logged_in'] === true 然后将其包含到此头文件中?
猜你喜欢
  • 1970-01-01
  • 2015-08-02
  • 2021-11-22
  • 2016-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-25
相关资源
最近更新 更多