PHP登录用户逻辑

时间:2010-08-01 05:29:37

标签: php login system registration

我已经取消了因为某种原因从未工作过的所有教程,并决定自己推出自己的注册/登录功能,令我惊讶的是它确实有效!

但我没有得到的是保持某人登录的逻辑是如何工作的!比如,一旦他们登录,我只需将他们的数据$_POST发送到他们访问的其他页面,一旦他们进入新页面$_REQUEST,就会从网址发布数据并显示类似的消息:“是的,你还在登录”?

我有点困惑,所以我希望这个问题也不会让你感到困惑。

4 个答案:

答案 0 :(得分:1)

登录后,您通常有两种选择。在session中存储他们的详细信息或身份验证令牌(有助于服务器上的PHP知道谁是谁)或将其存储在cookie中。两者都有其特权,但您需要选择适合您的那个。

如果您在会话中存储数据,则用户无法访问您存储的内容,只能访问您的代码。如果您想存储说明,他们的ID或用户名,这将非常有用。你可以相信它永远是他们的id和用户名,因为他们无法修改它。

使用cookie,用户可以访问和修改它们,因为它们存储在本地计算机上。因此,您需要更加狡猾并散列用户详细信息,然后使用某些服务器端逻辑验证它是谁。它有点复杂。

会话实现可能如下所示:

session_start(); //Make sure you call this at the top of EVERY page
if($passwordsMatch){
    $_SESSION['user'] = $_POST['username'];
}
//Now we have access to $_SESSION['user'] on every page.

在另一个不相关的页面上:

session_start();
print "Welcome, ".$_SESSION['user'];

答案 1 :(得分:1)

最简单的方法是“让用户登录”是使用PHP会话。当您运行session_start();时,PHP在用户浏览器中使用SESSION_ID设置cookie,以便它可以识别该用户。之后,您可以在$ _SESSION数组中设置任何数据,这些数据将保存在页面请求之间的会话中。

答案 2 :(得分:1)

最简单的imo是使用会话。 基本上这是PHP在用户系统上自动设置cookie(或根据您的配置添加一个URL)并自动将其加载到每个网页浏览上。然后,您可以向会话添加数据,只要cookie没有过期(或被删除)和/或您没有销毁会话,您就可以在用户所做的每个网页浏览中获得该数据。 / p>

点击此处查看会话的简介:http://www.htmlgoodies.com/beyond/php/article.php/3472581/PHP-Tutorial-Sessions.htm

答案 3 :(得分:1)

让我们拥有login.php之后的页面after_login_page1.php after_login_page2.php

您可以按照以下简单步骤进行操作

  1. 在login.php中从db设置$ _SESSION ['id'] = $ userid // userid

  2. 在后续页面中总是有session_start(),如after_login_page1.php,after_login_page2.php

  3. 检查是否(!isset($ _ SESSION ['id'])){           header(“Location:login.php”);      }

  4. 在logout.php页面上给出$ _SESSION ['id'] ='';并做一个session_destroy()