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

下面我将为您详细讲解“用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中判断一个字符串是否包含另一个字符串是非常常见的需求,可以通过使用内置函数进行实现。以下是两种常用的方法: 方法一:strpos函数 PHP的内置函数strpos可以用来查找一个字符串在另一个字符串中第一次出现的位置,如果找到,则返回该位置的数字索引。如果未找到,则返回false。因此,我们可以使用这个函数来判断一个字符串是否包含另一个字符串: $st…

    PHP 2023年5月26日
    00
  • php+MySql实现登录系统与输出浏览者信息功能

    实现登录系统和输出浏览者信息是 Web 开发中非常基础的功能,可以通过 PHP 和 MySQL 来完成。 创建数据库和用户表 首先,需要创建一个 MySQL 数据库,然后创建一个用户表,包含用户名和密码的字段。可以使用以下 SQL 语句创建: CREATE DATABASE `user_db`; USE `user_db`; CREATE TABLE `us…

    PHP 2023年5月26日
    00
  • php指定函数参数默认值示例代码

    当我们使用PHP编写函数时,可以为函数的参数指定默认值。这表示如果函数被调用时没有为该参数传递值,则使用默认值。下面是一个示例函数,该函数使用默认参数值: function greeting($name = "World") { echo "Hello, " . $name . "!"; } 在上面…

    PHP 2023年5月25日
    00
  • php获取从html表单传递数组的方法

    PHP获取从HTML表单传递数组的方法可以通过超全局变量$_POST或$_GET来实现。当HTML表单中出现名字相同的多个输入控件时,这些控件的值将以数组的形式提交。 首先,我们需要在 HTML 表单中设置一个 input 元素的 name 属性为一个数组形式的名称。例如: <form method="POST" action=&q…

    PHP 2023年5月26日
    00
  • php取整函数ceil,floo,round的用法及介绍

    PHP取整函数ceil, floor, round的用法及介绍 在开发PHP应用程序时,经常需要对数字进行取整操作,php提供了三个取整函数ceil, floor, round。这篇攻略将详细介绍这三个函数的用法和区别。 ceil函数 ceil函数可以将小数向上取整为最接近的整数。 语法 ceil(float $number): int 示例 <?ph…

    PHP 2023年5月26日
    00
  • PHP中trim()函数简单使用指南

    接下来我会详细讲解“PHP中trim()函数简单使用指南”的完整攻略。 什么是trim()函数 PHP中的trim()函数是一个用于删除字符串两端空格(或其他字符)的函数。它的语法如下: trim ( string $str [, string $character_mask = " \t\n\r\0\x0B" ] ) : string …

    PHP 2023年5月26日
    00
  • 详解php内存管理机制与垃圾回收机制

    详解PHP内存管理机制与垃圾回收机制 前言 PHP是一种高级编程语言,其自动内存管理和垃圾回收机制可以帮助开发者避免手动内存管理的麻烦,但也需要开发者了解其内存管理机制和垃圾回收机制,才能更好地编写高效的代码。 PHP内存管理机制 PHP内存管理机制是通过Zend Memory Manager实现的,其主要分配和管理以下几种类型的内存: Per-Reques…

    PHP 2023年5月24日
    00
  • php基于ob_start(ob_gzhandler)实现网页压缩功能的方法

    让我来为您详细讲解”php基于ob_start(ob_gzhandler)实现网页压缩功能的方法”的完整攻略。 1. 什么是ob_start和ob_gzhandler 在学习这个方法之前,我们先回顾一下ob_start和ob_gzhandler。 ob_start ob_start() 函数可以开启PHP的缓冲机制。通过缓冲机制开启,我们可以在不输出任何内容…

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