用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实现获取url地址中顶级域名的方法示例

    下面是“PHP实现获取url地址中顶级域名的方法示例”的完整攻略。 步骤一:解析url PHP中解析url可以使用parse_url函数。使用该函数可以获取url的各个组成部分,包括协议、域名、路径、查询字符串等。 示例代码: $url = ‘https://www.example.com/path/to/page.php?q1=value1&q2=…

    PHP 2023年5月26日
    00
  • PHP读取XML格式文件的方法总结

    PHP读取XML格式文件的方法总结 一、XML文件简介 XML(可扩展标记语言)是一种标记语言,它可以被用来存储和传输数据。与HTML相比,XML的标签没有事先定义好的,需要自己定义,用户需要自行定义标记以及标记的属性来表达数据。XML的主要作用是把数据描述为一种独立于软件和硬件的格式,该数据可以用于各种应用程序之间的交换或共享。 二、PHP读取XML文件的…

    PHP 2023年5月26日
    00
  • PHP中的自动加载操作实现方法详解

    当我们使用PHP开发项目时,代码体积很可能会非常大。为了方便开发,我们倾向于把不同的业务逻辑分散到不同的文件中,这样就产生了大量的文件需要引入。如果一切都手动引入的话,代码的可读性和可维护性就会变得非常糟糕。自动加载操作就是解决这个问题的。它可以在我们使用类或者函数时,自动加载对应的文件,使我们的开发更加高效。下面我们来详细讲解PHP中的自动加载操作实现方法…

    PHP 2023年5月26日
    00
  • PHP项目多语言配置平台实现过程解析

    PHP 项目多语言配置平台实现过程解析 什么是多语言配置平台? 多语言配置平台(Multi-Language Config Platform)是一个用于实现多语言管理的工具,开发人员可以通过它以可视化的方式来管理多语言资源文件,同时可以实现自动化翻译,从而精简翻译工作量。 实现过程 1. 定义语言文件格式 首先需要定义一个标准的语言文件格式,用于存储各种语言…

    PHP 2023年5月27日
    00
  • PHP将字符串首字母大小写转换的实例

    下面就是关于PHP将字符串首字母大小写转换的实例完整攻略。 1. 函数介绍 在PHP中提供了三个函数可以用于将字符串的首字母大小写进行转换,分别为: ucfirst($string):将字符串的首字母转换为大写 lcfirst($string):将字符串的首字母转换为小写 ucwords($string):将字符串中单词的首字母都转换为大写 这三个函数的用法…

    PHP 2023年5月26日
    00
  • PHP中ltrim()函数的用法与实例讲解

    下面是PHP中ltrim()函数的用法与实例讲解的完整攻略。 1. ltrim()函数简介 ltrim()函数是PHP中的字符串处理函数之一,用于截取字符串左边的空字符串或指定字符。该函数的完整语法如下: ltrim(string,charlist) 其中,string表示要进行处理的字符串;charlist表示用于删除的字符列表,默认情况下会删除空格、换行…

    PHP 2023年5月26日
    00
  • 超小PHP小马小结(方便查找后门的朋友)

    下面我将详细讲解“超小PHP小马小结(方便查找后门的朋友)”的完整攻略。 一、什么是PHP小马? 首先,我们需要明确什么是PHP小马(PHP Shell)。简单的说,PHP Shell是一个利用PHP语言编写的一种可执行文件,用于远程控制Web服务器。 也就是说,黑客们通过上传PHP小马到服务器上,可以通过Web浏览器或者命令执行操作,来获取服务器的控制权,…

    PHP 2023年5月30日
    00
  • php.ini 启用disable_functions提高安全

    PHP是一种动态语言,这也意味着它非常灵活,但这也会导致某些违规代码或者故意恶意的攻击行为得以执行。通过禁用一些敏感函数,如exec(),system()和shell_exec()等,可以提高服务器安全性,但这同时也可能会影响到你的应用程序。 下面是在php.ini中启用disable_functions来提高安全的完整攻略: 1. 找到php.ini文件 …

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