0

如何让我的 php 网站能够判断用户是否登录?

我想显示指向“我的帐户”而不是“登录”的链接。

前任。用户进入首页并点击右上角的“登录”,登录后再次浏览首页时将显示“我的帐户”而不是“登录”。

这就是登录按钮的样子。如果用户登录,我希望能够将其替换为“我的帐户”。

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>     }
        ?>
4

1 回答 1

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

于 2013-05-13T15:31:12.727 回答