首先是一个普通的登陆页面实现
登录页面login.php
登录功能实现action.php
"cyy", "password" => "123456" ); } function sendLoginFailedResponse() { $response = ""; echo $response; die; } function rememberLogin($username) { setcookie("username", $username, time() + 7 * 24 * 3600); }
首页index.php
主页 会话控制实战内容一
SESSION 部分
实现用户认证功能,用户登录、退出与身份识别
会话控制实战内容二
COOKIE 部分
实现登录记住用户功能,七天免登录认证
会话控制实战内容一
SESSION 部分
实现用户认证功能,用户登录、退出与身份识别
会话控制实战内容二
COOKIE 部分
实现登录记住用户功能,七天免登录认证
接下来是会话控制实例:许愿墙源码
许愿墙首页index.php
许愿墙 "; break; case 'a2': echo "
添加愿望页面wish.php
新增愿望实现add.php
alert("发布成功!");document.location = "index.php";'; }else{ echo ''; } mysqli_close($connection); ?>
删除愿望delete.php
alert("删除成功!");document.location = "index.php";'; }else{ echo ''; } mysqli_close($connection); ?>
附上数据库结构wall.sql
-- phpMyAdmin SQL Dump -- version 4.8.5 -- https://www.phpmyadmin.net/ -- -- 主机: localhost -- 生成日期: 2019-08-18 22:08:38 -- 服务器版本: 8.0.12 -- PHP 版本: 7.3.4 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET AUTOCOMMIT = 0; START TRANSACTION; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- 数据库: `wall` -- -- -------------------------------------------------------- -- -- 表的结构 `wall` -- CREATE TABLE `wall` ( `id` tinyint(4) NOT NULL COMMENT '留言编号', `content` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '留言内容', `name` varchar(20) NOT NULL DEFAULT '匿名的宝宝' COMMENT '署名', `wish_time` int(11) NOT NULL COMMENT '留言时间', `color` char(2) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '留言背景色' ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- 转存表中的数据 `wall` -- INSERT INTO `wall` (`id`, `content`, `name`, `wish_time`, `color`) VALUES (17, '111', '111', 1566136880, 'a1'), (19, '333', '333', 1566136894, 'a3'), (21, '555', '555', 1566136911, 'a5'), (24, '9999', '9999', 1566137235, 'a4'); -- -- 转储表的索引 -- -- -- 表的索引 `wall` -- ALTER TABLE `wall` ADD PRIMARY KEY (`id`); -- -- 在导出的表使用AUTO_INCREMENT -- -- -- 使用表AUTO_INCREMENT `wall` -- ALTER TABLE `wall` MODIFY `id` tinyint(4) NOT NULL AUTO_INCREMENT COMMENT '留言编号', AUTO_INCREMENT=26; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
知识点补充:
【使用 COOKIE 实现会话控制】
用于存储用户关键信息
保存在客户端(浏览器)
通过 HTTP 请求/响应头传输
【COOKIE 失效】
● COOKIE过期
● 用户手动删除 COOKIE
● 服务器清除 COOKIE 的有效性
【使用 SESSION 实现会话控制】
● 用于存储用户相关信息
● 保存在服务端
● 通过保存在客户端的 SESSION ID 来定位 SESSION 内容
【SESSION 失效/清除】
● COOKIE过期(关闭浏览器)
● 用户手动删除 COOKIE
● 服务端删除 SESSION 文件或清空 SESSION 内容
更多相关php知识,请访问php教程!
Atas ialah kandungan terperinci 利用会话控制实现页面登录与注销功能. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!