2013-05-13 47 views
0

如何讓我的PHP網站能夠告訴用戶是否已登錄?創建智能登錄/我的帳戶按鈕

我想顯示「我的帳戶」而不是「登錄」的鏈接。

EX。用戶轉到主頁並點擊右上角的「登錄」,然後在再次瀏覽主頁時登錄後顯示「我的賬戶」而不是「登錄」。

這就是登錄按鈕的樣子。我希望能夠用「我的帳戶」,以取代該用戶是否登錄

http://i.stack.imgur.com/8xCDB.png

UPDATE:這是代碼即時嘗試用到現在。它給我錯誤行69/72

<form action="scripts/login.php" id="login-form"> 
     <fieldset> 
     <?php 
     if(isset($_SESSION['name_of_user'])) 
     { 
    **LINE 69** <a href="your_account.php" class="login" onClick="submit"><span><span>My Account</span></span></a><span class="links"><a href="reset-pwd-req.php">Forgot Password?</a><br/><a href="create_account.php">Register</a></span>  } 
     } 
     else{ 
    **LINE 72**  <a href="general_login.php" class="login" onClick="submit"><span><span>Login</span></span></a><span class="links"><a href="reset-pwd-req.php">Forgot Password?</a><br/><a href="create_account.php">Register</a></span>  } 
     ?> 
+2

不知道爲什麼人們downvoting,而不是讓你知道這是爲什麼。它很明顯是什麼問題,並且(儘管它是「基本的」PHP),如果你不知道它,那麼提出這個問題是完全有效的。忽略downvoters(特別是沉默的)。 – 2013-05-13 15:50:54

+0

我同意;一個完全有效的問題。我猜無聲的downvoters是那些自己不知道答案的人。 :) – 2014-11-27 18:58:27

回答

2

所以你需要使用會話來做到這一點。

首先,你在你的PHP文件的頂部稱之爲右:

session_start(); 

要啓動會話,那麼你可以設置$_SESSION變量。當您的用戶登錄可以(例如)設置:

$_SESSION['user_name'] = "Lucas Weir"; 

然後在接下來的PHP腳本,你可以這樣做:

if(isset($_SESSION['user_name'])){ 
    // user is logged in, hide the button here 
} else { 
    // user is not logged in, show the login button 
} 

Session是不復雜,但它值得探討他們。這是使用會話的一種非常基本的方式,但它不是非常安全。說實話,我很驚訝你已經設法創建一個完整的用戶登錄/認證腳本,而不使用會話。 ;)

編輯:多一點信息。

會話存儲在服務器上。它們與Cookie類似。會話令牌存儲在客戶端計算機上的cookie中。然後這用於交叉引用存儲在服務器上的會話信息。

由於會話標記(會話標識)存儲在客戶端計算機上,因此每次載入另一個腳本時都可以發送它。這意味着當您使用$_SESSION['name'] = "value";設置會話變量時,可以在調用的下一個腳本上檢索相同的值。

對於位的更多信息和一些例子/教程看看這裏:http://www.w3schools.com/php/php_sessions.asp

+0

感謝百萬虐待嘗試了這一點,並看看。 :) – 2013-05-13 15:49:20

+0

這是現在使用你的建議的代碼,但dreamweaver給我的語法錯誤在69和72行看起來 – 2013-05-13 16:04:56

+0

在PHP內部,你必須回顯HTML – Gary 2013-05-13 16:25:38