我来给你详细讲解一下“超详细的php用户注册页面填写信息完整实例(附源码)”的完整攻略。该攻略可以帮助刚开始学习PHP的人快速掌握PHP用户注册页面的制作,支持完整的信息填写,包括用户名、邮箱、密码、确认密码等。
确定页面结构
首先需要确定页面的基本结构,包括导航栏、表单、脚注等。这里可以使用HTML和CSS来实现,代码示例如下:
<!DOCTYPE html>
<html>
<head>
<title>用户注册页面</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<nav>
<ul>
<li><a href="#">首页</a></li>
<li><a href="#">注册</a></li>
<li><a href="#">登录</a></li>
</ul>
</nav>
</header>
<main>
<form method="post" action="register.php">
<label for="username">用户名</label>
<input type="text" id="username" name="username" required>
<label for="email">邮箱</label>
<input type="email" id="email" name="email" required>
<label for="password">密码</label>
<input type="password" id="password" name="password" required>
<label for="confirm_password">确认密码</label>
<input type="password" id="confirm_password" name="confirm_password" required>
<input type="submit" value="注册">
</form>
</main>
<footer>
<p>版权所有 © 2021</p>
</footer>
</body>
</html>
验证表单数据
接着需要对表单提交的数据进行验证,包括用户名是否重复、邮箱格式是否正确、密码是否符合要求等。这里可以使用PHP来实现,代码示例如下:
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// 连接数据库
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 获取表单数据
$username = $_POST["username"];
$email = $_POST["email"];
$password = $_POST["password"];
$confirm_password = $_POST["confirm_password"];
// 验证用户名是否重复
$sql = "SELECT * FROM users WHERE username='$username'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$username_err = "用户名已被使用";
} else {
$username = trim($username);
}
// 验证邮箱格式是否正确
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$email_err = "无效的邮箱格式";
}
// 验证密码是否符合要求
if (strlen($password) < 6) {
$password_err = "密码不能少于6个字符";
} elseif (!preg_match("/[a-z]+/", $password)) {
$password_err = "密码必须包含小写字母";
} elseif (!preg_match("/[A-Z]+/", $password)) {
$password_err = "密码必须包含大写字母";
} elseif (!preg_match("/\d+/", $password)) {
$password_err = "密码必须包含数字";
} elseif ($password != $confirm_password) {
$confirm_password_err = "两次输入的密码不一致";
}
// 如果表单数据验证通过,则将数据写入数据库
if (empty($username_err) && empty($email_err) && empty($password_err) && empty($confirm_password_err)) {
$sql = "INSERT INTO users (username, email, password) VALUES ('$username', '$email', '$password')";
if ($conn->query($sql) === TRUE) {
echo "注册成功";
} else {
echo "注册失败:" . $conn->error;
}
// 关闭数据库连接
$conn->close();
}
}
展示错误信息
最后需要展示表单数据验证失败时的错误信息,包括用户名已被使用、邮箱格式无效、密码过短或不符合要求、两次输入的密码不一致等。这里可以在HTML中加入错误信息显示区域,并使用PHP来输出错误信息,代码示例如下:
<main>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<label for="username">用户名</label>
<input type="text" id="username" name="username" required value="<?php echo $username;?>">
<span class="error"><?php echo $username_err;?></span>
<label for="email">邮箱</label>
<input type="email" id="email" name="email" required value="<?php echo $email;?>">
<span class="error"><?php echo $email_err;?></span>
<label for="password">密码</label>
<input type="password" id="password" name="password" required>
<span class="error"><?php echo $password_err;?></span>
<label for="confirm_password">确认密码</label>
<input type="password" id="confirm_password" name="confirm_password" required>
<span class="error"><?php echo $confirm_password_err;?></span>
<input type="submit" value="注册">
</form>
</main>
在上面的代码中,使用了htmlspecialchars()函数来避免恶意代码注入的问题,将用户输入的内容进行转义处理。
附上完整的源代码:https://github.com/example/php-user-registration-page-with-validation
其中一个示例说明是:如果用户名已被使用,则会显示错误信息“用户名已被使用”,并将输入的用户名保留在表单中。另一个示例是:如果两次输入的密码不一致,则会显示错误信息“两次输入的密码不一致”,并将输入的密码保留在表单中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:超详细的php用户注册页面填写信息完整实例(附源码) - Python技术站