PHP에서 직원 로그인 및 로그아웃 기능을 구현하는 방법은 무엇입니까?
현대 기업에서 직원의 체크인과 체크아웃을 관리하는 것은 필수적인 작업입니다. 기존의 종이 로그인 양식은 점차 다양한 전자 로그인 시스템으로 대체되었습니다. 이 기사에서는 PHP 언어를 사용하여 간단한 직원 체크인 및 체크아웃 기능을 구현하는 방법을 소개합니다.
먼저 직원 정보와 체크인 기록을 저장할 데이터베이스를 만들어야 합니다. 이는 MySQL 또는 기타 관계형 데이터베이스를 사용하여 구현할 수 있습니다. 이 기사에서는 MySQL을 예로 들어 보겠습니다.
먼저 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 );
다음으로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!