用户端与服务器的对话机制
1、编程: cookie实现用户登录与验证
(1)cookie存在实验
<?php //感恩 //认真的人该变了自己,坚持的人改变了命运! //日行一善,改变命运! // cookie //1.设置cookie //setcookie('username','admin',time()+3600); //2.查看cookie: 超全局系统变量[数组]: $_COOKIE //echo '<br>',$_COOKIE['username']; //3.删除cookie setcookie('username', 'admin', time()-3600);
点击 "运行实例" 按钮查看在线实例
(2)登录实验
<?php //感恩 //认真的人该变了自己,坚持的人改变了命运! //日行一善,改变命运! if('POST'==$_SERVER['REQUEST_METHOD']){ // require 'inc/function.php'; require 'inc/connect.php'; //验证登录 list($check,$data)=check_login($dbc,$_POST['email'],$_POST['password']); //检测是否验证通过 if($check){ //set cookie setcookie('id',$data['user_id']); setcookie('name', $data['user_name']); //jump redirect_user('loggedin.php'); }else{ $errors=$data; } //shutdown mysqli_close($dbc); } include 'login_page.php';
点击 "运行实例" 按钮查看在线实例
(3)注销登录
<?php //感恩 //认真的人该变了自己,坚持的人改变了命运! //日行一善,改变命运! //退出登录页面 //判断用户是否登录? if (!isset($_COOKIE['id'])) { require 'inc/function.php'; redirect_user(); } else { //退出登录,删除cookie setcookie('id', '', time()-3600); setcookie('name', '', time()-3600); } $page_title = '退出登录'; //导入页面的公共头部 include 'inc/header.php'; //heredoc echo <<< "WELCOME" <h2 style="color:red">退出成功</h2> <p><a href="login.php">登录</a></p> WELCOME; //导入页面的公共底部 include 'inc/footer.php';
点击 "运行实例" 按钮查看在线实例
2、编程: session实现用户登录与验证
(1)示例
<?php //感恩 //认真的人该变了自己,坚持的人改变了命运! //日行一善,改变命运! session_start(); // session //1.设置session $_SESSION['user_name']='admin'; $_SESSION['id'] = 120; //2.查看session: 超全局系统变量[数组]: $_COOKIE echo '<br>',$_SESSION['user_name']; //3.删除浏览器上session setcookie('PHPSESSID', '', time()-3600); //4、删除服务器上 session_destroy();
点击 "运行实例" 按钮查看在线实例
(2)登录
<?php //启动会话 session_start(); if ($_SERVER['REQUEST_METHOD'] == 'POST') { //加载函数库 require 'inc/function.php'; //连接数据库 require 'inc/connect.php'; //验证登录 list($check, $data) = check_login($dbc,$_POST['email'],$_POST['password']); //检测是否验证通过 if ($check) { //设置session $_SESSION['id'] = $data['user_id']; $_SESSION['name'] = $data['user_name']; //跳转 redirect_user('loggedin.php'); } else { $errors = $data; } //关闭 mysqli_close($dbc); } include 'login_page.php';
点击 "运行实例" 按钮查看在线实例
(3)注销
<?php //感恩 //认真的人该变了自己,坚持的人改变了命运! //日行一善,改变命运! //退出登录页面 //判断用户是否登录? if (!isset($_SESSION['id'])) { require 'inc/function.php'; redirect_user(); } else { //退出登录,删除cookie setcookie('id', '', time()-3600); setcookie('name', '', time()-3600); } $page_title = '退出登录'; //导入页面的公共头部 include 'inc/header.php'; //heredoc echo <<< "WELCOME" <h2 style="color:red">退出成功</h2> <p><a href="login.php">登录</a></p> WELCOME; //导入页面的公共底部 include 'inc/footer.php';
点击 "运行实例" 按钮查看在线实例
3、手写: cookie与session会话机制的优缺点分析