如何让我的php网站能够判断用户是否已登录?
我想显示指向“我的帐户”的链接,而不是“登录”。
EX。用户进入主页并单击右上角的“登录”,然后再次浏览主页登录后,将显示“我的帐户”而不是“登录”。
这是登录按钮的样子。如果用户已登录,我希望能够将其替换为“我的帐户”。
http://i.stack.imgur.com/8xCDB.png
更新:这是我现在尝试使用的代码。它在第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> }
?>
答案 0 :(得分: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
}
会话根本不复杂,但值得研究。这是使用会话的一种非常基本的方式,但它根本不是很安全。说实话,我很惊讶你已经设法创建一个完整的用户登录/身份验证脚本而不使用会话。 ;)
编辑:更多信息。
会话存储在服务器上。它们与cookie“相似”。会话令牌存储在客户端计算机上的cookie中。然后,它用于交叉引用存储在服务器上的会话信息。
由于会话令牌(会话ID)存储在客户端计算机上,因此每次加载另一个脚本时它都可以发送它。这意味着当您使用$_SESSION['name'] = "value";
设置会话变量时,可以在下一个被调用的脚本上检索相同的值。
有关更多信息,请参阅一些示例/教程:http://www.w3schools.com/php/php_sessions.asp