php实现登记信息
使用PHP实现登记信息功能
创建一个简单的登记信息表单,包含姓名、邮箱和电话等基本字段。表单提交后将数据保存到数据库。
创建HTML表单
创建一个包含基本输入字段的HTML表单,用于用户填写信息。
<form action="register.php" method="post">
<label for="name">姓名:</label>
<input type="text" id="name" name="name" required>
<label for="email">邮箱:</label>
<input type="email" id="email" name="email" required>
<label for="phone">电话:</label>
<input type="tel" id="phone" name="phone" required>
<input type="submit" value="提交">
</form>
处理表单提交
在register.php文件中处理表单提交的数据,验证并存储到数据库。

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
// 验证数据
if (empty($name) || empty($email) || empty($phone)) {
die("所有字段必须填写");
}
// 连接数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 插入数据
$sql = "INSERT INTO registrations (name, email, phone) VALUES ('$name', '$email', '$phone')";
if ($conn->query($sql) === TRUE) {
echo "登记成功";
} else {
echo "错误: " . $sql . "<br>" . $conn->error;
}
$conn->close();
}
?>
数据库表结构
创建一个MySQL表来存储登记信息。
CREATE TABLE registrations (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(50) NOT NULL,
phone VARCHAR(20) NOT NULL,
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
安全增强
为防止SQL注入,使用预处理语句处理用户输入。

$stmt = $conn->prepare("INSERT INTO registrations (name, email, phone) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $name, $email, $phone);
$stmt->execute();
$stmt->close();
显示登记记录
创建一个页面显示所有登记记录。
$sql = "SELECT id, name, email, phone, reg_date FROM registrations";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"]. " - 姓名: " . $row["name"]. " - 邮箱: " . $row["email"]. " - 电话: " . $row["phone"]. " - 登记时间: " . $row["reg_date"]. "<br>";
}
} else {
echo "暂无登记记录";
}
数据验证
在服务器端对输入数据进行更严格的验证。
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
die("无效的邮箱格式");
}
if (!preg_match("/^[0-9]{10,15}$/", $phone)) {
die("电话号码必须是10-15位数字");
}
文件上传
如果需要上传文件,可以在表单中添加文件字段并处理上传。
<input type="file" name="avatar" accept="image/*">
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["avatar"]["name"]);
move_uploaded_file($_FILES["avatar"]["tmp_name"], $target_file);






