批改状态:合格
老师批语:
<?php// *设置客户端cookienamespace _221206a;// *设置客户端cookiesetcookie('site','php中文网');// *查看echo $_COOKIE['site'].'<br>';

<?php// *采用setrawcookie()在客户端设置单个及多个cookienamespace _221206b;// *1 采用setrawcookie()设置单个cookiesetrawcookie('site', 'php中文网');// *2. 查看echo $_COOKIE['site'].'<br>'?? '未定义site<br>' .'<br>';//* 3.采用setrawcookie()多个cookiesetrawcookie('user[name]', 'admin');setrawcookie('user[email]', 'admin@qq.com');setrawcookie('user[age]', 40);// *如果有一个user数组的cookie存在,则遍历数组中每个键,并打印出该键及键值if (isset($_COOKIE['user'])) {foreach ($_COOKIE['user'] as $key=>$value) {printf('[%s] => %s<br>', $key, $value);}} else {echo '未定义user';}// *删除cookie// setcookie('site', 'php中文网',time()-3600);// setcookie('user[name]', 'admin',time()-3600);// setcookie('user[email]', 'admin@qq.com',time()-3600);// setcookie('user[age]', 40,time()-3600);


<?php// *会话namespace _221206c;// *1.启动会话session_start();// *2.会话$_SESSION['email']='admin@php.cn';$_SESSION['password']=sha1(md5('123456'));// *3更新(修改)会话// $_SESSION['email']='guangyunchang@php.cn';// *4删除会话// session_unset();



nav {height: 40px;background-color: deepskyblue;padding: 0 20px;display: flex;justify-content: space-between;align-items: center;}nav > a {color: white;text-decoration: none;}
body {display: flex;flex-direction: column;text-align: center;color: #555;font-weight: 300;/* background-color: lightcyan; */background: linear-gradient(to left, lightcyan, white);}body h3 {font-weight: 300;font-size: 20px;margin-bottom: 10px;}body form {width: 240px;padding: 20px;box-sizing: border-box;background: linear-gradient(to left top, lightskyblue, white);color: white;text-shadow: 0.5px 0.5px 0.5px #000;margin: auto;border-radius: 5px;box-shadow: 0 0 5px #aaa;}body form > div {height: 36px;display: flex;justify-content: space-between;align-items: center;}body form div:last-of-type {display: flex;justify-content: center;}body form input {border: none;outline: none;padding-left: 5px;height: 20px;}body form input:hover {box-shadow: 0 0 5px #aaa;}body form button {flex: auto;height: 30px;background-color: green;color: white;border: none;outline: none;}body form button:hover {background-color: lightcoral;cursor: pointer;box-shadow: 0 0 5px #aaa;}body a {color: #888;text-decoration: none;margin-top: 15px;}body a:hover {color: lightcoral;font-weight: bold;}
<?phpnamespace _221206d;use PDO;// *开启会话:必须写在顶部session_start();//*连接数据库$db = new PDO('mysql:dbname=phpedu1', 'root', 'root');// *$stmt:对sql语句进行预处理对象$stmt = $db->prepare('SELECT * FROM `user`;');// *如果执行成功,则获取user的全部关联数据if ($stmt->execute()) {$users = $stmt->fetchAll(PDO::FETCH_ASSOC);} else {// *反之获取其犯错信息print_r($stmt->errorInfo());}// *获取用户操作类型(转为小写)$action = strtolower($_GET['action']);switch ($action) {// *1. 登录// *当为登录时case 'login':if ($_SERVER['REQUEST_METHOD'] === 'POST') {// *获取登录用户的数据:邮箱和密码$email= $_POST['email'];$password= sha1($_POST['password']);$result = array_filter($users, function ($user) use ($email, $password) {return $user['email'] === $email && $user['password'] === $password;});if (count($result) === 1) {//* 登录成功,写入session$_SESSION['user'] = serialize(array_pop($result));exit('<script>alert("验证通过");location.href="index.php"</script>');}// echo '请求类型错误'; die;exit('请求类型错误或还未注册');}// *2. 退出//*不需breakcase 'logout':if (isset($_SESSION['user'])) {session_destroy();exit('<script>alert("退出成功");location.href="index.php"</script>');}// *注册// *no breakcase 'register'://* 1. 获取新用户的数据$email= $_POST['email'];$name= $_POST['name'];$password= sha1($_POST['p2']);$register_time = time();//* 2. sql$sql = <<< SQLINSERT `user`SET `name`= ?,`email`= ?,`password`= ?,`register_time`= ?;SQL;$stmt = $db->prepare($sql);$data = [$name,$email,$password, $register_time];if ($stmt->execute($data)) {if ($stmt->rowCount() > 0) {// 注册成功之后,让用户自动登录$sql='SELECT * FROM `user` WHERE `id` = ' . $db->lastInsertId();$stmt = $db->prepare($sql);$stmt->execute();$newUser =$stmt->fetch(PDO::FETCH_ASSOC);$_SESSION['user'] = serialize($newUser);exit('<script>alert("注册成功");location.href="index.php"</script>');} else {exit('<script>alert("注册失败");location.href="register.php"</script>');}} else {print_r($stmt->errorInfo());}// *no breakdefault:exit('参数非法或未定义操作');}
<?phpnamespace _221206a;// *用户(浏览器)向服务器提出会话的请求session_start();//* 判断是否已登录?// *如果服务器存在一个user的sessionif (isset($_SESSION['user'])) {// *通过反序列化获取这个叫user的session$user = unserialize($_SESSION['user']);}// print_r($user);?><!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>首页/入口文件</title><link rel="stylesheet" href="css/index.css"></head><body><nav><a href="index.php">我的博客</a><?php if (isset($user)) : ?><span style="margin-left: 300px"><?=$user['name']?></span><a id="logout">退出</a><?php else: ?><a href="login.php">登录</a><?php endif ?></nav><script>//*为退出按钮创建事件监听器document.querySelector('#logout').addEventListener('click', function(event) {if (confirm('是否退出')) {//* 禁用默认行为, 其实就是禁用原<a>标签的点击跳转行为,使用事件中的自定义方法处理event.preventDefault();// *跳转到退出事件处理器window.location.assign('handle.php?action=logout');}});</script></body></html>











<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>用户登录</title><link rel="stylesheet" type="text/css" href="css/style.css"></head><body><h3>用户登录</h3><form action="handle.php?action=login" method="post"><div><label for="email">邮箱:</label><input type="email" name="email" id="email" placeholder="demo@email.com" required autofocus></div><div><label for="password">密码:</label><input type="password" name="password" id="password" placeholder="不少于6位" required></div><div><button>提交</button></div></form><a href="register.php">还没有帐号, 注册一个吧</a></body></html>



<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="stylesheet" type="text/css" href="css/style.css"><title>注册用户</title></head><body><h3>用户注册</h3><form action="handle.php?action=register" method="post" onsubmit="return compare()"><div><label for="name">呢称:</label><input type="text" name="name" id="name" placeholder="不少于3个字符" required autofocus></div><div><label for="email">邮箱:</label><input type="email" name="email" id="email" placeholder="demo@email.com" required></div><div><label for="p1">密码:</label><input type="password" name="p1" id="p1" placeholder="不少于6位" required></div><div><label for="p2">重复:</label><input type="password" name="p2" id="p2" placeholder="必须与上面一致" required></div><div><button>提交</button><span id="tips" style="color: red"></span></div></form><a href="login.php">我有帐号,直接登录</a><script>//* 验证二次密码是否相等?function compare() {if (document.forms[0].p1.value.trim() !== document.forms[0].p2.value.trim()) {document.querySelector('#tips').innerText = '二次密码不相等';return false;}}</script></body></html>



Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号