Session
- Session 保存用户信息
- Session 数据是跨网页的
- 默认情况下,Session 在关闭浏览器时被销毁
- 通过全局数组变量 $_SESSION 来设置或访问 Session 变量的值
- PHP会针对访问的每个用户创建一个 Session 并对其进行管理,我们不必操心
- session_start() 开启 Session
- session_destory() 关闭 Session
示例
welcome.php−−−−−−−−−−
<?php
session_start();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>欢迎页面</title>
</head>
<body>
<?php
if (isset($_SESSION['userName'])) {
echo "欢迎回来," . $_SESSION['userName'] . "!<br>";
echo "<a href='./quit.php'>登出</a>";
} else {
echo "欢迎,请<a href='./login.php'>登录</a>!<br>";
}
?>
</body>
</html>
login.php−−−−−−−−
<?php
session_start();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>登录页面</title>
<script>
function validate_form(form) {
with (form) {
if (captcha.value == null || captcha.value == "") {
alert("验证码不能为空!");
return false;
}
}
return true;
}
</script>
</head>
<body>
<form method="post" action="./validate.php" onsubmit="return validate_form(this)">
姓名:<input type="text" name="userName" value=""> <br>
验证码:<input type="text" name="captcha" value="" size=10>
<img title="点击刷新" id="captchaImg" border="1" src="../captcha/captchaImage.php"
onclick="this.src='../captcha/captchaImage.php?r=' + Math.random();"></img><br>
<input type="submit"/>
</form>
</body>
</html>
validate.php−−−−−−−−−−
<?php
session_start(); // 开启Session,必须是第一句
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>验证页面</title>
</head>
<body>
<?php
if (isset($_POST['captcha']) && strcasecmp($_POST['captcha'], $_SESSION['captcha']) == 0) {
if (isset($_POST['userName'])) {
$_SESSION['userName'] = $_POST['userName'];
}
echo "登录成功!返回<a href='./welcome.php'>欢迎页</a>";
} else {
echo "验证码错误!请重新<a href='./login.php'>登录</a>";
}
?>
</body>
</html>
quit.php−−−−−−−
<?php
session_start(); // 开启Session,必须是第一句
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>退出登录</title>
</head>
<body>
<?php
session_destroy();
?>
返回<a href="./welcome.php">欢迎页</a>
</body>
</html>
关于验证码的实现,请参考 PHP 实现验证码