程序运行截图如下:

输入用户名密码后,点击登录后:

文件如下;

index.php

<?php@session_start();if(!isset($_SESSION["user"])){header("location:../login.html");return;}echo "首页";print_r($_COOKIE);print_r($_SESSION);echo "<a href='./logout.php' />退出登录";
?>

login.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>登录</title>
</head>
<body><form method="post" action="./login.php"><label class="log-lab">用户名</label><input name="userName" type="text" value="" /><label content="log-lab">密码</label><input name="password" type="password" value="" /><input type="submit" value="登录"></form>
</body>
</html>

login.php

<?php$userName = trim($_POST["userName"]);$password = trim($_POST["password"]);if(empty($userName) || empty($password)){header("location:./login.html");return;}//user/123456$user = ["name" => "user", "password" => "123456"];if($user["name"] !== $userName){echo "用户名错误";header("location:./login.html");return;}if($user["password"] !== $password){echo "密码错误";header("location:./login.html");return;}@session_start(["cookie_httponly" => true]);$_SESSION["user"] = ["name" => $userName, "password" => $password];header("location:./index.php");
?>

logout.php

<?phpsession_start();session_destroy();header("location:./login.html");
?>

要注意的地方:

①index.php中的print_r($_COOKIE)

从中可以知道,这个函数打印变量,并且打印出来的变量具有高可读性。

②index.php中的@session_start()

/*** Initialize session data* @link https://php.net/manual/en/function.session-start.php* @param array $options [optional] <p>If provided, this is an associative array of options that will override the currently set session configuration directives. The keys should not include the session. prefix.* In addition to the normal set of configuration directives, a read_and_close option may also be provided. If set to TRUE, this will result in the session being closed immediately after being read, thereby avoiding unnecessary locking if the session data won't be changed.</p>* @return bool This function returns true if a session was successfully started,* otherwise false.*/
function session_start ($options = []) {}

从中可知功能为初始化session数据。

③index.php中的$_COOKIE

 全局的变量是一个Cookie数组,保存了HTTP的cookie,功能与快废弃的$HTTP_COOKIE_VARS数组一样。

④index.php中的$_SESSION

同样也是个全局变量,是Session数组,和以前的$HTTP_SESSION_VARS数组一样。功能是获取当前的session。

PHP笔记-用户登录例子相关推荐

  1. Python学习笔记——用户登录测试

    初学Python语言,做点笔记,希望能坚持下去 #!/usr/bin/env python -- coding:utf-8 - #初始化账号和密码 a=input('Please enter init ...

  2. PHP笔记-用户登录权限拦截说明

    这里给出的是一个很常用的权限拦截例子,也是目前主流的方法,但存在cookie劫持,有安全风险.后面有博文说如何去解决. 对应的权限登录的类是这样的: class PrivilegeController ...

  3. oracle 触发器登录,【学习笔记】Oracle触发器 实现指定用户登录oracle案例

    天萃荷净 触发器实现指定用户登录oracle,分享一篇关于Oracle数据库安全策略,通过Oracle触发器实现限定user用户登录Oracle数据库的方法 1.创建允许登录用户表 CREATE TA ...

  4. Flask初识,第五篇 ,做一个用户登录之后查看学员信息的小例子

    Flask最强攻略 - 第五篇 做一个用户登录之后查看学员信息的小例子 需求: 1. 用户名: oldboy 密码: oldboy123 2. 用户登录成功之后跳转到列表页面 3. 失败有消息提示,重 ...

  5. Vue + Spring Boot 学习笔记02:引入数据库实现用户登录功能

    Vue + Spring Boot 学习笔记02:引入数据库实现用户登录功能 在学习笔记01里,我们利用跨域打通了前端的Vue与后端的Spring Boot,实现了用户登录功能,但是后台的登录控制器在 ...

  6. Vue + Spring Boot 学习笔记01:实现用户登录功能

    Vue + Spring Boot 学习笔记01:实现用户登录功能 一.创建后端Spring Boot项目Book Management 二.创建前端Vue项目bm-vue 三.修改后端项目Book ...

  7. [go学习笔记.第十六章.TCP编程] 3.项目-海量用户即时通讯系统-redis介入,用户登录,注册

    1.实现功能-完成用户登录 在redis手动添加测试用户,并画出示意图以及说明注意事项(后续通过程序注册用户) 如:输入用户名和密码,如果在redis中存在并正确,则登录,否则退出系统,并给出相应提示 ...

  8. C#笔记(学生管理系统实战 - 用户登录)

    总算忙过一段时间了,两个月前看了一点点关于 C# 的实战视频,现在看回来居然忘得七七八八,果然学习还是要写笔记,好记性不如烂笔头.. 1 项目框架 用户界面模块 数据访问模块 DAL(即如同 Serv ...

  9. Python学习笔记18:实操案例十五(记录用户登录日志,模拟淘宝客服自动回复)

    Python学习笔记18:实操案例十五(记录用户登录日志,模拟淘宝客服自动回复) 网课传送门:https://www.bilibili.com/video/BV1Sw411Z779?p=168& ...

最新文章

  1. 局域网连接其他机器命令_弱电工程师必备技能,PING命令使用方法大全
  2. Mysql遇到Too many connections的解决办法
  3. 【转】[你必须知道的.NET]第二十一回:认识全面的null
  4. 浅析何时进行概况分析
  5. go https 笔记
  6. Hoshin Kanri在丰田的应用
  7. 为什么Locust单进程运行模式下只能用到一个处理器的能力?
  8. 深入理解Java String 池概念(String pool concept)
  9. 2.卷2(进程间通信)---Posix IPC
  10. php颜色十六进制代码,如何通过PHP中的十六进制代码检索颜色的人名
  11. HUSTOJ搭建2021
  12. 全国大学生大数据技能竞赛比赛心得以及相关资料
  13. 太帅了!钟楚曦这件老爹裤A到炸裂,一般人可穿不出这种范
  14. 召唤神龙 javascript 调整地图大小
  15. 多张图片怎么合成gif动图?电脑如何将静图转换动图?
  16. A14:Untiy+Leapmotion制作拍打乐符游戏
  17. CSS通用样式2——Flex布局
  18. 用Matlab解决数学问题
  19. 电子表格的使用技巧!!实用啊!!!
  20. 淘宝618列车/京东618叠蛋糕活动 自动领喵币/金币脚本

热门文章

  1. Could not create a sandbox extension for /
  2. Android 使用SWIG生成Jni代码转
  3. matlab V7.0 R14 安装教程
  4. 我两年的坚持,值了!
  5. 在车上偶遇一位阿里大佬
  6. 乐乐茶签约帆软软件,打造新式茶饮数字化管理新标杆
  7. 这让全场的chinaakd
  8. 在探索的飞鸽传书科学的道路上
  9. 教你29招,让你在社交,职场上人人对你刮目相看
  10. 创建一个Windows Service应用程序