我的應用程序有三個通用功能。他們正在註冊,登錄並查看配置文件頁面。註冊工作正常。只要您登錄,您將被定向到個人資料頁面。因此,當指向配置文件頁面時,如果設置了會話變量,則標題中的鏈接必須更改。會話變量查詢
如果他們沒有設置,他們會顯示註冊和登錄。這裏的問題是,當我登錄我的標題鏈接沒有改變。他們仍然顯示註冊和登錄。配置文件頁面顯示用戶的所有詳細信息,如國家,州,城市等,但不是用戶名(我使用會話變量)。我認爲會話變量有問題。
這是我的個人資料頁面的代碼片段。
<?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在頁面之間進行交互。
我認爲你錯過了$ _SESSION ['userid'] if條件$ _SESSION ['id']也嘗試print_r($ _ SESSION)在你的if()之前,所以你會設置什麼 –