2014-02-26 58 views
0

我的應用程序有三個通用功能。他們正在註冊,登錄並查看配置文件頁面。註冊工作正常。只要您登錄,您將被定向到個人資料頁面。因此,當指向配置文件頁面時,如果設置了會話變量,則標題中的鏈接必須更改。會話變量查詢

如果他們沒有設置,他們會顯示註冊和登錄。這裏的問題是,當我登錄我的標題鏈接沒有改變。他們仍然顯示註冊和登錄。配置文件頁面顯示用戶的所有詳細信息,如國家,州,城市等,但不是用戶名(我使用會話變量)。我認爲會話變量有問題。

這是我的個人資料頁面的代碼片段。

<?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在頁面之間進行交互。

+0

我認爲你錯過了$ _SESSION ['userid'] if條件$ _SESSION ['id']也嘗試print_r($ _ SESSION)在你的if()之前,所以你會設置什麼 –

回答

0

print_r($_SESSION) .. 和檢查什麼價值,你在session variables

讓,讓我知道。 ..

+0

Array()正在打印在頁面的左上角。 – Gopal1216

+0

ohh你的'sesssion數組'是空的......當你設置'會話變量'時,你忘記'開始會話'請將'session_start()'放在你的'login check'頁面的頂部... –

+0

非常感謝你。它完美解決了。 – Gopal1216

1

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

session_start()功能後更改您的行

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

對不起,我錯誤地發佈了這個問題之前。現在我已經做出了改變。我甚至測試了我的代碼。它不會進入if塊 – Gopal1216

+0

嘗試把'var_dump($ _ SESSION);'如果條件並檢查你正在得到什麼值 – Dev

+0

我得到數組(0){}。 – Gopal1216