phpmysql登录网页
时间: 2023-08-15 21:38:51 浏览: 115
以下是一个简单的 PHP 和 MySQL 实现的登录网页的示例:
1. 创建数据库
首先,我们需要创建一个名为 `users` 的数据库,并在其中创建一个名为 `user_info` 的表,该表将包含用户的用户名和密码。可以使用以下 SQL 语句:
```
CREATE DATABASE users;
USE users;
CREATE TABLE user_info (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(30) NOT NULL,
password VARCHAR(30) NOT NULL
);
```
2. 创建登录页面
接下来,我们将创建一个名为 `login.php` 的 PHP 文件,用于显示登录表单并验证用户输入的用户名和密码。在这个文件中,我们需要连接到 MySQL 数据库,并检查用户输入的用户名和密码是否与数据库中的数据匹配。如果匹配,则将用户重定向到另一个页面,否则显示错误消息。
以下是 `login.php` 的示例代码:
```php
<?php
session_start();
if(isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true){
header("location: welcome.php");
exit;
}
require_once "config.php";
$username = $password = "";
$username_err = $password_err = "";
if($_SERVER["REQUEST_METHOD"] == "POST"){
if(empty(trim($_POST["username"]))){
$username_err = "请输入用户名";
} else{
$username = trim($_POST["username"]);
}
if(empty(trim($_POST["password"]))){
$password_err = "请输入密码";
} else{
$password = trim($_POST["password"]);
}
if(empty($username_err) && empty($password_err)){
$sql = "SELECT id, username, password FROM user_info WHERE username = ?";
if($stmt = mysqli_prepare($link, $sql)){
mysqli_stmt_bind_param($stmt, "s", $param_username);
$param_username = $username;
if(mysqli_stmt_execute($stmt)){
mysqli_stmt_store_result($stmt);
if(mysqli_stmt_num_rows($stmt) == 1){
mysqli_stmt_bind_result($stmt, $id, $username, $hashed_password);
if(mysqli_stmt_fetch($stmt)){
if(password_verify($password, $hashed_password)){
session_start();
$_SESSION["loggedin"] = true;
$_SESSION["id"] = $id;
$_SESSION["username"] = $username;
header("location: welcome.php");
} else{
$password_err = "密码不正确";
}
}
} else{
$username_err = "用户名不存在";
}
} else{
echo "抱歉,发生了一些问题,请稍后再试。";
}
mysqli_stmt_close($stmt);
}
}
mysqli_close($link);
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Login</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">
<style type="text/css">
body{ font: 14px sans-serif; }
.wrapper{ width: 350px; padding: 20px; }
</style>
</head>
<body>
<div class="wrapper">
<h2>登录</h2>
<p>请输入您的用户名和密码以登录。</p>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
<div class="form-group <?php echo (!empty($username_err)) ? 'has-error' : ''; ?>">
<label>用户名</label>
<input type="text" name="username" class="form-control" value="<?php echo $username; ?>">
<span class="help-block"><?php echo $username_err; ?></span>
</div>
<div class="form-group <?php echo (!empty($password_err)) ? 'has-error' : ''; ?>">
<label>密码</label>
<input type="password" name="password" class="form-control">
<span class="help-block"><?php echo $password_err; ?></span>
</div>
<div class="form-group">
<input type="submit" class="btn btn-primary" value="登录">
</div>
<p>还没有账号? <a href="register.php">现在注册</a>.</p>
</form>
</div>
</body>
</html>
```
3. 创建配置文件
在上面的代码中,我们引用了一个名为 `config.php` 的文件,该文件包含与数据库连接的详细信息。因此,我们还需要创建该文件并填写以下内容:
```php
<?php
/* 数据库的详细信息 */
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'your_username');
define('DB_PASSWORD', 'your_password');
define('DB_NAME', 'users');
/* 尝试连接到 MySQL 数据库 */
$link = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
// 检查连接是否成功
if($link === false){
die("抱歉,无法连接到数据库。" . mysqli_connect_error());
}
?>
```
4. 创建欢迎页面
最后,我们将创建一个名为 `welcome.php` 的 PHP 文件,用于显示用户成功登录后的欢迎消息和一些其他信息。
以下是 `welcome.php` 的示例代码:
```php
<?php
session_start();
if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){
header("location: login.php");
exit;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Welcome</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">
<style type="text/css">
body{ font: 14px sans-serif; }
.wrapper{ width: 350px; padding: 20px; }
</style>
</head>
<body>
<div class="page-header">
<h1>您好,<b><?php echo htmlspecialchars($_SESSION["username"]); ?></b>,欢迎来到我们的网站。</h1>
</div>
<p>
<a href="reset-password.php" class="btn btn-warning">重置密码</a>
<a href="logout.php" class="btn btn-danger">退出登录</a>
</p>
</body>
</html>
```
这就是一个简单的 PHP 和 MySQL 实现的登录网页的示例。您可以将其作为起点,并根据自己的需求进行修改和扩展。
阅读全文