登录  /  注册
博主信息
博文 49
粉丝 0
评论 4
访问量 40601
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
给员工管理系统添加用户登录与验证功能,使用session实现
过儿的博客
原创
1078人浏览过

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;
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

批改状态:未批改

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学