PHPMySQL基础(五):模拟登录后跳转+会话存储功能实现

PHP&MySQL基础(一):创建数据库并通过PHP进行连接_长风沛雨的博客-CSDN博客

PHP&MySQL基础(二):通过PHP对MySQL进行增、删、改、查_长风沛雨的博客-CSDN博客

PHP&MySQL基础(三):处理查询SQL返回的结果集_长风沛雨的博客-CSDN博客

PHP&MySQL基础(四):模拟登录Login功能案例_长风沛雨的博客-CSDN博客


目录

一、前置准备

1.1、登录代码-Login.php

1.2 首页index.php

二、实现登录跳转

2.1 PHP方式实现页面跳转

2.2 JS方式实现页面跳转

三、实现用户信息登录状态的记录

3.1 超全局变量 $_SESSION

3.2 在Login中启动session并存储值

3.3 在index.php中取值

四、关于session


前面搞了一个登录的案例,但是没有实现登录成功以后的页面跳转,同时补充一个session的本地存储功能。

一、前置准备

1.1、登录代码-Login.php

    <?php//1、封装数据库请求的方法:接受一个sql语句,返回sql语句的执行结果function Conn($sql){$res;$link = new mysqli('localhost','root','123456','db_test','3306');if($link->connect_error){ # 判断如果link对象里面的异常不为空switch($link->connect_error){case 1045 : echo " 访问被拒绝,可能用户名或者密码错误";break;case 1049 : echo " 数据库名称错误";break;default:break;}}else{$link->query("SET NAMES utf8"); # 使用连接对象自带的query方法执行sql语句,该sql是用来设置字符集编码$res = $link->query($sql); //这里的res是在内部的,要提高声明范围}mysqli_close($link);return $res;}//3、实现功能:用户登录if($_POST){ //3.1 判断post有没有数据//3.2 获取表单传递过来的数据$userName = $_POST['userName'];$pwd = $_POST['pwd'];//3.3 判断用户名和密码是否为空if($userName && $pwd){//3.5 在有账号数据的前提下,去编写sql语句(先查询指定的姓名)$selectSql = "SELECT * FROM tb_user WHERE userName='$userName'";//3.6 用Conn方法去读取该sql语句$res = Conn($selectSql);//3.7 去判断这个结果集有没有读取到对应的数据if($res->num_rows){ # num_rows是读取到记录的条数,如果为0就是没有了//3.9 去判断密码(读取结果集)$info = mysqli_fetch_object($res);//4.0 判断$info中对应的pwd是不是等于post传进来的pwdif($info->pwd == $pwd){echo "<script>window.alert('登录成功')</script>";}else{echo "<script>window.alert('密码不匹配')</script>";}}else{ //3.8 如果没有查询到条数,就是账号不存在echo "<script>window.alert('账号不存在')</script>";}}else{ // 3.4 否则进行提示echo "<script>window.alert('账号和密码不可为空')</script>";}}?><!-- 2、搭建结构 --><form action="" method="post"><div><label for="">账号:</label><input type="text" name="userName"></div><div><label for="">密码:</label><input type="password" name="pwd"></div><input type="submit" value="登录"><a href="javascript:void(0)">注册</a></form>

1.2 首页index.php

<body><h1>欢迎来到首页</h1>
</body>

二、实现登录跳转

在Login文件中,登录校验成功以后,就需要进行一个页面的跳转

 而跳转的方式有两种:一种是以PHP的方式,一种是以JS的方式跳转

2.1 PHP方式实现页面跳转

通过PHP中的方法:header() 实现跳转

//PHP的方式实现跳转
//通过方法:header() 跳转到首页
header("location:./index.php");

2.2 JS方式实现页面跳转

通过JS中的location.href='文件路径'

//通过JS的方式实现页面跳转
echo "<script>window.location.href='./index.php'</script>";

(这里的后续就先用JS的跳转方式了)

三、实现用户信息登录状态的记录

当我们通过登录的页面跳转到首页的时候,我们需要把登录的数据传递过去

那么这个问题的解决方法:采用session会话存储进行登录状态的保持(超全局变量)

3.1 超全局变量 $_SESSION

在PHP中,有一个超全局的变量:$_SESSION

这个变量专门用于存储会话记录的全局变量

而该SESSION变量和其他超全局变量的区别 在于:$_SESSION需要自己手动启动才可使用

1、如果直接输出该超全局变量,则会提示不存在

var_dump($_SESSION); #  直接输出会被提示为不存在的变量

2、使用方法:session_start() 方法启动 session

        # 启动sessionsession_start();var_dump($_SESSION)

3、赋值session

类似于关联数组的方式

        # 赋值和取值$_SESSION['userName'] = '张三';var_dump($_SESSION);echo $_SESSION['userName'];

 通过这个$_SESSION的超全局变量,差不多就可以实现用户登录后的数据存储了

3.2 在Login中启动session并存储值

回到登录功能的代码模块,找到登录成功的分支作用域

我们只需要完成两步:启动session,和存值

需要存入session的值,可以是前面查询返回的结果集转换为对象(用变量$info存储)后的属性值

 # 1、启动sessionsession_start();# 2、存值$_SESSION['id'] = $info->id;$_SESSION['userName'] = $info->userName;$_SESSION['pwd'] = $info->pwd;$_SESSION['phone'] = $info->phone;$_SESSION['birthday'] = $info->birthday;$_SESSION['email'] = $info->email;# 3、打印测试var_dump($_SESSION);

没啥大问题

3.3 在index.php中取值

在Login完成数据的存储以后,回到index页面

在该页面同样需要启动 session

<body><?php# 启动sessionsession_start();# 取值echo "<h1>欢迎你:".$_SESSION['userName']."</h1>";echo "你的密码是:".$_SESSION['pwd'];?>
</body>

 差不多就是这样子啦

四、关于session

关于会话存储

浏览器从打开域名里面的页面到关闭浏览器之间的过程就是:会话

也就是说:

1、会话:是指浏览器(客户端)从访问某个域名上的网页开始,到整个浏览器(客户端)关闭的整个过程

2、session:是在会话过程,针对同个域名下的页面都有效,除非手动清除或者覆盖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/254213.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

excel用条件格式设置隔行变色

1、选中要设置隔行变色的区域 2、点击条件格式—>新建规则—>使用公式确定要设置格式额单元格 3、输入公式 mod(row(),2) 0&#xff0c;点击格式按钮&#xff0c;选择填充的颜色&#xff0c;点击确定。如下图所示&#xff1a; 4、在新建格式规则窗口中点击确定&#x…

Web|设置隔行变色的单元格

问题 表格在日常生活中使用的非常的多,比如excel就是专门用来创建表格的工具,表格就是用来表示一些格式化的数据的,比如:课程表、银行对账单。在网页中也可以来创建出不同的表格。在HTML中,使用table标签来创建一个表格,在table标签中使用tr来表示表格中的一行,有几行就…

Excel小技巧,隔行变色,多行变色

Excel小技巧&#xff0c;隔行变色&#xff0c;多行变色&#xff0c;间隔色&#xff0c;关键在于公式&#xff1a; mod(row(),x)y 其中x指期望的每隔&#xff08;x-1&#xff09;行变色&#xff0c;y等于每隔的第(y1)行&#xff1b; 比如&#xff1a;mod(row(),2)0 用来设置每…

[蓝桥杯/java/算法]A——隔行变色

&#x1f9d1;‍&#x1f393;个人介绍&#xff1a;大二软件生&#xff0c;现学JAVA、Linux、MySQL、算法 &#x1f4bb;博客主页&#xff1a;渡过晚枫渡过晚枫 &#x1f453;系列专栏&#xff1a;[编程神域 C语言]&#xff0c;[java/初学者]&#xff0c;[蓝桥杯] &#x1f4d6…

前端 | 设置隔行变色的单元格

欢迎点击「算法与编程之美」↑关注我们&#xff01; 本文首发于微信公众号&#xff1a;"算法与编程之美"&#xff0c;欢迎关注&#xff0c;及时了解更多此系列文章。 问题描述 表格在日常生活中使用的非常的多&#xff0c;比如excel就是专门用来创建表格的工具&#…

java中设置基偶隔行换色_excel2010如何设置隔行变色

在使用excel的过程中&#xff0c;一定见过别人编排的excel文档&#xff0c;隔行添加单元格背景颜色&#xff0c;也就是通常所说的隔行变色效果。下面就跟学习啦小编一起看看吧。 excel2010设置隔行变色的步骤 第一步&#xff0c;启动Excel2010&#xff0c;打开相应的工作簿文档…

python如何实现隔行换色_Excel2010如何实现隔行设置背景色

当Excel表格中的数据很多&#xff0c;很有可能会出现看错行的现象&#xff0c;为防止看错行&#xff0c;可以隔行设置背景色。可以通过套用表格格式或者条件格式来达到隔行变色的效果 方法一&#xff1a;通过套用表格格式 1、选中要处理的单元格或者列。 说明&#xff1a;选择列…

Excel 隔行变色

2019独角兽企业重金招聘Python工程师标准>>> 在日常办公Excel操作中&#xff0c;经过遇到需要将表格不同行或者不同列之间标记为不同的颜色来区分。如果只有少量可以直接进行操作&#xff0c;当数量较大时再一行一行或者一列一列操作就显得不够专业了。那么该如何快…

【测试基础01】

本期参考文献: 链接 一、安装mysql 1、安装mysql可以参考链接: 文章 2、安装mysql与python的工具 进行校验&#xff0c;查看是否安装成功 二、创建库 mycursor mydb.cursor() mycursor.execute("CREATE DATABASE ck") 执行语句创建库在mysql库里可以看到…

微信如何群删好友 微信群删好友的方法教程

微信作为如今的日常通讯软件&#xff0c;可以说是融入了生活中的方方面面&#xff0c;而有些人在使用过程中添加了很多好友&#xff0c;但对于一些不怎么熟悉的好友可以选择删除&#xff0c;不过要是好友太多一个一个删也很麻烦&#xff0c;那么&#xff0c;微信如何群删好友?…

终于!微信正式版群聊可折叠:满屏群信息成为历史

9月26日消息&#xff0c;微信今日发布了iOS端的8.0.14版本&#xff0c;微信群聊终于可折叠了。 小雷使用iPadOS上的微信进行了测试&#xff0c;在群聊界面的菜单中&#xff0c;会出现一个“折叠该群聊”的选项&#xff0c;勾选即可折叠该群聊。折叠后&#xff0c;“折叠的群聊”…

微信怎么找群聊?找回微信群聊只需要这样…

如今社会中的日常生活已经离不开微信&#xff0c;微信是社交界的一股清流&#xff0c;聊天、视频、语音等等功能&#xff0c;而且支付功能的用途范围在国内也甚是广泛。微信怎么找群聊&#xff1f;是的&#xff0c;当多个好友之间相互认识&#xff0c;或者都有一个共同点的时候…

【微信机器人】可做自动回复,自动接收转账,群聊机器人。

前言&#xff1a; 目前市面上的微信机器人项目少之又少&#xff0c;并且大多数的不可用。比如用抓取网页微信接口&#xff0c;但大多数人的账号没有使用网页微信的权限。又或者价格昂贵&#xff0c;如使用微信pad协议。于是便开发一个通过Hook微信的DLL文件&#xff0c;修改其…

半群与群

半群与独异点 半群与独异点的定义 定义11.1 (1)设V<S,>是代数系统,为二元运算,如果运算是可结合的,则称V为半群。    (2)设V<S,>是半群,若e∈S是关于运算的单位元,则称V是含幺半群,也叫做独异点。有时也将独异点V记作V<S,,e>. 例11.1 (1)<Z,&…

JS中手撕防抖函数和节流函数

1.防抖函数 1.1定义 说明&#xff1a;在一定时间内&#xff0c;频繁执行事件&#xff0c;只执行最后一次函数。(英雄联盟回城) 1.2步骤&#xff1a; 声明定时器函数判断是否有定时器函数&#xff0c;如果有定时器函数的话就清除定时器。。如果没有定时器函数的话&#xff0…

微服务Spring Cloud 02------使用Eureka实现注册中心(1)

1.Eureka简介 Eureka是Spring Cloud中的一个负责服务注册与发现的组件。遵循着CAP理论中的A(可用性)和P(分区容错性)。 Eureka是Netflix中的一个开源框架。它和 Zookeeper、Consul一样&#xff0c;都是用于服务注册管理的&#xff0c;同样&#xff0c;Spring-Cloud 还集成了Zo…

中台分类

大家好&#xff0c;我是易安&#xff0c;之前我们谈到过中台的概念&#xff0c;以及如何落地中台。今天我就带你一起看一看&#xff0c;行业常见的中台分类。 业务中台与数据中台 业务中台 业务这个词&#xff0c;其实是有些宽泛的&#xff0c;我听到很多人口中说的业务都不是…

NeRF-SLAM代码记录

前言 没运行成功,尤其是编译gtsam部分,每一步都有错,又是讨厌c++第一天。 这一行编译到92% 就会报错 python/CMakeFiles/gtsam_py.dir/build.make:250: recipe for target python/CMakeFiles/gtsam_py.dir/linear.cpp.o failed make[2

考研C语言第七章

7.2函数的声明定义&#xff0c;函数的分类和调用 1、函数声明要在main函数上面&#xff0c;这样main函数才可以进行调用 第一节课主要就学了函数的调用&#xff0c;项目在开发的时候分工用的比较多 主要结构&#xff1a; func.c里面进行函数的定义 不是很重要&#xff0c;进…

I.MX RT1170加密启动详解(2):Authenticated HAB认证原理

文章目录 1 基础2 使能过程3 Boot flow 1 基础 HAB认证是基于RSA或ECDSA算法的公钥密码学&#xff0c;它用一系列的私钥对image进行加密&#xff0c;然后BootROM在上电后用对应的公钥验证加密的镜像是否被修改。这个密钥结构就是PKI(Public Key Infrastructure)树 (1)normal …