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