php中存储用户ID和密码到mysql数据库的方法
用户身份验证是现代网络应用不可或缺的一环。最常见的做法是在数据库中存储用户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');
```
通过这种方式,我们可以实现基于数据库的用户身份验证,确保只有验证通过的用户才能访问特定页面。
编程语言
- php中存储用户ID和密码到mysql数据库的方法
- javascript浏览器用户代理检测脚本实现方法
- sqlserver 批量数据替换助手V1.0版发布
- View.post() 不靠谱的地方你知道多少
- vue 插件的方法代码详解
- 移动适配的几种方案(三种方案)
- 详解mysql中的冗余和重复索引
- PHP中使用数组指针函数操作数组示例
- angular.js+node.js实现下载图片处理详解
- js 动态生成json对象、时时更新json对象的方法
- 利用Vue-draggable组件实现Vue项目中表格内容的拖拽
- 详解在vue-cli中使用路由
- php实现专业获取网站SEO信息类实例
- PHPExcel笔记, mpdf导出
- WMV网页播放器参数中文详解
- 详解jenkins自动化部署vue