html+php+mysql+pdo登陸注冊
时间: 2023-12-31 21:04:57 浏览: 20
以下是一个简单的HTML+PHP+MySQL+PDO登录注册示例:
1.创建数据库和表
首先,我们需要创建一个名为“test”的数据库和一个名为“users”的表,该表将存储用户的用户名和密码。
```sql
CREATE DATABASE test;
USE test;
CREATE TABLE users (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(30) NOT NULL,
password VARCHAR(30) NOT NULL
);
```
2.注册页面
在注册页面中,我们将显示一个表单,要求用户输入用户名和密码。当用户提交表单时,我们将使用PDO将用户提供的数据插入到数据库中。
```html
<!DOCTYPE html>
<html>
<head>
<title>注册</title>
</head>
<body>
<h1>注册</h1>
<form method="post" action="register.php">
<label>用户名:</label>
<input type="text" name="username"><br>
<label>密码:</label>
<input type="password" name="password"><br>
<input type="submit" value="注册">
</form>
</body>
</html>
```
3.注册处理
在register.php文件中,我们将获取用户提交的表单数据,并使用PDO将其插入到数据库中。
```php
<?php
$dsn = 'mysql:host=localhost;dbname=test';
$username = 'root';
$password = '';
try {
$pdo = new PDO($dsn, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = $_POST['username'];
$password = $_POST['password'];
$stmt = $pdo->prepare('INSERT INTO users (username, password) VALUES (:username, :password)');
$stmt->execute(array(
':username' => $username,
':password' => $password
));
echo '注册成功!';
}
} catch(PDOException $e) {
echo '注册失败: ' . $e->getMessage();
}
?>
```
4.登录页面
在登录页面中,我们将显示一个表单,要求用户输入他们的用户名和密码。当用户提交表单时,我们将使用PDO检查数据库中是否存在该用户,并根据结果显示相应的消息。
```html
<!DOCTYPE html>
<html>
<head>
<title>登录</title>
</head>
<body>
<h1>登录</h1>
<form method="post" action="login.php">
<label>用户名:</label>
<input type="text" name="username"><br>
<label>密码:</label>
<input type="password" name="password"><br>
<input type="submit" value="登录">
</form>
</body>
</html>
```
5.登录处理
在login.php文件中,我们将获取用户提交的表单数据,并使用PDO检查数据库中是否存在该用户。如果用户存在,则将其重定向到受保护的页面。否则,我们将显示一个错误消息。
```php
<?php
$dsn = 'mysql:host=localhost;dbname=test';
$username = 'root';
$password = '';
try {
$pdo = new PDO($dsn, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = $_POST['username'];
$password = $_POST['password'];
$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username AND password = :password');
$stmt->execute(array(
':username' => $username,
':password' => $password
));
if ($stmt->rowCount() > 0) {
header('Location: protected.php');
exit;
} else {
echo '用户名或密码错误!';
}
}
} catch(PDOException $e) {
echo '登录失败: ' . $e->getMessage();
}
?>
```