>  기사  >  백엔드 개발  >  PHP에서 직원 로그인 및 로그아웃 기능을 구현하는 방법은 무엇입니까?

PHP에서 직원 로그인 및 로그아웃 기능을 구현하는 방법은 무엇입니까?

WBOY
WBOY원래의
2023-09-24 21:49:481383검색

PHP에서 직원 로그인 및 로그아웃 기능을 구현하는 방법은 무엇입니까?

PHP에서 직원 로그인 및 로그아웃 기능을 구현하는 방법은 무엇입니까?

현대 기업에서 직원의 체크인과 체크아웃을 관리하는 것은 필수적인 작업입니다. 기존의 종이 로그인 양식은 점차 다양한 전자 로그인 시스템으로 대체되었습니다. 이 기사에서는 PHP 언어를 사용하여 간단한 직원 체크인 및 체크아웃 기능을 구현하는 방법을 소개합니다.

먼저 직원 정보와 체크인 기록을 저장할 데이터베이스를 만들어야 합니다. 이는 MySQL 또는 기타 관계형 데이터베이스를 사용하여 구현할 수 있습니다. 이 기사에서는 MySQL을 예로 들어 보겠습니다.

  1. 데이터베이스 및 테이블 만들기

먼저 MySQL에서 "attendance"라는 데이터베이스를 만든 다음 "employees"라는 직원 테이블과 "checkinout"이라는 이름의 체크인 및 체크아웃 기록 테이블을 만듭니다.

직원 양식의 구조는 다음과 같습니다.

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

로그인 및 로그아웃 기록 양식의 구조는 다음과 같습니다.

CREATE TABLE checkinout (
    id INT PRIMARY KEY AUTO_INCREMENT,
    employee_id INT NOT NULL,
    checkin DATETIME NOT NULL,
    checkout DATETIME
);
  1. PHP 코드 작성

다음으로 PHP 언어를 사용하여 작성합니다. 직원 로그인 및 로그아웃 기능을 구현하는 간단한 웹 페이지입니다. index.php 파일에서 먼저 데이터베이스에 연결하고 테이블을 가져와야 합니다.

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

그런 다음 직원 정보를 입력하는 양식을 만듭니다.

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

"직원 추가" 버튼을 클릭하면 직원 정보가 데이터베이스에 삽입됩니다.

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

다음으로 직원 정보와 체크인, 체크아웃 버튼을 표시하는 테이블을 생성합니다.

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

마지막으로 직원 체크인 및 체크아웃 기능을 구현하기 위해 checkinout.php 파일을 생성해야 합니다.

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

위 코드를 이용하면 간단한 직원 로그인, 로그아웃 기능을 구현할 수 있습니다. 직원이 "로그인/체크아웃" 링크를 클릭하면 체크인 시간과 체크아웃 시간이 데이터베이스에 기록되고 직원 목록에 로그인 및 로그아웃 버튼이 표시됩니다.

본 글에서 제공하는 샘플 코드는 직원 로그인 및 로그아웃 기능을 구현하기 위한 단순화된 버전일 뿐이며, 실제 프로젝트에서 처리해야 할 세부 사항과 보안 고려 사항이 아직 많이 남아 있습니다.

위 내용은 PHP에서 직원 로그인 및 로그아웃 기능을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.