【问题标题】:Session Variables Query会话变量查询
【发布时间】:2014-02-26 07:08:15
【问题描述】:

我的应用程序具有三个通用功能。他们正在注册、登录,然后查看个人资料页面。注册工作正常。登录后,您将被定向到个人资料页面。因此,当定向到个人资料页面时,如果设置了会话变量,则标题中的链接必须更改。

如果未设置,它们将显示注册和登录。这里的问题是,当我登录时,标题中的链接没有改变。他们仍然显示注册和登录。个人资料页面显示用户的所有详细信息,如国家、州、城市等,但不显示用户名(我正在使用会话变量获取)。我认为我的会话变量有问题。

这是我的个人资料页面的代码 sn-p。

<?php
session_start(); // Must start session first thing
// See if they are a logged in member by checking Session data
$toplinks = "";
$username = "";
if (isset($_SESSION['id']) && isset($_SESSION['username'])) {
    // Put stored session variables into local php variable
    //$userid = $_SESSION['id'];
    //$username = $_SESSION['username'];
    $userid = preg_replace('#[^0-9]#', '', $_SESSION['id']);
    $username = preg_replace('#[^a-z0-9]#i', '', $_SESSION['username']);
    $toplinks = '<a href="memberprofile.php?id=' . $userid . '">' . $username . '</a> &bull; 
    <a href="memberaccount.php">Account</a> &bull; 
    <a href="logout.php">Logout</a>';
} else {
    $toplinks = '<a href="register.php">Register</a> &bull; <a href="login.php">Login</a>';
}
?>

我必须在开头声明$username = "";,因为如果我不这样做,则会显示一条通知说未定义索引。

我正在登录页面中设置我的会话变量。我确定控制是通过传递 if 块并进入 else 块。我对 php 还很陌生,不胜感激。

P.S:我正在使用 ajax 在页面之间进行交互。

【问题讨论】:

  • 我认为你在 if 条件 $_SESSION['id'] 中错过了 $_SESSION['userid'] 也尝试在你的 if() 之前 print_r($_SESSION) 所以你会设置什么跨度>

标签: php session


【解决方案1】:

改变你的线路

if (isset($_SESSION['id']) && isset($_SESSION['username']))

到

if (isset($_SESSION['userid']) && isset($_SESSION['username']))

【讨论】:

  • 我很抱歉我之前错误地发布了这个问题。现在我已经做出了改变。我什至测试了我的代码。它没有进入 if 块
  • 尝试将var_dump($_SESSION); 放在 if 条件之前并检查您得到的值
  • 我得到了 array(0) { }。
  • 这意味着会话存储值存在问题。请更新您的代码,以便在登录后在会话中存储值。并将session_start(); 放在您的登录页面顶部
【解决方案2】:

把print_r($_SESSION)放在你的session_start()函数之后.. 并检查您在session variables 中获得了什么值

然后告诉我...

【讨论】:

  • Array() 正在打印在页面的左上角。
  • 哦,您的sesssion array 为空...当您设置session variables 时,您忘记了start the session,请将session_start() 放在您的login check 页面顶部...
猜你喜欢
  • 2021-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-02
  • 2011-07-19
  • 2020-02-17
  • 1970-01-01
相关资源
最近更新 更多