php中存储用户ID和密码到mysql数据库的方法

网络编程 2025-03-29 06:40www.168986.cn编程入门

用户身份验证是现代网络应用不可或缺的一环。最常见的做法是在数据库中存储用户ID和密码,然后编写登录检测代码来进行验证。下面我们将详细介绍这一过程。

我们来创建一个用户信息表。以下是创建该表的SQL代码:

```sql

CREATE TABLE tbl_auth_user (

user_id VARCHAR(10) NOT NULL,

user_password CHAR(32) NOT NULL,

PRIMARY KEY (user_id)

);

```

```sql

INSERT INTO tbl_auth_user (user_id, user_password) VALUES ('theadmin', PASSWORD('chumbawamba'));

INSERT INTO tbl_auth_user (user_id, user_password) VALUES ('webmaster', PASSWORD('webmistress'));

```

接下来,我们使用HTML代码创建一个登录表单。而在后端,我们需要编写一段PHP代码来处理登录过程。代码示例如下:

```php

session_start();

$errorMessage = '';

if (isset($_POST['txtUserId']) && isset($_POST['txtPassword'])) {

include 'library/config.php';

include 'library/opendb.php';

$userId = $_POST['txtUserId'];

$password = $_POST['txtPassword'];

// 检查用户id和密码组合是否存在于数据库

$sql = "SELECT user_id FROM tbl_auth_user WHERE user_id = '$userId' AND user_password = PASSWORD('$password')";

$result = mysql_query($sql) or die('Query failed. ' . mysql_error());

if (mysql_num_rows($result) == 1) {

// 用户id和密码匹配,设置会话变量

$_SESSION['db_is_logged_in'] = true;

// 登录后跳转到主页

header('Location: main.php');

exit;

} else {

$errorMessage = '抱歉,用户ID或密码错误';

}

include 'library/closedb.php';

}

```

在这段代码中,我们首先从登录表单获取用户输入的用户ID和密码,然后查询数据库以验证这些信息。如果验证成功,我们会设置相应的会话变量,并跳转到主页。否则,会显示错误消息。注意,这里使用的会话名称前缀为“db”,以区别于之前的示例。

在后续的页面(如main.php和logout.php)中,我们需要检查用户是否已登录。代码示例如下:

```php

session_start();

if (!isset($_SESSION['db_is_logged_in']) || $_SESSION['db_is_logged_in'] !== true) {

// 用户未登录,重定向到登录页面

header('Location: login.php');

exit;

}

```

在注销页面中,我们只需清除会话变量并重定向到登录页面:

```php

session_start();

if (isset($_SESSION['db_is_logged_in'])) {

unset($_SESSION['db_is_logged_in']);

}

// 现在用户已注销,重定向到登录页面

header('Location: login.php');

```

通过这种方式,我们可以实现基于数据库的用户身份验证,确保只有验证通过的用户才能访问特定页面。

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by