用户登录

使用会话我们可以实现用户登录的功能,用户在登录表单上输入了自己的用户名,还有密码。然后我们可以验证一下用户提供的这些信息在数据库里存不存在,如果存在,就去设置一条信息会话信息,标记一下这个用户已经登录了。

下面,我们去模拟一下这个用户登录的功能。 这里需要几个文件 ... index.php ,访问这个页面的时候如果用户没有登录的话就把用户重定向到 login.php ,在这个文件里,可以有一个登录用的表单 ... 如果登录成功,再把用户重定向到 index.php 。

另外还需要一个可以让用户注销登录的文件 .. 可以叫做 logout.php ... 访问这个文件,可以销毁会话 ...

login.php

先去创建登录用的表单.. 新建一个文件 ... 命名为 login.php ...

添加一个基本的 html 文档的结构 ... 修改下 lang 属性,还有 title 标签 ...

然后去添加一个表单 ... 表单的 action 属性,就是表单提交到的地址 ... 可以使用当前这个脚本文件 ... 再把它的 method 属性设置成 post

<form action="<?php $_SERVER['SCRIPT_NAME']; ?>" method="post"></form>

这个表单需要三个元素 ... 输入用户名的文本框 ... 元素的名字可以是 username ...

<input type="text" name="username" placeholder="用户名">

还添加一个 password 类型的 input 元素,可以让用户输入密码 ..

<input type="password" name="password" placeholder="密码">

最后再加上一个提交这个表单用的按钮 ...

<button type="submit">登录</button>

在这个文件的顶部,我们可以去处理一下 .... 先用一个 session_start() 开始会话 ..

session_start();

然后确定请求的方法是 POST ...

if ($_SERVER['REQUEST_METHOD'] == 'POST') {}

然后我们可以去验证一下,用户输入的用户名和密码,一般我们需要去对比存储在数据库里面的用户名和密码,看看有没有跟用户输入相匹配的记录 .. 如果有,我们就去设置一条会话信息 .. 标记一下用户已经登录了 ...

不过这里为了简单点, 可以去验证两个静态的内容 ..

if ($_POST['username'] === 'wanghao' && $_POST['password'] === '123456') {}

这行代码的意思就是,如果用户输入的用户名等于 wanghao,并且密码是 123456 ... 就表示已经通过验证了 ...

通过验证以后,我们可以去设置一条会话信息 ... 比如把 is_login ,设置成 true ...

$_SESSION['is_login'] = true;

这样在用户发出其它的请求的时候我们可以检查一下会话信息里有没有 is_login,如果有,就说明用户已经登录了 ..

再去设置一条会话信息 ... 让 username 等于 wanghao ...

$_SESSION['username'] = 'wanghao';

然后再把用户重定向到 index.php 这个地址上 ... 可以使用 header 函数,去设置一下 Location ...

header('Location: index.php');

为了避免输出其它的东西 ... 再用一个 exit();

index.php

下面再去编辑一下 index.php ..

session_start();

开始会话 .. 然后判断一下会话里的 is_login 这个信息有没有值 ... 如果有,用户登录成功以后,才会设置这条会话信息 .. 所以,如果没有这条信息,就表示用户没有登录 ... 这样我们要做的事就是,去把用户重定向到 login.php ...

if (!isset($_SESSION['is_login'])) {
header('Location: login.php');
exit();
}

确定用户已经登录了,我们可以输出一个问候的信息 ... 然后再加上一个 登出 的链接 ... 点击这个链接,可以删除会话 ... 让用户退出登录 ...

echo '您好:' . $_SESSION['username'] . ' <a href="logout.php">登出</a>';

logout.php

下面,我们我们再去创建这个 logout.php ...

文件的一开始,还是要用一个 session_start() 开始会话 ...

session_start();

然后去删除会话 ... 用的是 session_destroy() ...

session_destroy();

再把$_SESSION 设置成一个空白的数组 ..

$_SESSION = array();

最后,再把用户重定向到 index.php ...

header('Location: index.php');
exit();

预览

现在我们就完成了这个简单的用户登录和登出的功能 ... 下面去测试一下 ...

先打开 index.php ....

因为还没有登录 ... 也就是 $_SESSION 里面的 is_login 还没有被设置 ... 所以,会把用户重定向到 login.php .

输入用户名 ... wanghao ... 密码 .... 123456 ...

点击 登录 ...

会用 POST 的方法请求当前这个脚本文件 ... 如果验证通过的话 ... 就会去把会话里面的 is_login 设置成 true ... 同时也会设置一个 username 的会话信息 ... 然后把用户带到 index.php ...

在 index.php 上,检查到用户已经登录了 ... 所以,会显示问候的信息 ... 还有一个登出的链接 ...

点击这个登出的链接 ....

会打开 logout.php ... 这个文件会销毁会话 ... 然后再把用户带回到 index.php 上面 ... 因为现在用户已经是未登录的状态,所以,又会把用户带到 login.php 这里来 ...

0:00
0:00
4:42
0:00
2:17
0:00
0:00
0:00
1:22
3:45
0:00
0:00

用户登录的功能《 PHP 基础 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点