下面我将为您详细讲解“用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技术站