批改状态:未批改
老师批语:
index.php
<?php session_start(); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>员工管理系统</title> <style> /*样式重置*/ h2, p, ul { padding: 0; margin: 0; } /*头部样式*/ .header { height: 60px; /*background-color: lightblue;*/ border-bottom: 1px solid #333; line-height: 60px; } .header .content { width: 1000px; /*background-color: lightgray;*/ overflow: hidden; margin: 0 auto; } .header .content h2 { float:left } .header .content p { float:right; } /*主体样式*/ .main { width: 1000px; min-height: 650px; /*background-color: lightcyan;*/ margin: 0 auto; position: relative; } .main .left { width: 120px; min-height: inherit; /*background-color: lightgreen;*/ border-right: 1px solid #333; position: absolute; left: 0; top: 0; } .main .right { width: 880px; min-height: inherit; /*background-color: lightyellow;*/ position: absolute; left: 121px; top: 0; } /*左侧菜单样式*/ .main .left ul { position: absolute; left: 30px; top: 50px; } .main .left li { list-style-type: none; line-height: 50px; } .main .left li a { text-decoration-line: none; } .main .left li a:hover { text-decoration-line: underline; color: red; } /*右侧工作区样式*/ .main .right iframe { width: 880px; min-height: 650px; border: none; } </style> </head> <body> <!--头部--> <div class="header"> <div class="content"> <h2>员工管理系统</h2> <?php if(isset($_SESSION['username'])): ?> <p>管理员: <?=$_SESSION['username']?> | <a href="javascript:return false" onclick="return confirm('是否退出?')? location.assign('logout.php'):false;">退出</a> <!-- <a href="javascript:return false" onclick="return confirm('是否退出?')?location.assign('logout.php'): false; ">退出</a> --> </p> <?php else: ?> <script>location.assign('login.php')</script> <?php endif; ?> </div> </div> <!--中部--> <div class="main"> <!--左侧菜单--> <div class="left"> <ul> <li><a href="staff_list.php" target="workspace">员工管理</a></li> <li><a href="system.php" target="workspace">系统设置</a></li> <li><a href="user_list.php" target="workspace">用户设置</a></li> </ul> </div> <!--右侧内容--> <div class="right"> <iframe src="staff_list.php" name="workspace"></iframe> <p style="text-align: center;margin-top: -100px;">php中文网 © 版权所有 (2017-2020)</p> </div> </div> </body> </html>
点击 "运行实例" 按钮查看在线实例
login.php
<?php session_start(); ?> <?php if(isset($_SESSION['username'])): ?> <h2>您已经登录了,请不要重复登录</h2> <p>正在跳转中</p> <script> setTimeout("location.href='index.php'",2000); </script> <?php else: ?> <!-- 用户登录 --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>用户登录</title> </head> <body> <h3>用户登录</h3> <div> <form name="user"> <p> <lable>邮箱:<input type="email" name="email" placeholder="name@example.com"></lable> </p> <p> <lable>密码:<input type="password" name="password" placeholder="********"></lable> </p> <p> <button type="button" onclick="check(this.form)">登录</button> </p> <p></p> </form> </div> <script> // 获取表单 var user = document.forms.namedItem('user'); var tips = user.lastElementChild; function addEvent(ele,tips,msg) { ele.addEventListener('blur', function (){ if (this.value.trim().length === 0) { tips.classList.add('error'); tips.innerHTML = msg; this.focus(); } },false); ele.addEventListener('keydown', function () { tips.innerText = ''; },false); } // 给邮箱和密码元素添加事件 addEvent(user.email, tips, '邮箱不能为空'); addEvent(user.password, tips, '密码不能为空'); function check(form){ var request = new XMLHttpRequest(); request.onreadystatechange = function(){ if(request.readyState === 4){ var data = JSON.parse(request.responseText); if(data.status === 1){ tips.classList.remove('error'); tips.classList.add('success'); setTimeout(function(){ location.href = 'index.php'; },2000); }else{ tips.classList.add('error'); tips.innerText = data.message; } } } request.open('POST','check.php',true); request.setRequestHeader('content-type','application/x-www-form-urlencoded'); var data = 'email='+form.email.value.trim()+'&password='+form.password.value.trim(); request.send(data); } </script> </body> </html> <?php endif; ?>
点击 "运行实例" 按钮查看在线实例
check.php
<?php // 测试是否获取成功? //print_r($_POST); // 开启会话 session_start(); $status = 0; $message = ''; if (empty($_POST['email'])) { $message = '邮箱不能为空'; exit(json_encode(['status'=>$status, 'message'=>$message])); } else { $email = strtolower(trim($_POST['email'])); } if (empty($_POST['password'])) { $message = '密码不能为空'; exit(json_encode(['status'=>$status, 'message'=>$message])); } else { $password = sha1(strtolower(trim($_POST['password']))); } if ($email && $password) { // 连接数据库 $pdo = new PDO('mysql:dbname=php', 'root', 'root'); // 准备sql语句 // 注意: rowCount()不能总是正确返回select语句执行结果数量,所以需要分二步完成 // 先用select-count()统计是否存在满足条件的记录,在结果集不为空的条件下再次查询 $sql = 'SELECT COUNT(*) FROM `user` WHERE `email`=:email AND `password`= :password'; $stmt = $pdo->prepare($sql); // 执行sql语句 if ($stmt->execute(['email'=>$email, 'password'=>$password])) { if ($stmt->fetchColumn(0) > 0) { $sql = 'SELECT `id`,`name` FROM `user` WHERE `email`=:email AND `password`= :password'; $stmt = $pdo->prepare($sql); $stmt->execute(['email'=>$email, 'password'=>$password]); $user = $stmt->fetch(PDO::FETCH_ASSOC); $_SESSION['user_id'] = $user['id']; $_SESSION['username'] = $user['name']; $status = 1; $message = '登录成功,正在跳转...'; exit(json_encode(['status'=>$status, 'message'=>$message])); } else { $message = '邮箱或密码错误'; exit(json_encode(['status'=>$status, 'message'=>$message])); } } // 以下为调试信息, 商业环境应该删除或注释掉 else { die(print_r($stmt->errorInfo())); } }
点击 "运行实例" 按钮查看在线实例
logout.php
<?php session_start(); if(isset($_SESSION['username'])){ session_destroy(); setcookie('PHPSESSION','',time()-3600,'/'); header('location:login.php'); } ?>
点击 "运行实例" 按钮查看在线实例
user_manage.php
<?php /** * Created by PhpStorm. * User: lenovo * Date: 2019/2/26 * Time: 15:51 */ $pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root'); $action = strtolower(trim($_GET['action'])); switch($action){ case 'save': $sql = 'UPDATE `user` SET `email`=:email,`password`=:password WHERE `id`=:id'; $stmt = $pdo->prepare($sql); $email =strtolower(trim($_POST['email'])); $password =sha1(strtolower(trim($_POST['password']))); $id =strtolower(trim($_POST['id'])); $stmt->bindParam('email',$email,PDO::PARAM_STR,60); $stmt->bindParam('password',$password,PDO::PARAM_STR,20); $stmt->bindParam('id',$id,PDO::PARAM_INT); if(true === $stmt-execute()){ if($stmt->rowCount() === 1){ $status =1; $message = "更新成功"; } else if($stmt->rowCount ==0){ $status = 0; $message = "没有更新"; } }else{ $status = -1; $message = "出错了!"; } } echo json_encode(['status'=>$status,'message'=>$message]); exit; ?>
点击 "运行实例" 按钮查看在线实例
Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号