用PHP写的MySQL数据库用户认证系统代码

yizhihongxing

下面我将为您详细讲解“用PHP写的MySQL数据库用户认证系统代码”的完整攻略。

步骤一:创建MySQL数据库和表格

首先,需要在MySQL中创建一个用于存储用户数据的数据库和表格。可以使用如下SQL代码:

CREATE DATABASE `user_authentication`;

USE `user_authentication`;

CREATE TABLE `users` (
  `id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
  `username` varchar(50) NOT NULL UNIQUE,
  `password` varchar(255) NOT NULL,
  `email` varchar(100) NOT NULL UNIQUE,
  `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

这个SQL创建了一个名为user_authentication的数据库,其中包含一个名为users的表,该表包含id、username、password、email和created_at这几个字段,其中id是主键,username和email是唯一的。created_at字段用于记录每个用户的创建时间。

步骤二:编写PHP认证系统代码

在PHP中编写代码,实现用户的注册、登录和注销。以下是示例代码:

连接数据库

首先,需要连接到MySQL数据库,并选择要使用的数据库。可以使用如下代码连接到数据库:

$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "user_authentication";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

这个代码使用mysqli类连接到localhost上的MySQL服务器。$username和$password是数据库的用户名和密码,$dbname是要使用的数据库的名称。如果连接失败,则输出错误信息并终止脚本。

注册用户

接下来,需要编写代码来允许用户注册。以下是示例代码:

if (isset($_POST['signup'])) {
    $username = $_POST['username'];
    $password = password_hash($_POST['password'], PASSWORD_DEFAULT);
    $email = $_POST['email'];

    $sql = "INSERT INTO users (username, password, email) VALUES ('$username', '$password', '$email')";

    if ($conn->query($sql) === TRUE) {
        // 注册成功
    } else {
        // 注册失败
    }
}

这个代码检查是否提交了表单。如果是,它会从POST请求中获取用户名、密码和电子邮件地址。密码被散列为散列密码,以增加安全性。然后,查询被执行,将新用户的信息插入到users表中。

登录用户

现在,您需要编写代码来允许用户登录。以下是示例代码:

if (isset($_POST['signin'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];

    $sql = "SELECT * FROM users WHERE username='$username'";

    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        $row = $result->fetch_assoc();
        if (password_verify($password, $row['password'])) {
            // 登录成功
        } else {
            // 密码错误
        }
    } else {
        // 用户名不存在
    }
}

这个代码从POST请求中获取用户名和密码。然后,查询被执行,从users表中获取与给定用户名相对应的行。如果行存在,则检查密码是否与散列密码匹配。如果匹配,则登录成功;否则,密码错误。如果行不存在,则用户名不存在。

注销用户

最后,您需要编写代码来允许用户注销。以下是示例代码:

if (isset($_GET['logout'])) {
    session_destroy();
    header('location: index.php');
}

这个代码检查是否存在GET请求logout参数。如果存在,则销毁会话并将用户重定向到主页。

步骤三:完整示例演示

您可以在本地服务器上下载和测试该代码,或者直接在互联网上使用。

以下是两个示例使用:

示例一:注册新用户

在注册页面中输入用户名、密码和电子邮件地址,然后单击注册按钮:

<form action="signup.php" method="POST">
    <input type="text" name="username" placeholder="用户名" required><br>
    <input type="password" name="password" placeholder="密码" required><br>
    <input type="email" name="email" placeholder="电子邮件地址" required><br>
    <button type="submit" name="signup">注册</button>
</form>

示例二:在登录页面上进行身份验证

在登录页面中输入用户名和密码,然后单击登录按钮:

<form action="signin.php" method="POST">
    <input type="text" name="username" placeholder="用户名" required><br>
    <input type="password" name="password" placeholder="密码" required><br>
    <button type="submit" name="signin">登录</button>
</form>

总之,上述步骤介绍了用PHP写的MySQL数据库用户认证系统代码的完整攻略,您可以自己在网站中应用这些代码进行用户注册、登录和注销。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用PHP写的MySQL数据库用户认证系统代码 - Python技术站

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

相关文章

  • 通俗易懂的php防注入代码

    针对“通俗易懂的 PHP 防注入代码”的完整攻略,我们可以从以下几个方面入手: 1. 理解 SQL 注入 在防注入代码中,首先需要了解 SQL 注入(SQL Injection)的概念和原理。SQL 注入是指攻击者通过在输入框或 URL 参数等处输入特殊的 SQL 语句,以达到绕过应用程序身份验证、篡改或绕过数据访问权限、窃取或破坏数据等目的。 常见的 SQ…

    PHP 2023年5月23日
    00
  • PHP实现二维数组中的查找算法小结

    PHP实现二维数组中的查找算法小结 在PHP开发中,使用二维数组是非常常见的。如果需要在二维数组中查找特定元素,可以使用查找算法来实现。本文将详细介绍PHP实现二维数组中的查找算法。 二维数组 首先,让我们回顾一下二维数组的概念。二维数组是由多个一维数组组成的数组。每个一维数组都代表二维数组的一行数据。 例如,下面是一个包含3行4列数据的二维数组: $dat…

    PHP 2023年5月26日
    00
  • 建立灵巧结构的PHP程序

    建立灵巧结构的PHP程序是编写高性能、高可读性和易于维护的PHP程序的关键。以下是建立灵巧结构的PHP程序的完整攻略: 1. 采用MVC(Model-View-Controller)模式 MVC是一种常用的程序架构模式,它将代码划分为模型(Model)、视图(View)和控制器(Controller)三个部分。每个部分的职责被明确规定,从而使整个程序结构更加…

    PHP 2023年5月30日
    00
  • PHP中的正则表达式函数介绍

    以下就是关于“PHP中的正则表达式函数介绍”的详细攻略。 什么是正则表达式 正则表达式是一种文本模式,用于匹配搜索字符串中的字符组合。在PHP中,我们可以使用正则表达式来进行模式匹配、字符替换等。 PHP中的正则表达式函数介绍 preg_match(): 用于在字符串中进行正则表达式匹配。该函数返回一个布尔值(true或false),表示是否匹配成功。 示例…

    PHP 2023年5月27日
    00
  • PHP中substr函数字符串截取用法分析

    让我来为你详细讲解一下“PHP中substr函数字符串截取用法分析”的完整攻略。 什么是substr函数? 首先,substr是PHP中的一个内置函数,被用来截取字符串。该函数的语法如下: string substr ( string $string , int $start [, int $length ] ) substr函数可以接受三个参数: $str…

    PHP 2023年5月26日
    00
  • 微信小程序引用公共js里的方法的实例详解

    讲解“微信小程序引用公共js里的方法的实例详解”的攻略。 什么是微信小程序 微信小程序是一种新型的应用开发方式,它基于微信生态体系,具有“无需下载、易于传播、快捷启动、即点即用”等优势,适合于轻量级应用的开发、使用和传播。 微信小程序引用公共js的方法 为提高代码重用性,有时我们会把一些通用的代码方法放到公共的js文件里,那么如何在小程序中调用这些方法呢? …

    PHP 2023年5月23日
    00
  • php获取$_POST同名参数数组的实现介绍

    首先需要明确的是,当表单中出现同名的多个input元素时,POST方法将会将它们包含在一个数组中传递给后端,具体访问方法如下: $postData = $_POST[‘data’]; 此时,$postData将是一个数组,包含了所有同名的input元素的值。 接下来是一些常用的实现方法。 方法一: 如果我们想要获取其中任意一个值,可以通过指定下标进行访问,比…

    PHP 2023年5月26日
    00
  • 微信小程序发送订阅消息的方法(php 为例)

    下面是详细讲解“微信小程序发送订阅消息的方法(php 为例)”的完整攻略: 一、概述 微信小程序提供了订阅消息的功能,开发者可以通过向订阅者发送消息来实现提醒、通知等功能。本文将为大家介绍如何在微信小程序中使用 PHP 后端发送订阅消息。 二、前置条件 已经开通了微信小程序订阅消息功能。 已经有了服务器端,且支持 PHP 编程语言。 已经获得了接口调用凭证 …

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