2013-05-13 45 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