Maison  >  Article  >  développement back-end  >  Comment implémenter la fonction de connexion et de déconnexion des employés en PHP ?

Comment implémenter la fonction de connexion et de déconnexion des employés en PHP ?

WBOY
WBOYoriginal
2023-09-24 21:49:481324parcourir

Comment implémenter la fonction de connexion et de déconnexion des employés en PHP ?

Comment implémenter la fonction de connexion et de déconnexion des employés en PHP ?

Dans les entreprises modernes, gérer l'enregistrement et le départ des employés est une tâche essentielle. Le formulaire de connexion papier traditionnel a été progressivement remplacé par divers systèmes de connexion électronique. Cet article explique comment utiliser le langage PHP pour implémenter une fonction simple d'enregistrement et de départ des employés.

Tout d'abord, nous devons créer une base de données pour stocker les informations sur les employés et les enregistrements d'enregistrement. Il peut être implémenté à l'aide de MySQL ou d'autres bases de données relationnelles. Cet article prend MySQL comme exemple.

  1. Créer une base de données et des tables

Tout d'abord, créez une base de données nommée "présence" dans MySQL, puis créez une table des employés nommée "employés" et une table d'enregistrement d'arrivée et de départ nommée "checkinout".

La structure du formulaire d'employé est la suivante :

CREATE TABLE employees (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100) NOT NULL,
    position VARCHAR(100) NOT NULL
);

La structure du formulaire d'enregistrement de connexion et de déconnexion est la suivante :

CREATE TABLE checkinout (
    id INT PRIMARY KEY AUTO_INCREMENT,
    employee_id INT NOT NULL,
    checkin DATETIME NOT NULL,
    checkout DATETIME
);
  1. Écrire du code PHP

Ensuite, nous utilisons le langage PHP pour écrire une page Web simple pour mettre en œuvre la fonction de connexion et de déconnexion des employés. Dans le fichier index.php, nous devons d’abord nous connecter à la base de données et importer la table.

<?php
// 连接到数据库
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "attendance";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 导入表格
$sql = "CREATE TABLE IF NOT EXISTS employees (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100) NOT NULL,
    position VARCHAR(100) NOT NULL
)";

if ($conn->query($sql) === FALSE) {
    echo "创建员工表格失败: " . $conn->error;
}

$sql = "CREATE TABLE IF NOT EXISTS checkinout (
    id INT PRIMARY KEY AUTO_INCREMENT,
    employee_id INT NOT NULL,
    checkin DATETIME NOT NULL,
    checkout DATETIME
)";

if ($conn->query($sql) === FALSE) {
    echo "创建签到签退记录表格失败: " . $conn->error;
}
?>

Ensuite, nous créons un formulaire pour saisir les informations de l’employé.

<form action="index.php" method="post">
    <label for="name">姓名:</label>
    <input type="text" id="name" name="name" required>
    <br>
    <label for="position">职位:</label>
    <input type="text" id="position" name="position" required>
    <br>
    <input type="submit" value="添加员工">
</form>

En cliquant sur le bouton "Ajouter un employé", nous insérerons les informations sur l'employé dans la base de données.

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = $_POST["name"];
    $position = $_POST["position"];

    $sql = "INSERT INTO employees (name, position) VALUES ('$name', '$position')";

    if ($conn->query($sql) === FALSE) {
        echo "添加员工失败: " . $conn->error;
    }
}
?>

Ensuite, nous créons un tableau pour afficher les informations sur les employés et les boutons de connexion et de déconnexion.

<table>
    <tr>
        <th>ID</th>
        <th>姓名</th>
        <th>职位</th>
        <th>操作</th>
    </tr>
    <?php
    $sql = "SELECT * FROM employees";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
            echo "<tr>";
            echo "<td>" . $row["id"] . "</td>";
            echo "<td>" . $row["name"] . "</td>";
            echo "<td>" . $row["position"] . "</td>";
            echo "<td><a href='checkinout.php?employee_id=" . $row["id"] . "'>签到/签退</a></td>";
            echo "</tr>";
        }
    } else {
        echo "<tr><td colspan='4'>暂无员工信息</td></tr>";
    }
    ?>
</table>

Enfin, nous devons créer le fichier checkinout.php pour implémenter la fonction d'enregistrement et de départ des employés.

<?php
// 获取员工ID
$employee_id = $_GET["employee_id"];

// 如果是签到操作
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    date_default_timezone_set('Asia/Shanghai');
    $checkin = date("Y-m-d H:i:s");
    
    $sql = "INSERT INTO checkinout (employee_id, checkin) VALUES ('$employee_id', '$checkin')";
    
    if ($conn->query($sql) === FALSE) {
        echo "签到失败: " . $conn->error;
    }
}

// 如果是签退操作
if ($_SERVER["REQUEST_METHOD"] == "PUT") {
    date_default_timezone_set('Asia/Shanghai');
    $checkout = date("Y-m-d H:i:s");
    
    $sql = "UPDATE checkinout SET checkout='$checkout' WHERE employee_id='$employee_id' AND checkout IS NULL ORDER BY checkin DESC LIMIT 1";
    
    if ($conn->query($sql) === FALSE) {
        echo "签退失败: " . $conn->error;
    }
}

header("Location: index.php");
?>

Avec le code ci-dessus, nous pouvons implémenter une fonction simple d'enregistrement et de départ des employés. Lorsqu'un employé clique sur le lien « Connexion/Départ », l'heure d'arrivée et l'heure de départ seront enregistrées dans la base de données, et un bouton de connexion et de déconnexion sera affiché dans la liste des employés.

Il convient de noter que l'exemple de code fourni dans cet article n'est qu'une version simplifiée pour implémenter la fonction de connexion et de déconnexion des employés. Il reste encore de nombreux détails et considérations de sécurité à gérer dans les projets réels.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn