php用户注册登录代码

php
<?php // 数据库连接信息 $db_host = 'localhost'; // 数据库主机 $db_user = 'your_username'; // 数据库用户名 $db_pass = 'your_password'; // 数据库密码 $db_name = 'your_database'; // 数据库名称 // 连接数据库 $conn = new mysqli($db_host, $db_user, $db_pass, $db_name); // 检查连接是否成功 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 处理用户注册 if (isset($_POST['register'])) { $username = $_POST['username']; $password = $_POST['password']; // 对密码进行哈希处理 $hashed_password = password_hash($password, PASSWORD_DEFAULT); // 插入用户信息到数据库 $sql = "INSERT INTO users (username, password) VALUES ('$username', '$hashed_password')"; if ($conn->query($sql) === TRUE) { echo "注册成功"; } else { echo "注册失败: " . $conn->error; } } // 处理用户登录 if (isset($_POST['login'])) { $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'])) { echo "登录成功"; } else { echo "密码错误"; } } else { echo "用户不存在"; } } // 关闭数据库连接 $conn->close(); ?> <!DOCTYPE html> <html> <head> <title>用户注册和登录</title> </head> <body> <h2>注册</h2> <form method="post" action=""> <label>用户名:</label><br> <input type="text" name="username"><br> <label>密码:</label><br> <input type="password" name="password"><br> <input type="submit" name="register" value="注册"> </form> <h2>登录</h2> <form method="post" action=""> <label>用户名:</label><br> <input type="text" name="username"><br> <label>密码:</label><br> <input type="password" name="password"><br> <input type="submit" name="login" value="登录"> </form> </body> </html>

这个示例包含了一个简单的 HTML 表单,其中包括用户注册和登录。用户注册时,会将用户名和密码哈希后存储到数据库中。用户登录时,会检查输入的用户名是否存在,并且验证输入的密码是否与数据库中存储的哈希密码匹配。

php
<?php // 数据库连接信息 $db_host = 'localhost'; // 数据库主机 $db_user = 'your_username'; // 数据库用户名 $db_pass = 'your_password'; // 数据库密码 $db_name = 'your_database'; // 数据库名称 // 连接数据库 $conn = new mysqli($db_host, $db_user, $db_pass, $db_name); // 检查连接是否成功 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 处理用户注册 if (isset($_POST['register'])) { $username = $_POST['username']; $password = $_POST['password']; // 检查用户名是否已经存在 $check_username = "SELECT * FROM users WHERE username='$username'"; $result = $conn->query($check_username); if ($result->num_rows > 0) { echo "用户名已存在,请选择其他用户名"; } else { // 对密码进行哈希处理 $hashed_password = password_hash($password, PASSWORD_DEFAULT); // 插入用户信息到数据库 $sql = "INSERT INTO users (username, password) VALUES ('$username', '$hashed_password')"; if ($conn->query($sql) === TRUE) { echo "注册成功"; } else { echo "注册失败: " . $conn->error; } } } // 处理用户登录 if (isset($_POST['login'])) { $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'])) { // 开始会话并设置用户登录状态 session_start(); $_SESSION['username'] = $username; echo "登录成功"; } else { echo "密码错误"; } } else { echo "用户不存在"; } } // 处理用户退出 if (isset($_POST['logout'])) { // 销毁会话并清空会话数据 session_start(); session_unset(); session_destroy(); echo "您已安全退出"; } // 关闭数据库连接 $conn->close(); ?> <!DOCTYPE html> <html> <head> <title>用户注册和登录</title> </head> <body> <?php if(isset($_SESSION['username'])): ?> <h2>欢迎回来,<?php echo $_SESSION['username']; ?></h2> <form method="post" action=""> <input type="submit" name="logout" value="退出"> </form> <?php else: ?> <h2>注册</h2> <form method="post" action=""> <label>用户名:</label><br> <input type="text" name="username"><br> <label>密码:</label><br> <input type="password" name="password"><br> <input type="submit" name="register" value="注册"> </form> <h2>登录</h2> <form method="post" action=""> <label>用户名:</label><br> <input type="text" name="username"><br> <label>密码:</label><br> <input type="password" name="password"><br> <input type="submit" name="login" value="登录"> </form> <?php endif; ?> </body> </html>

这个示例添加了注册时检查用户名是否已存在。登录成功后开启会话,并设置会话变量以跟踪用户的登录状态。添加了安全退出功能,用于销毁会话并清空会话数据。