【发布时间】: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> •
<a href="memberaccount.php">Account</a> •
<a href="logout.php">Logout</a>';
} else {
$toplinks = '<a href="register.php">Register</a> • <a href="login.php">Login</a>';
}
?>
我必须在开头声明$username = "";,因为如果我不这样做,则会显示一条通知说未定义索引。
我正在登录页面中设置我的会话变量。我确定控制是通过传递 if 块并进入 else 块。我对 php 还很陌生,不胜感激。
P.S:我正在使用 ajax 在页面之间进行交互。
【问题讨论】:
-
我认为你在 if 条件 $_SESSION['id'] 中错过了 $_SESSION['userid'] 也尝试在你的 if() 之前 print_r($_SESSION) 所以你会设置什么跨度>