index.php
实例
<?php $page_title = '首页'; include('inc/header.php'); echo "我是首页"; // 登录检测 if ((isset($_COOKIE['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'); ?>
运行实例 »
点击 "运行实例" 按钮查看在线实例
3.loggedin.php用于登录成功的页面
实例
<?php // 处理用户没有登录的验证 if (!isset($_COOKIE['user_id'])) { require('inc/function.php'); redirect_user(); } // 已经登录了 $page_title = '已登录'; // 导入头部 include('inc/header.php'); // 打印欢迎信息 echo <<< "WELCOME" 登录成功 <p>欢迎您:{$_COOKIE['user_name']}</p> <p><a href="logout.php">退出</p> WELCOME; // 导入尾部 include('inc/footer.php'); ?>
运行实例 »
点击 "运行实例" 按钮查看在线实例
4.login.php验证登录的页面
实例
<?php // 验证用户的邮箱的密码 // 如果通过跳转到指定页面 if ($_SERVER['REQUEST_METHOD'] == 'POST') { // 加载公共函数库 require('inc/function.php'); // 连接数据库 require('inc/connect.php'); // 验证登录 list($check,$data) = check_login($dbc,$_POST['email'],$_POST['password']); // 验证通过 if ($check) { // 设置cookie 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'); ?>
运行实例 »
点击 "运行实例" 按钮查看在线实例
5.login_page.php:用于渲染登录页面
实例
<meta charset="utf-8"> <?php // 输出错误信息 // 输出登录表单 $page_title = '用户登录'; include('inc/header.php'); // 错误信息 ?> <h2>用户登录</h2> <form action="login.php" method="POST"> <p> <label for="email">邮箱:</label> <input type="email" name="email" id="email" value=""> </p> <p> <label for="password">密码:</label> <input type="password" name="password" id="password" value=""> </p> <p> <button type="submit" name="submit">登录</button> </p> </form> <?php include('inc/footer.php'); ?>
运行实例 »
点击 "运行实例" 按钮查看在线实例
6.logout.php用户退出后的页面
实例
<?php if (!isset($_COOKIE['user_id'])) { require('inc/function.php'); redirect_user(); } else{ setcookie('user_id','',time()-1); setcookie('user_name','',time()-1); } // 已经登录了 $page_title = '退出登录'; // 导入头部 include('inc/header.php'); // 打印欢迎信息 echo <<< "WELCOME" 退出成功 <p><a href="login.php">登录</p> WELCOME; // 导入尾部 include('inc/footer.php'); ?>
运行实例 »
点击 "运行实例" 按钮查看在线实例
以下是公共文件:
1.connect数据库文件
实例
<?php define ('DB_HOST', 'localhost'); define ('DB_USER', 'root'); define ('DB_PASS', 'root'); define ('DB_NAME', 'php'); define ('DB_CHAR', 'utf8'); $dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); if (mysqli_connect_errno($dbc)) { echo '连接失败'.mysqli_connect_error($dbc); } mysqli_select_db($dbc, DB_NAME); mysqli_set_charset($dbc, DB_CHAR); ?>
运行实例 »
点击 "运行实例" 按钮查看在线实例
2.footer.php公共尾部文件
实例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title> <?php echo isset($page_title)?$page_title:'默认标题'; ?> </title> </head> <body> <h3>我是公共底部代码</h3> </body> </html>
运行实例 »
点击 "运行实例" 按钮查看在线实例
3.公共头部文件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> </body> </html>
运行实例 »
点击 "运行实例" 按钮查看在线实例
4.以及最重要的公共函数库
实例
<?php // 用户自定义地址 function redirect_user($page='index.php') { // 默认地址 // http://.主机名.{dirname(函数返回路径中的目录部分):获取当前脚本的目录名} $url = 'http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']); // 去掉目录名的/\ $url = rtrim($url, '/\\'); // 生成自定义跳转地址 $url.='/'.$page; // 跳转到指定的地址 header('Location:'.$url); // 退出当前的函数或脚本 exit(); } /** * [check_login description] * @param [type] $dbc [description] * @param string $eamil [description] * @param string $password [description] * @return [type] [description] */ function check_login($dbc,$email='',$password='') { // 创建错误信息数组 $errors = []; // 验证邮箱 if (empty($email)) { $errors[] = '邮箱地址不能为空'; }else{ // 去掉空格和其他非法字符 $e = mysqli_real_escape_string($dbc, trim($email)); } // 验证秘密 if (empty($password)) { $errors[] = '密码不能为空'; }else{ // 去掉空格和其他非法字符 $p = mysqli_real_escape_string($dbc,trim($password)); } if (empty($errors)) { $sql = "SELECT `user_id`,`user_name` FROM `user` WHERE `email`='$e' AND `password`=sha1('$p') "; // $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_array($res,MYSQL_ASSOC); // echo '<pre>'; // print_r($row);die(); return [true,$row]; }else{ $errors[] = '邮箱或密码不正确,请重新输入'; } } return[false,$errors]; } ?>
运行实例 »
点击 "运行实例" 按钮查看在线实例