Correction status:Uncorrected
Teacher's comments:
index.php
<?php $page_title = '首页'; include ('inc/header.php'); echo '<h2 style="color:red">盘点页面</h2>'; if ((isset($_COOKIE['user_id'])) && basename($_SERVER['PHP_SELF']) != 'logout.php') { echo '<a href="logout.php">退出</a>'; } else { echo '<a href="login.php">登录</a>'; } inc
点击 "运行实例" 按钮查看在线实例
login_page.php
<?php /** * 登录页面并报告错误 * 设置当前页面的标题 * 在login.php中调用 */ $page_title = '用户登录'; //加载头部文件 include('inc/header.php'); //打印错误信息 if (isset($errors) && !empty($errors)) { $errors_msg = '<p style="color:red">'; foreach ($errors as $msg) { $errors_msg .= $msg.'<br>'; } echo $errors_msg.'</p>'; } ?> <h2 style="color:red">用户登录</h2> <form action="login.php" method="post"> <p> <label for="email" >邮箱:</label> <!--使用粘性表单技术在文本框中显示用户之前输入的内容,提升用户体验--> <input type="email" name="email" id="email" value="<?php echo isset($_POST['email'])?$_POST['email']:'' ?>"> </p> <p> <label for="password">密码:</label> <input type="password" name="password" id="password" value="<?php echo isset($_POST['password'])?$_POST['password']:'' ?>"> </p> <p><button type="submit" name="submit" id="submit" class="btn btn-lg btn-primary"">登录</button></p> </form> <?php include ('inc/footer.php'); //加载底部 ?>
点击 "运行实例" 按钮查看在线实例
login.php
<?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { //加载公共函数库 require ('inc/function.php'); //连接数据库 require ('inc/connect.php'); //验证登录 //$check=true/false; $data=['user_id'=>$user_id, 'user_name'=>$user_name]; list($check, $data) = check_login($dbc, $_POST['email'], $_POST['password']); //验证通过 if ($check) { //设置cookies setcookie('user_id', $data['user_id']); setcookie('user_name', $data['user_name']); //跳转页面 redirect_user('loggedin.php'); } else { //验证失败 $errors = $data; } //关闭数据库连接 mysqli_close($dbc); } //加载 include('login_page.php');
点击 "运行实例" 按钮查看在线实例
loggedin.php
<?php if (!isset($_COOKIE['user_id'])) { require ('inc/function.php'); //跳转到默认首页 redirect_user(); } //如果已经登录 //设置页面标题 $page_title = '已经登录'; include ('inc/header.php'); //打印欢迎信息,并提供退出功能 echo <<< "WELCOME" <p style="color:red" align="right" >盘点人:{$_COOKIE['user_name']} <a href="logout.php">退出</a></p> WELCOME; //加载底部 include ('inc/footer.php');
点击 "运行实例" 按钮查看在线实例
logout.php
<?php if (!isset($_COOKIE['user_id'])) { require ('inc/function.php'); //跳转到默认首页 redirect_user(); } else { //删除cookies setcookie('user_id', '', time()-3600); setcookie('user_name','', time()-3600); } //设置页面标题 $page_title = '已经登录'; include ('inc/header.php'); //打印退出信息,并提供登录功能 echo <<< "WELCOME" <h2 style="color:red">退出成功</h2> <p><a href="login.php">登录</a></p> WELCOME; include ('inc/footer.php');
点击 "运行实例" 按钮查看在线实例
Session部分:
index.php
<?php session_start(); //开启会话 $page_title = '首页'; include ('inc/header.php'); echo '<h2 style="color:red">我是首页</h2>'; //if ((isset($_COOKIE['user_id'])) && basename($_SERVER['PHP_SELF']) != 'logout.php') { if ((isset($_SESSION['user_id'])) && basename($_SERVER['PHP_SELF']) != 'logout.php') { echo '<a href="logout.php">退出</a>'; } else { echo '<a href="login.php">登录</a>'; } include ('inc/footer.php');
点击 "运行实例" 按钮查看在线实例
loggedin.php
<?php //开启会话 session_start(); //if (!isset($_COOKIE['user_id'])) { if (!isset($_SESSION['user_id'])) { require ('inc/function.php'); //跳转到默认首页 redirect_user(); } //如果已经登录 //设置页面标题 $page_title = '已经登录'; include ('inc/header.php'); //打印欢迎信息,并提供退出功能 echo <<< "WELCOME" <h2 style="color:red">登陆成功</h2> <p>欢迎您: {$_SESSION['user_name']}</p> <p><a href="logout.php">退出</a></p> WELCOME; //加载底部 include ('inc/footer.php');
点击 "运行实例" 按钮查看在线实例
login.php
<?php //开启会话 session_start(); if ($_SERVER['REQUEST_METHOD'] == 'POST') { //加载公共函数库 require ('inc/function.php'); //连接数据库 require ('inc/connect.php'); //验证登录 //$check=true/false; $data=['user_id'=>$user_id, 'user_name'=>$user_name]; list($check, $data) = check_login($dbc, $_POST['email'], $_POST['password']); //验证通过 if ($check) { //设置cookies // setcookie('user_id', $data['user_id']); // setcookie('user_name', $data['user_name']); //设置session会话 $_SESSION['user_id'] = $data['user_id']; $_SESSION['user_name'] = $data['user_name']; //跳转页面 redirect_user('loggedin.php'); } else { //验证失败 $errors = $data; } //关闭数据库连接 mysqli_close($dbc); } //加载 include('login_page.php');
点击 "运行实例" 按钮查看在线实例
login_page.php
<?php /** * 登录页面并报告错误 * 设置当前页面的标题 * 在login.php中调用 */ $page_title = '用户登录'; //加载头部文件 include('inc/header.php'); //打印错误信息 if (isset($errors) && !empty($errors)) { $errors_msg = '<p style="color:red">'; foreach ($errors as $msg) { $errors_msg .= $msg.'<br>'; } echo $errors_msg.'</p>'; } ?> <h2 style="color:red">用户登录</h2> <form action="login.php" method="post"> <p> <label for="email">邮箱:</label> <!--使用粘性表单技术在文本框中显示用户之前输入的内容,提升用户体验--> <input type="email" name="email" id="email" value="<?php echo isset($_POST['email'])?$_POST['email']:'' ?>"> </p> <p> <label for="password">密码:</label> <input type="password" name="password" id="password" value="<?php echo isset($_POST['password'])?$_POST['password']:'' ?>"> </p> <p><button type="submit" name="submit" id="submit">登录</button></p> </form> <?php include ('inc/footer.php'); //加载底部 ?>
点击 "运行实例" 按钮查看在线实例
logout.php
<?php //开启会话 session_start(); if (!isset($_SESSION['user_id'])) { require ('inc/function.php'); //跳转到默认首页 redirect_user(); } else { //删除cookies // setcookie('user_id', '', time()-3600); // setcookie('user_name','', time()-3600); //删除会话 $_SESSION = []; session_destroy(); setcookie('PHPSESSID', '', time()-3600); } //设置页面标题 $page_title = '已经登录'; include ('inc/header.php'); //打印退出信息,并提供登录功能 echo <<< "WELCOME" <h2 style="color:red">退出成功</h2> <p><a href="login.php">登录</a></p> WELCOME; include ('inc/footer.php');
点击 "运行实例" 按钮查看在线实例