批改状态:未批改
老师批语:

login_page.php
<?php $page_title = '用户登陆页'; ?> <?php include 'lib/header.php'?> <h3>当前页: 登陆页</h3> <div class="content"> <form action="login.php" method="post"> <p> <label for="email">邮箱</label> <input type="text" name="email" id="email"> </p> <p> <label for="pass">密码</label> <input type="password" name="pass" id="pass"> </p> <p><button type="submit">登陆</button></p> </form> </div> <?php include 'lib/footer.php'?>
点击 "运行实例" 按钮查看在线实例
login.php
<?php
// 判断是否post提交
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// 加载公共函数库
require 'lib/function.php';
// 连接数据库
require 'lib/connect.php';
// 验证登陆
$email = $_POST['email'];
$pass = $_POST['pass'];
list($check,$data) = check_login($dbc,$email,$pass);
// 验证通过
if ($check) {
setcookie('user_id',$data['user_id']);
setcookie('user_name',$data['user_name']);
redirect_user('../success.php');
} else {
$error = $data;
}
mysqli_close($dbc);
}点击 "运行实例" 按钮查看在线实例
\lib\connect.php
<?php
$dbc = @mysqli_connect('localhost','root','root');
if (mysqli_connect_errno($dbc)) {
echo '连接失败' . mysqli_connect_error();
} else {
// echo '成功';
}
mysqli_select_db($dbc,'php');
mysqli_set_charset($dbc,'utf8');点击 "运行实例" 按钮查看在线实例
function.php
<?php
/医院
*用户自定义跳转
* @param string $page
*/
function redirect_user($page = 'index.php')
{
$url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']);
// 去掉右侧的 /,\
$url = rtrim($url, '/\\');
// 生成跳转地址
$url .= '/' . $page;
// 跳转到指定定址
header('Location:' . $url);
exit();
}
function check_login($dbc, $email, $pass)
{
// 创建错误信息数组
$errors = [];
// 验证邮箱
if (empty($email)) {
$errors[] = '邮箱不能为空';
} else {
$e = mysqli_real_escape_string($dbc,trim($email));
}
// 验证密码
if (empty($pass)) {
$errors[] = '密码不能为空';
} else {
$p = mysqli_real_escape_string($dbc,trim($pass));
}
// 验证成功
if (empty($errors)) {
$sql = "select user_id,user_name from user where email = '$e' and password = sha1('$p') ";
$res = mysqli_query($dbc,$sql);
if (mysqli_num_rows($res) == 1) {
$row = mysqli_fetch_assoc($res);
return [true,$row];
} else {
$errors[] = '邮箱或密码不正确,请重新输入';
}
}
return [false,$errors];
}点击 "运行实例" 按钮查看在线实例
\lib\header.php
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title><?php echo isset($page_title) ? $page_title : '' ;?></title> </head> <body> <h3>头部公共页</h3>
点击 "运行实例" 按钮查看在线实例
\lib\footer.php
success.php
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
// 用户没有登陆跳转到登陆页
if (!isset($_COOKIE['user_id'])) {
require 'lib/function.php';
redirect_user('login_page.php');
}
?>
登陆成功!!! 欢迎 <span style="color:red;"><?php echo !empty($_COOKIE['user_name']) ? $_COOKIE['user_name'] : '' ?></span> 的来到! <a href="logout.php">注销</a>
</body>
</html>点击 "运行实例" 按钮查看在线实例
logout.php
<?php
// 用户没有登陆跳转到登陆页
if (!isset($_COOKIE['user_id'])) {
require 'lib/function.php';
redirect_user('login_page.php');
}
setcookie('user_id', '', time() - 3600);
setcookie('user_name', '', time() - 3600);
echo "<a href='login_page.php'>点击登陆</a>";
?>点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号