会话变量查询

时间:2014-02-26 07:08:15

标签: php session

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

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

以下是我的个人资料页面的代码段。

<?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在页面之间进行交互。

2 个答案:

答案 0 :(得分:1)

更改您的行
if (isset($_SESSION['id']) && isset($_SESSION['username']))

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

答案 1 :(得分:0)

print_r($_SESSION)放在session_start()函数之后 并检查您在session variables

中获得的值

让我知道......