fetch 采用while循环进行数组遍历
<?php
//引入服务器连接
require "/xp/phpstudy_pro/WWW/www.zwz.com/zwz/0512/config/PDO.php";
//访问数据表中数据
$sql = "SELECT `id` ,`uname`,`pwd` FROM `user` WHERE `id` >= ? ;";
$stmt = $pdo->prepare($sql);
$stmt->execute([1]);
// $user = $stmt->fetch();
while ($user = $stmt->fetch()) {
vprintf("<li>id = %s , uname = %s , pwd = %s</li>",$user);
}
fetchAll 采用foreach 进行数组遍历
<?php
//引入服务器连接
require "/xp/phpstudy_pro/WWW/www.zwz.com/zwz/0512/config/PDO.php";
//访问数据表中数据
$sql = "SELECT `id` ,`uname`,`pwd` FROM `user` WHERE `id` >= ? ;";
$stmt = $pdo->prepare($sql);
$stmt->execute([1]);
$user = $stmt->fetchAll();
foreach ($user as $key => $value) {
vprintf("<li>id = %s ,uname = %s ,pwd = %s</li>",$value);
}
Cookie是Web服务器在用户访问Internet站点时传递到Web浏览器的消息。浏览器会将每条消息以名称 - 值对的形式存储在用户计算机上的一个小文件中。当用户从服务器请求另一个页面时,浏览器会将cookie发送回服务器。这些文件通常包含有关用户访问网页的信息,以及用户自愿提供的任何信息,例如:用户信息,用户首选项,密码记住选项等。
使用Cookie的优点
1、Cookie易于使用和实现
实现cookie的使用要比任何其他Internet协议容易得多。
2、占用更少的内存
不需要任何服务器资源,并存储在用户的计算机上,因此不会给服务器带来额外的负担。
3、持久性
Cookie最强大的一个方面就是持久性。当在客户端的浏览器上设置Cookie时,它可以持续数天,数月甚至数年。这样可以轻松保存用户首选项和访问信息,并在用户每次返回站点时保持此信息可用。此外,由于Cookie存储在客户端的硬盘上,因此如果服务器崩溃,它们仍然可用。
4、 透明性
Cookie透明地工作,用户不知道需要存储的信息。
5、易于管理
大多数浏览器都可以让用户轻松清除浏览历史记录。只需转到工具,清除历史记录并选择Cookie即可。
Cookie存储在用户硬盘驱动器上的cookie.txt下的文本文件中,因为它是一个文本文件,我们可以使用任何查看器或文本编辑器来显示,编辑和删除它们。
使用Cookie的缺点
1、隐私问题
大多数用户主要关心的是隐私。启用Cookie的Web浏览器会跟踪您访问过的所有网站。这意味着,经许可(或不在Google的情况下),第三方可以访问这些cookie存储的信息。在某些情况下,这些第三方可以是广告商,其他用户。。。。
2、不安全
Cookie安全性是一个大问题,因为它们是以明文形式存储,可能会造成安全风险,因为任何人都可以打开并篡改cookie。
Cookie容易在客户端被发现意味着它们很容易被黑客入侵和修改。
3、难以解密
我们可以手动加密和解密cookie,但由于加密和解密所需的时间,它需要额外的编码并影响应用程序性能。
4、大小有限制,只能储存简单字符串信息
cookie文本的大小(一般为4kb),cookie的数量(一般每个站点20个)存在一些限制,每个站点只能容纳20个cookie。
Cookie仅限于简单的字符串信息,他们无法存储复杂的信息。
5、可以被禁用
用户可以选择从浏览器设置中禁用其计算机上的cookie。这意味着用户可以决定不在他的浏览器上使用cookie,这可能会在浏览器的运行中产生一些问题。
6、可以被删除
用户可以从其计算机中删除cookie,这使他们可以更好地控制cookie。
setcookie 是创建一个cookie ,$_COOKIE 是全局变量可以打印指定的cookie,创建cookie第一次是请求,第二次才能响应出结果
cookie参数,第三个参数时间目的是设置什么时候到期,后面还有许多参数,详细了解的话要看官方的解释…
Session的工作原理
Session的优缺点
优点
缺点
cookie和session的区别
switch($action)
{
case 'login':
//检测用户是否存在
$sql = "SELECT `uname`,`pwd` FROM `users` WHERE `uname`= ?; ";
$stmt = $pdo->prepare($sql);
$stmt->execute([$username]);
$res = $stmt->fetch();
// var_dump($res);
if($res)
{
//检测密码 的正确性
if(password_verify($password,$res['pwd']))
{
//验证通过 存session
$_SESSION['uname'] = $res['uname'];
echo json_encode(array('status'=>1,'msg'=>'登录成功...正在跳转'),320);
}else{
echo json_encode(array('status'=>0,'msg'=>'用户名或密码错误'),320);
}
}else{
echo json_encode(array('status'=>0,'msg'=>'用户名或密码错误'),320);
}
break;
case 'captcha_check':
//将session中的验证码和用户提交的验证码进行核对,当成功时提示验证码正确,并销毁之前的session值,不成功则重新提交 strcasecmp
if(!empty($captcha) && strtolower($_SESSION["captcha"]) === strtolower($captcha)){
$_SESSION["captcha"]="";
echo json_encode(['status'=>1,'msg'=>'验证码正确']);
}else{
echo json_encode(['status'=>0,'msg'=>'验证码不正确']);
}
break;
// 退出登录
case 'logout':
// 清空session变量
session_unset();
// 删除session文件
session_destroy();
header("Location: index.php");
break;
default:
exit('非法操作');
}