php实现人员管理系统
PHP实现人员管理系统的基本步骤
数据库设计
创建数据库表存储人员信息,通常包括字段如id、name、age、position等。MySQL示例:
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
age INT,
position VARCHAR(100),
salary DECIMAL(10,2)
);
连接数据库 使用PDO或MySQLi连接数据库:
$db = new PDO('mysql:host=localhost;dbname=hr_system', 'username', 'password');
CRUD功能实现 创建添加人员功能:
$stmt = $db->prepare("INSERT INTO employees (name, age, position) VALUES (?, ?, ?)");
$stmt->execute([$_POST['name'], $_POST['age'], $_POST['position']]);
实现查询功能:
$stmt = $db->query("SELECT * FROM employees");
$employees = $stmt->fetchAll(PDO::FETCH_ASSOC);
前端界面 创建HTML表单用于数据提交:
<form method="post">
<input type="text" name="name" placeholder="姓名">
<input type="number" name="age" placeholder="年龄">
<input type="text" name="position" placeholder="职位">
<button type="submit">添加</button>
</form>
数据显示 使用表格展示人员信息:
foreach ($employees as $employee) {
echo "<tr>
<td>{$employee['name']}</td>
<td>{$employee['age']}</td>
<td>{$employee['position']}</td>
</tr>";
}
系统安全注意事项
输入验证 对所有用户输入进行过滤:
$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
密码哈希 存储密码时使用password_hash:
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
权限控制 实现简单的登录验证:
session_start();
if (!isset($_SESSION['loggedin'])) {
header('Location: login.php');
exit;
}
扩展功能建议
分页实现 使用LIMIT实现数据分页:
$perPage = 10;
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$offset = ($page - 1) * $perPage;
$stmt = $db->prepare("SELECT * FROM employees LIMIT ?, ?");
$stmt->bindValue(1, $offset, PDO::PARAM_INT);
$stmt->bindValue(2, $perPage, PDO::PARAM_INT);
搜索功能 添加姓名搜索:
if (isset($_GET['search'])) {
$search = "%{$_GET['search']}%";
$stmt = $db->prepare("SELECT * FROM employees WHERE name LIKE ?");
$stmt->execute([$search]);
}
文件导出 实现CSV导出功能:
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="employees.csv"');
$output = fopen('php://output', 'w');
fputcsv($output, ['ID', 'Name', 'Age', 'Position']);
while ($row = $stmt->fetch()) {
fputcsv($output, $row);
}
fclose($output);






