php中存儲(chǔ)用戶ID和密碼到mysql數(shù)據(jù)庫(kù)的方法
創(chuàng)建用戶信息表:
CREATE TABLE tbl_auth_user (
user_id VARCHAR(10) NOT NULL,
user_password CHAR(32) NOT NULL,
PRIMARY KEY (user_id)
);
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代碼來(lái)創(chuàng)建登錄表單在上述示例中創(chuàng)建的。我們只需要修改登錄過程有點(diǎn)。
登錄腳本:
<?php
// 我們必須永遠(yuǎn)不會(huì)忘記啟動(dòng)會(huì)話
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和密碼組合存在于數(shù)據(jù)庫(kù)
$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) {
// sessionthe設(shè)置用戶id和密碼匹配,
// 設(shè)置會(huì)話
$_SESSION['db_is_logged_in'] = true;
// 在登錄后我們轉(zhuǎn)到主頁(yè)
header('Location: main.php');
exit;
} else {
$errorMessage = 'Sorry, wrong user id / password';
}
include 'library/closedb.php';
}
?>
/ /…相同的html登錄表單前一個(gè)示例一樣
而不是檢查用戶id和密碼對(duì)硬編碼的信息我們查詢數(shù)據(jù)庫(kù),如果這兩個(gè)存在于數(shù)據(jù)庫(kù)使用SELECT查詢。如果我們發(fā)現(xiàn)一個(gè)匹配我們?cè)O(shè)置會(huì)話變量和移動(dòng)到主頁(yè)。注意,會(huì)話的名字是前綴 “db”使它不同于先前的示例。
在接下來(lái)的兩個(gè)腳本(主要。php和注銷。php)代碼類似于前一個(gè)。唯一的區(qū)別是會(huì)話名稱。這是為這兩個(gè)的代碼
<?php
session_start();
//是一個(gè)訪問這個(gè)頁(yè)面登錄呢?
if (!isset($_SESSION['db_is_logged_in'])
|| $_SESSION['db_is_logged_in'] !== true) {
// 沒有登錄,返回到登錄頁(yè)面
header('Location: login.php');
exit;
}
?>
/ /…這里的一些html代碼
<?php
session_start();
// 如果用戶已登錄,設(shè)置會(huì)話
if (isset($_SESSION['db_is_logged_in'])) {
unset($_SESSION['db_is_logged_in']);
}
// 現(xiàn)在,用戶登錄,
// 去登錄頁(yè)面
header('Location: login.php');
?>
- php 生成唯一id的幾種解決方法
- PHP通過session id 實(shí)現(xiàn)session共享和登錄驗(yàn)證的代碼
- PHP獲取MySql新增記錄ID值的3種方法
- php GUID生成函數(shù)和類
- ThinkPHP寫數(shù)組插入與獲取最新插入數(shù)據(jù)ID實(shí)例
- php中session_id()函數(shù)詳細(xì)介紹,會(huì)話id生成過程及session id長(zhǎng)度
- 使用PHP uniqid函數(shù)生成唯一ID
- php ajax無(wú)刷新分頁(yè),支持id定位
- php查看當(dāng)前Session的ID實(shí)例
- PHP用mysql_insert_id()函數(shù)獲得剛插入數(shù)據(jù)或當(dāng)前發(fā)布文章的ID
相關(guān)文章
Codeigniter實(shí)現(xiàn)多文件上傳并創(chuàng)建多個(gè)縮略圖
這篇文章主要介紹了Codeigniter實(shí)現(xiàn)多文件上傳并創(chuàng)建多個(gè)縮略圖,需要的朋友可以參考下2014-06-06
php實(shí)現(xiàn)格式化多行文本為Js可用格式
本文給大家分享的是使用php實(shí)現(xiàn)格式化多行文本為Js可用格式,思路非常簡(jiǎn)單,這里推薦給大家,有需要的小伙伴參考下。2015-04-04
PHP未登錄自動(dòng)跳轉(zhuǎn)到登錄頁(yè)面
為了滿足用戶體驗(yàn)度,需要用戶登錄才能跳轉(zhuǎn)到頁(yè)面,這篇文章給大家分享PHP未登錄自動(dòng)跳轉(zhuǎn)到登錄頁(yè)面的實(shí)例代碼,需要的朋友參考下2016-12-12
Thinkphp5 自定義上傳文件名的實(shí)現(xiàn)方法
這篇文章主要介紹了Thinkphp5 自定義上傳文件名的實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-07-07
laravel使用redis隊(duì)列實(shí)例講解
這篇文章主要介紹了laravel使用redis隊(duì)列實(shí)例講解,使用laravel框架之后配置redis還是很簡(jiǎn)單的,有感興趣的同學(xué)可以學(xué)習(xí)下2021-03-03
ThinkPHP實(shí)現(xiàn)支付寶接口功能實(shí)例
這篇文章主要介紹了ThinkPHP實(shí)現(xiàn)支付寶接口功能的方法,實(shí)例講述了支付寶接口的下載及二次開發(fā)方法,以及對(duì)應(yīng)的ThinkPHP開發(fā)技巧,需要的朋友可以參考下2014-12-12
php連接mssql數(shù)據(jù)庫(kù)的幾種方法
數(shù)據(jù)庫(kù)查詢不外乎4個(gè)步驟,1、建立連接。2、輸入查詢代碼。3、建立查詢并取出數(shù)據(jù)。4、關(guān)閉連接。 php連接mssql數(shù)據(jù)庫(kù)有幾個(gè)注意事項(xiàng),尤其mssql的多個(gè)版本、32位、64位都有區(qū)別。2013-02-02

