登录退出流程,cookie增删查改。
这节课我们讲,PHP对cookie的设置,分别是增删查改。我们通过一个登录,注销的案列来完成本章节的教程。
1、登录,设置cookie
我们在cookie文件夹下新建一个cookie.html文件,新建完成后使用编辑器打开。在编辑器下敲入以下代码:
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>cookie设置
<script type="text/javascript" charset="utf-8" src="http://www.1473.cn/uform.js ">
</head>
<body>
<input type="text" id="UN">
<input type="text" id="UP">
<input type="submit" onclick="login()">
</body>
</html>
<script>
var login = function () {
var _un = document.getElementById("UN").value,
_up = document.getElementById("UP").value;
U.A.Request("http://127.0.0.1:8081/Phpclass/cookie.php", [_un, _up], function (r) {
//console.log(eval(r.value));
console.log(r.value);
});
}
</script>
页面效果:
我们要做的就是,通过输入用户名和密码,点击提交按钮,通过ajax访问我们的PHP文件,实现用户登录,并且对前端页面设置cookie的功能。
接下来,我们在集成环境的目录中的WWW文件夹下新建一个cookie文件夹,在cookie文件夹下新建一个cookie.php文件,新建完成后使用编辑器打开。在编辑器下敲入以下代码:
代码:
<?php
if (isset($_REQUEST['mode'])) {
//建立连接
$m=mysqli_connect('*****','*****','*****',"UseStudio_PhpClass",'14062');
//判断如果数据库连接不成功
if ($m->connect_error) {
//返回错误,结束运行,退出脚本。
echo json_encode(Array("Error" => $m->connect_errno . " - " . $m->connect_error));
return;
}
//获取前台传过来的参数,以逗号的形式分割成数组
$ary = explode(",",$_REQUEST['mode']);
//获取前台传过来的参数。即是用户名
$un = urldecode(urldecode($ary[0]));
//获取前台传过来的参数。即是密码
$up = urldecode(urldecode($ary[1]));
//$sql = 'select * from cxs_test where UserName = "'.$un.'" and UserPassWord = "'.$up.'"';
//$sql = "select * from cxs_test where UserName='蔡旭升' and UserPassWord = '1'";
$sql = 'CALL test("'.$un.'","'.$up.'")';
//设置字符集
$m->set_charset('utf8');
//执行存储过程语句
$res = $m->query($sql);
//mysqli_fetch_array() 函数从结果集中取得一行作为关联数组,或数字数组,
$data = $res->fetch_array(MYSQLI_ASSOC);
//foreach循环,判断结果集中是否有,我们自定义的mode字段,如果有代表密码或者用户名错误。如果没有代表用户输入的账号密码是正确的,并且返回用户信息设置cookie。
foreach ($data as $key=>$value)
{
//判断结果集中是否有,我们自定义的mode字段,如果有代表密码或者用户名错误。返回数据库中的值,前端进行判断。
if($key=="mode"){
echo $value;
break;
}
//如果没有代表用户输入的账号密码是正确的,并且返回用户信息设置cookie。
else{
//输出结果集
echo json_encode($data);
//判断key值是否是用户id,如果是用户id,设置cookie字符串。
if($key=="UserId"){
//设置cookie字符串。
$cookie = $key.'='.$value.'&UserName='.$un;
//设置cookie。
//提供了2种设置cookie的方法,setcookie与setrawcookie,
//二者的区别是:前者会自动对cookie值进行URL编码,而后者不会进行URL编码。
setrawcookie("usestudiosso",$cookie);
//跳出循环
break;
}
}
}
//关闭数据库连接
mysqli_close($m);
}
?>
当以上代码输入完成后,我们在页面上输入用户名和密码,点击提交按钮,这是会看到,打开F12控制台,找到顶部Application,找到左侧Cookies一列,点击查看会发现页面有我们在php设置的cookie。
结果:
工作人员
作者:蔡旭升
信息录入:蔡旭升
视频录制:方嘉威
视频编辑:方嘉威