-
php中利用session验证登录表单
前段时间在做一个中奖的活了,其中就用到中奖之后把数据写入session 然后再由用户进行数据提交验证了,下面我们要介绍的不是那个例子而一个差不多例子了,具体如下。
登录页面是:
- <!doctype html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>登陆</title>
- </head>
- <body>
- <form name="login" action="login.php" method="post">
- 姓名:<input type=text name="name"><br/>
- 密码:<input type=password name="password"><br/>
- <!-- <input type="radio" name="limits" value="1">管理员 -->
- <!-- <input type="radio" name="limits" value="0">普通用户 -->
- <input type="submit" name="submit" value="登录">
- </form>
- </body>
- </html>
存储session的页面:
- <?php
- header("Content-Type: text/html; charset=utf8");
- if( !isset($_POST["submit"]) ){
- die("错误执行");
- }//检测是否有submit操作
- require_once('connect.php');//链接数据库
- if ( isset($_POST['name']) && isset($_POST['password']) ){//如果用户名和密码都不为空
- $name = $_POST['name'];
- $password = $_POST['password'];
- $sql = " SELECT id, limits, message FROM user WHERE username = '$name' AND password = '$password' LIMIT 1";
- $result = mysqli_query( $con , $sql );//执行sql 用户名和密码
- $rows = mysqli_num_rows( $result );//返回用户名密码是否存在
- if( $rows != 0 ){
- session_start();
- while( $rows_other = mysqli_fetch_assoc($result) ){
- $_SESSION['id'] = $rows_other['id'];
- $_SESSION['name'] = $name;
- $_SESSION['limits'] = $rows_other['limits'];
- $_SESSION['message'] = $rows_other['message'];
- }
- header("refresh:0;url=welcome.php");//跳转至welcome.html页面
- exit;
- }else{
- echo "用户名或密码错误";
- echo "<script>
- alert('用户名或密码错误');
- setTimeout(function(){window.location.href='login.html';},1000);
- </script>";
- }
- }else{
- echo "表单填写不完整";
- //phpfensi.com
- echo "<script>
- alert('表单填写不完整');
- setTimeout(function(){window.location.href='login.html';},1000);
- </script>";
- }
- ?>
登陆后跳转的页面,根据不同的用户显示不同的权限和用户名:
- <?php
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>Document</title>
- </head>
- <body>
- <?php
- session_start();
- if( isset($_SESSION['id']) ){
- require_once('connect.php');
- $id = $_SESSION['id'];
- $name = $_SESSION['name'];
- $limits = $_SESSION['limits'];
- $message = $_SESSION['message'];
- if( $limits == 1 ){
- echo 'hello, 管理员' . '<br/>';
- }else{
- echo 'helo, 普通用户' . '<br/>';
- }
- echo 'hello you name is:' . $name;
- }else{
- echo '未登录!';
- header("refresh:3;url=login.html");
- }
- ?>
-
- </body>
- </html>
- ?>
使用session注意事项
1.在当前页面要使用session时我们在文件最前面没有输入内容时加上session_start();
2.session有一个时间限制的这个我们可以进行修改的,具体如下
其实PHP5 Session还提供了一个函数 session_set_cookie_params(); 来设置PHP5 Session的生存期的,该函数必须在 session_start() 函数调用之前调用:
- <?php
- // 保存一天
- $lifeTime = 24 * 3600;
- session_set_cookie_params($lifeTime);
- session_start();
- ?>
出处:http://www.phpfensi.com/php/20160101/10428.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式