【问题标题】:Changing an output for a link in php更改 php 中链接的输出
【发布时间】:2013-04-11 10:25:52
【问题描述】:

我正在尝试在用户登录后更改菜单中的链接。这意味着显示的是“我的页面”,而不是“登录”。现在,用户可以登录和注销。然而,用户登录后名称/链接不会直接更改。

我的菜单代码:(我在所有网站上都使用 include('menu.php'。为了代码的灵活性)

<div id="menu">
<ul>
    <li><a href="index.php">Home</a></li>
    <li><?php echo $mypage?></li>
    <li><a href="community.html">Community</a></li>
    <li><a href="media.html">Media</a></li>
    <li><a href="contact.html">Contact</a></li>
</ul>

我的 config.php 代码:

<?php

session_start();

$mypage;

if(isset($_SESSION['name'])) {
$mypage = '<a href="mypage.php">My Page</a>';
}
else {
    $mypage = '<a href="login.php">Log In</a>';
}
?>

只有当用户点击另一个菜单时,$mypage 变量才会更新。我尝试使用 header() 函数刷新页面。但这只会导致重定向循环。

如果有人可以帮助我,那就太好了。

编辑

清理一些事情:

为了更好地了解网站: http://www.askmephilosophy.camilstaps.nl/ (到目前为止,唯一可以查看的是“欢迎”和“登录”。登录后,您将被重定向到 mypage.php 站点。(也可以通过在名称后键入它来访问. */mypage.php)

【问题讨论】:

  • 您是在包含config.php 之前还是之后处理登录?执行顺序可能是错误的。
  • 您的登录脚本是如何工作的?如果它设置会话而不刷新,则页面上很可能不会发生任何事情。这就像打开您的浏览器 cookie 并将会话 cookie name 设置为某事。每次都需要刷新。
  • 你能说明你是如何包含这些文件的吗?
  • 在我的 login.php 中,我使用: 在这个 session.php 脚本中,密码被散列,检查数据库中的密码,一旦没问题: if( $hash == $r['Password'] ) { $_SESSION['name'] = $用户名; }

标签: php login href logout


【解决方案1】:

所以如果我理解: 1/ 你登录 2/ 您已登录,但名称保持“登录” 3/你刷新页面然后菜单变为“我的页面”

我认为你设置了 $_SESSION['name'] 之后你执行了这个

if(isset($_SESSION['name'])) {
    $mypage = '<a href="mypage.php">My Page</a>';
}
else {
    $mypage = '<a href="login.php">Log In</a>';
}

试试这样的:

if (isset ($_POST['name']) && isset ($_POST['password']) && ($_POST['password'] == $hash)) {
    $_SESSION['name'] = $_POST['name'];
}
if(isset($_SESSION['name'])) {
    $mypage = '<a href="mypage.php">My Page</a>';
} else {
    $mypage = '<a href="login.php">Log In</a>';
}

【讨论】:

  • 可能是这样,我不知道。我应该在其中包括: if( $hash == $r['Password'] ) { $_SESSION['name'] = $username;一个 require_once('config.php')?
  • 别忘了添加 session_start();在代码的顶部
  • 一些不幸的消息,它仍然无法正常工作。我将无法立即回复,因为我要和我的学校一起去罗马旅行。我将在那里呆一个星期。
猜你喜欢
  • 2015-08-21
  • 1970-01-01
  • 2012-12-04
  • 1970-01-01
  • 1970-01-01
  • 2013-09-24
  • 1970-01-01
  • 1970-01-01
  • 2015-03-22
相关资源
最近更新 更多