// 用 cookie & session 做用户的登陆,退出
/*
我们需要看到自己的注册资料,即用户表自己的信息
连上mysql,查询数据,地址栏传参,传user_id
根据user_id查询用户信息
*/
<?php
$user_id = $_GET['user_id'] + 0;
$con = mysqli_connect('localhost','root','','boolshop');
mysqli_query($con,'set names utf8');
if(!$con) {
echo '数据库连接失败!';
exit(mysqli_connect_errno());
}
$sql = 'select * from user where user_id=' . $user_id;
$rs = mysqli_query($con,$sql);
print_r(mysqli_fetch_assoc($rs));
?>
/*
但是:
如果我的id是5,地址栏输入5,可以看到我的信息
如果id改成6,岂不就可以看到别人的信息?
如何控制 只看到自己的信息?
*/
做一个简单登陆cookie验证
02.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
</head>
<body>
<form action="02.php" method="post" accept-charset="utf-8">
用户名:<input type="text" name="username" value="" placeholder="">
密码:<input type="text" name="passwd" value="" placeholder="">
<input type="submit" name="" value="登陆">
</form>
</body>
</html>
02.php
<?php
// 这个页面非常重要,不是网站成员不能看
// 先判断用户名/密码 再定义常量
// 下面检查常量
$con = mysqli_connect('localhost','root','','boolshop');
mysqli_query($con,'set names utf8');
if(!$con) {
echo '数据库连接失败!';
exit(mysqli_connect_errno());
}
$u = $_POST['username'];
$p = $_POST['passwd'];
$sql = "select count(*) from user where username='" . $u . "' and passwd='" . $p . "'";
$rs = mysqli_query($con,$sql);
$row = mysqli_fetch_row($rs);
if($row[0] == 1) {
// 登陆成功
//echo '有这个用户名/密码 且匹配<br >';
define('USER',true);
} else {
echo '用户名密码错误';
}
if(defined('USER')) {
echo '你没有登陆';
exit;
}
// 如何把这行代码控制住,非本站用户不能看
echo '这部分非常重要!只有本站成员可以看';
echo 'very important';
?>
<a href="03.php">个人隐私页面</a>
03.php
<?php
if(!defined('USER')) {
echo '你没有登陆';
exit;
}
// 如何把这行代码控制住,非本站用户不能看
echo '这部分非常重要!只有本站成员可以看';
echo 'very important';
// 常量状态无法保持、不能跨页面
// 02.php的$u和$p 与 03.php 无关
?>