超详细的php用户注册页面填写信息完整实例(附源码)

我来给你详细讲解一下“超详细的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>版权所有 &#169; 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技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • 关于PHP递归算法和应用方法介绍

    关于PHP递归算法和应用方法介绍 什么是递归算法? 递归算法指的是在函数内部调用自身的算法。递归算法特别适合解决需要重复执行相同操作的问题。 递归算法应用示例 示例一:计算斐波那契数列 斐波那契数列是指数列中每个数字都是前面两个数字之和。用递归算法计算斐波那契数列的方法如下: function fibonacci($n) { if ($n == 0) { r…

    PHP 2023年5月23日
    00
  • PHP生成便于打印的网页

    生成便于打印的网页是一个常见的需求,因为人们需要将网页内容以纸质形式保存、打印或分享。下面将详细讲解如何使用PHP生成便于打印的网页。 1. 添加打印样式表 为了生成便于打印的网页,我们需要添加一个专门用于打印的样式表。打印样式表可以控制打印时网页的样式和布局,以便适应纸质打印。以下是一个示例的打印样式表: @media print { /* 隐藏网页顶部和…

    PHP 2023年5月26日
    00
  • PHP获取当前时间的5种实现方式

    以下是“PHP获取当前时间的5种实现方式”的完整攻略。 1. 使用date()函数获取当前时间 date()函数是PHP中用于获取日期和时间的函数,可以用来获取当前时间。函数的基本语法如下: date(format,timestamp) 其中,format是必须的参数,表示日期的输出格式;timestamp参数是可选的,表示要格式化的时间戳。如果不带time…

    PHP 2023年5月26日
    00
  • PHP实现删除字符串中任何字符的函数

    要实现PHP删除字符串中任何字符的函数,我们可以使用PHP内置的str_replace函数,它可以用来替换字符串中的某些字符或子串,从而实现删除字符的功能。 下面是实现步骤: 1.编写函数头 function deleteChars($str, $charsToDelete) { 函数名为deleteChars,接收两个参数,分别为需要删除字符的字符串$st…

    PHP 2023年5月26日
    00
  • 浅谈PHP7中的一些小技巧

    浅谈PHP7中的一些小技巧 PHP7是PHP编程语言的最新版本,它引入了许多新的特性和优化,提升了性能和开发效率,同时也增加了一些新的语法和方式。在本文中,我们将介绍一些PHP7中的小技巧,帮助您更好地使用PHP。 1. 使用类型声明 PHP7中引入了类型声明功能,允许您指示函数和方法参数及返回值的类型。这可以提高代码可读性和类型安全性。例如,可以使用以下方…

    PHP 2023年5月26日
    00
  • php7中停止php-fpm服务的方法详解

    PHP7中停止php-fpm服务的方法详解 在PHP7中,php-fpm是作为一个常见服务运行的。在某些情况下,你可能需要停止php-fpm服务。下面是停止php-fpm服务的几种方法: 方法一:使用systemctl命令 这是最常用的停止php-fpm服务的方法。首先,我们需要知道php-fpm服务的名称。在Ubuntu中,它通常被称为php7.0-fpm…

    PHP 2023年5月23日
    00
  • 使命召唤12CPU到100解决办法

    以下是针对“使命召唤12CPU到100解决办法”的完整攻略: 问题描述 在玩使命召唤12时,有时候会发现游戏在运行时会导致CPU占用率飙升到100%,这会导致游戏运行缓慢,影响游戏体验。下面将提供几种解决办法。 解决办法 1. 关闭无关程序 在打开游戏之前,关闭所有不必要的后台程序,例如音乐播放器、浏览器等等,这些程序会占用一定的CPU资源,导致游戏运行卡顿…

    PHP 2023年5月27日
    00
  • php float不四舍五入截取浮点型字符串方法总结

    关于php float不四舍五入截取浮点型字符串方法的总结,我们需要从以下两个方面入手进行详细的讲解。 一、php float不四舍五入截取浮点型字符串方法 在php中,我们通常使用number_format()函数来对浮点型数进行四舍五入,但如果我们想要保留小数点后的位数而不进行四舍五入,该怎么办呢?事实上php中提供了多种方式实现该功能,我们来逐一总结一…

    PHP 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部