当前位置:首页 > PHP

php实现打卡源码

2026-02-16 20:20:17PHP

php实现打卡源码

PHP 打卡系统实现

以下是一个简单的 PHP 打卡系统实现方案,包含基本的打卡功能和数据库记录。

php实现打卡源码

数据库设计

创建一个名为 clock_in 的表:

CREATE TABLE `clock_in` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `clock_in_time` datetime NOT NULL,
  `clock_out_time` datetime DEFAULT NULL,
  `status` tinyint(1) DEFAULT 1 COMMENT '1:正常 0:异常',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

连接数据库

$db = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

打卡功能实现

// 打卡入口
if (isset($_POST['action'])) {
    $userId = $_SESSION['user_id']; // 假设用户已登录
    $currentTime = date('Y-m-d H:i:s');

    if ($_POST['action'] == 'clock_in') {
        // 上班打卡
        $stmt = $db->prepare("INSERT INTO clock_in (user_id, clock_in_time) VALUES (?, ?)");
        $stmt->execute([$userId, $currentTime]);
        echo "上班打卡成功";
    } elseif ($_POST['action'] == 'clock_out') {
        // 下班打卡
        $stmt = $db->prepare("UPDATE clock_in SET clock_out_time = ? WHERE user_id = ? AND DATE(clock_in_time) = CURDATE()");
        $stmt->execute([$currentTime, $userId]);
        echo "下班打卡成功";
    }
}

打卡记录查询

// 查询当前用户打卡记录
$userId = $_SESSION['user_id'];
$stmt = $db->prepare("SELECT * FROM clock_in WHERE user_id = ? ORDER BY clock_in_time DESC");
$stmt->execute([$userId]);
$records = $stmt->fetchAll(PDO::FETCH_ASSOC);

前端界面示例

<form method="post">
    <input type="hidden" name="action" value="clock_in">
    <button type="submit">上班打卡</button>
</form>

<form method="post">
    <input type="hidden" name="action" value="clock_out">
    <button type="submit">下班打卡</button>
</form>

<table>
    <tr>
        <th>日期</th>
        <th>上班时间</th>
        <th>下班时间</th>
        <th>状态</th>
    </tr>
    <?php foreach ($records as $record): ?>
    <tr>
        <td><?= date('Y-m-d', strtotime($record['clock_in_time'])) ?></td>
        <td><?= $record['clock_in_time'] ?></td>
        <td><?= $record['clock_out_time'] ?? '未打卡' ?></td>
        <td><?= $record['status'] ? '正常' : '异常' ?></td>
    </tr>
    <?php endforeach; ?>
</table>

功能扩展建议

  • 添加地理位置验证,防止远程打卡
  • 实现打卡提醒和异常通知
  • 增加月度统计和报表功能
  • 添加管理员审核功能
  • 实现多设备登录限制

这个基础实现可以根据具体需求进行扩展和优化,例如添加更多的验证逻辑、美化界面或增加额外的功能模块。

标签: 源码php
分享给朋友:

相关文章

vue源码实现

vue源码实现

Vue 源码实现的核心模块分析 Vue.js 的源码实现主要围绕响应式系统、虚拟 DOM、模板编译等核心模块展开。以下是关键部分的实现原理和代码结构解析。 响应式系统 Vue 的响应式基于 Obje…

php实现增删改查

php实现增删改查

以下是在PHP中实现增删改查(CRUD)操作的详细方法,以MySQL数据库为例: 数据库连接配置 创建config.php文件存储数据库连接信息: <?php $host = 'localh…

php实现表单

php实现表单

PHP 表单基础实现 创建一个简单的 PHP 表单需要 HTML 表单结构和 PHP 处理脚本。以下是一个完整的示例: HTML 表单部分 (form.html) <form action=…

php实现登录

php实现登录

PHP 登录功能实现 数据库连接与用户表创建 创建一个数据库连接文件 db.php,用于管理数据库连接。MySQL 示例代码如下: <?php $host = 'localhost'; $db…

php实现推送

php实现推送

PHP 实现推送功能的方法 PHP 实现推送功能可以通过多种方式完成,包括 WebSocket、Server-Sent Events (SSE)、长轮询或第三方推送服务。以下是几种常见的方法: 使用…

php实现登陆

php实现登陆

PHP 实现登录功能 创建登录表单 在 HTML 文件中创建一个登录表单,包含用户名和密码输入框,表单的 action 属性指向处理登录的 PHP 文件。 <form action="logi…