批改状态:合格
老师批语:写的可以,这种卡片样式我也喜欢!
setcookie('name','value','expire','path','domain','secure','httponly');| 参数 | 描述 |
|---|---|
| name | 规定 cookie 的名称 |
| value | 规定 cookie 的值 |
| expire | 规定 cookie 的过期时间,time()+3600 * 24 * 30 将设置 cookie 的过期时间为 30 天。如果这个参数没有设置,那么 cookie 将在 session 结束后(即浏览器关闭时)自动失效 |
| path | 规定 cookie 的服务器路径,如果路径设置为 “/“,那么 cookie 将在整个域名内有效 |
| domain | 规定 cookie 的域名,为了让 cookie 在所有子域名中有效,您需要把 cookie 的域名前加上 “.” |
| secure | 规定是否需要在安全的 HTTPS 连接来传输 cookie。如果 cookie 需要在安全的 HTTPS 连接下传输,则设置为 TRUE,默认是 FALSE |
| httponly | 只可以通过http协议来访问 |
<?php//1.通过setcookie(),来设置cookiesetcookie('name','admin',time()+600,'/','.php.edu',0);

header()方法发送原生http头来设置cookie
<?phpheader("Set-Cookie:n=1");

setrawcookie()发送未经 URL 编码的 cookie
<?phpsetcookie('email','7777@qq.com');setrawcookie('email','8888@163.com');

<?phpsetcookie('name','admin',time()+600,'/','.php.edu',0);echo $_COOKIE['name'];

<?phpsetcookie('name','admin',time()+600,'/','.php.edu',0);setcookie('name','zhang');echo $_COOKIE['name'];

<?php//删除cookie,把第三个参数设置为过去的时间,值设置为空setcookie('name','admin',time()+600,'/','.php.edu',0);setcookie('name','',time()-3600,'/','.php.edu',0);print_f($_COOKIE);

localStorage.setItem('name','wang');/*添加数据*/localStorage.getItem('name');/*读取数据*//*删除一条数据*/localStorage.removeItem('name');/*批量删除数据*/localStorage.clear();

session把用户的会话信息保存到服务器上
session的工作原理:
用户向服务器发送请求,服务器会检测请求里有没有一个session ID,没有的话,服务器会创建一个session文件并生成一个session ID,然后把session ID返回给客户端;如果请求中有session ID的话,服务器就会把之前的会话信息读取出来并且这个会话信息在服务器的任何一个页面都是共享的。
<?phpsession_start();//session_start() 函数必须位于 <html> 标签之前//存储 Session 变量$_SESSION['name'] = 'admin001';//输出session变量echo 'session的值是:'.$_SESSION['name'];//销毁session//session_destroy();session_unset();//释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的session idsession_destroy();//删除当前用户对应的session文件以及释放session id,内存中的$_SESSION变量内容依然保留print_r($_SESSION);?>


//demo3.php代码<?php$username = $_POST['username'];$password = $_POST['password'];//清除cookiefunction clearCookies(){setcookie('username','',time()-3600);setcookie('isLogin','',time()-3600);}//登录验证if ($_POST['sub']){if($username == 'admin' && $password == '123456'){clearCookies();setcookie('username',$username);setcookie('isLogin','1');print_r($_COOKIE);header("Location:demo4.php");}else{exit('<script>alert("用户名或密码错误");</script>');}}//退出登录if($_GET['action'] == 'logOut'){clearCookies();}?><!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>实战练习</title><style>body{margin:0;padding: 0;box-sizing: border-box;background-color: gainsboro;display:flex;justify-content: center;align-items: center;}.content{width: 500px;height: 300px;border-radius: 10px;box-shadow: 0 0 5px #888;background-color: #fff;position:absolute;top:30%;padding:10px;}</style></head><body><table class="content"><form action="" method="post"><tr><td><label for="username">账号:</label></td><td><input type="text" name="username" id="username"></td></tr><tr><td><label for="password">密码:</label></td><td><input type="password" name="password" id="password"></td></tr><tr><td colspan="2"><input type="submit" name="sub" value="提交"></td></tr></form></table></body></html>
//demo4.php代码<?phpif(!isset($_COOKIE['isLogin']) || $_COOKIE['isLogin'] != "1"){exit('<script>alert("请先登录");location.href = "demo3.php";</script>');}echo '<h1>欢迎登录</h1>'.$_COOKIE['username'].'<a href="demo3.php?action=logOut">退出</a>';



设置setcookie(),header(‘Set-Cookie:a=1’),setrawcookie()
查看cookie用$_COOKIE
更新直接覆盖setcookie()
删除cookie,设置时间为负数,setcookie(‘参数’,’null’,time()-3600);
如果设置了根目录,域名;删除时必须写上根目录和域名
设置php.ini,session.auto_start = 0;启动会话时需要写session_start();
session变量赋值:$_SESSION[‘name’] = ‘admin’;
删除session:
session_unset();释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的session idsession_destroy();删除当前用户对应的session文件以及释放session id,内存中的$_SESSION变量内容依然保留
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号