超详细的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中url函数介绍及使用示例

    下面是详细的“php中url函数介绍及使用示例”的攻略。 PHP中的URL函数介绍及使用示例 什么是URL? 在计算机领域中,URL(Uniform Resource Locator,统一资源定位器)用于定位万维网上的资源。简单来说,URL就是一个用于定位网络上资源的地址。 在Web应用程序中,URL是指特定页面或资源的网址。例如,这里的https://ww…

    PHP 2023年5月23日
    00
  • 基于php在各种web服务器的运行模式详解

    基于PHP在各种Web服务器的运行模式详解 什么是Web服务器 Web服务器是一个软件应用程序,它接受来自客户端的HTTP请求,并发送响应回去。Web服务器通常部署在专用硬件中,例如Web服务器,但也可以运行在普通电脑上。Web服务器是创建Web应用程序的基础。 PHP与Web服务器 PHP是一种Web编程语言,它可以与不同的Web服务器协同工作,来创建We…

    PHP 2023年5月23日
    00
  • 配置php.ini实现PHP文件上传功能

    配置php.ini实现PHP文件上传功能需要注意以下步骤: 步骤一:修改php.ini文件 打开php.ini文件,找到 file_uploads 参数,确保该参数的值为 On file_uploads = On 找到 upload_max_filesize 参数,设置上传的文件最大值,例如设置为 5MB: upload_max_filesize = 5M …

    PHP 2023年5月26日
    00
  • PHP数据类型之布尔型的介绍

    PHP数据类型之布尔型的介绍 在PHP中,布尔型(Boolean)用于表示真假两个值,分别用true和false表示。它通常用于条件判断、循环等语句中,用于控制程序的执行。 定义布尔型变量 定义布尔型变量可以直接使用true或false关键字对变量进行赋值,也可以通过函数返回值来获取布尔型值。 // 直接赋值 $bool_true = true; // $b…

    PHP 2023年5月26日
    00
  • PHP实现的链式队列结构示例

    下面就让我来详细讲解“PHP实现的链式队列结构示例”的完整攻略。 一、什么是链式队列结构 链式队列结构是指使用链表的数据结构来实现队列。队列的一端叫做队尾,在队尾添加元素;另一端叫做队头,在队头删除元素。在链式队列中,队头和队尾分别对应链表的头和尾。 二、链式队列结构的操作 链式队列结构的主要操作包括入队(enqueue)和出队(dequeue)。入队操作向…

    PHP 2023年5月27日
    00
  • PHP实现对数组简单求交集,差集,并集功能示例

    当我们需要对数组进行交集、差集或者并集运算的时候,PHP提供了一些简单实用的函数来帮助我们完成,这些函数包括array_intersect、array_diff和array_merge。 1. array_intersect函数 array_intersect函数可以用来计算两个或多个数组的交集,返回包含同时存在于两个或多个数组中的元素的新数组。 $arra…

    PHP 2023年5月26日
    00
  • PHP常见算法合集代码实例

    我们来详细讲解“PHP常见算法合集代码实例”的攻略吧! 算法的定义 首先,我们需要了解什么是算法。算法简单来说,就是解决问题的步骤和规则。在计算机中,我们需要用算法来解决各种问题,比如:排序、查找、加密、压缩等等。算法是程序的灵魂,因此我们学习和了解算法,对于我们编写高效程序十分重要。 算法学习过程中的思路 在学习算法时,我们主要需要先了解常见的算法类型,例…

    PHP 2023年5月23日
    00
  • PHP图片加水印实现方法

    下面是“PHP图片加水印实现方法”的详细攻略。 1. 准备工作 在进行加水印操作前,需要确保安装了 PHP 的 GD 库。如果没有安装,可以通过以下命令进行安装: sudo apt-get install php7.2-gd 同时需要准备一张水印图片,该图片可以是 PNG、JPG 或 GIF 格式。我们可以先随便找张图片用于测试。 2. 实现步骤 2.1 打…

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