日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

實例學習PHP程序對用戶身份認證實現兩種方法

瀏覽:29日期:2024-02-24 08:08:57

用戶在設計和維護站點的時候,經常需要限制對某些重要文件或信息的訪問。通常,我們可以采用內置于WEB服務器的基于HTTP協議的用戶身份驗證機制。當訪問者瀏覽受保護頁面時,客戶端瀏覽器會彈出對話窗口要求用戶輸入用戶名和密碼,對用戶的身份進行驗證,以決定用戶是否有權訪問頁面。下面用兩種方法來說明其實現原理。

一、用HTTP標頭來實現

標頭是服務器以HTTP協議傳送HTML信息到瀏覽器前所送出的字串。HTTP采用一種挑戰/響應模式對試圖進入受密碼保護區域的用戶進行身份驗證。具體來說,當用戶首次向WEB服務器發出訪問受保護區域的請求時,挑戰進程被啟動,服務器返回特殊的401標頭,表明該用戶身份未經驗證。客戶端瀏覽器在檢測到上述響應之后自動彈出對話框,要求用戶輸入用戶名和密碼。用戶完成輸入之后點擊確定,其身份識別信息就被傳送到服務端進行驗證。如果用戶輸入的用戶名和密碼有效,WEB服務器將允許用戶進入受保護區域,并且在整個訪問過程中保持其身份的有效性。相反,若用戶輸入的用戶名稱或密碼無法通過驗證,客戶端瀏覽器會不斷彈出輸入窗口要求用戶再次嘗試輸入正確的信息。整個過程將一直持續到用戶輸入正確的信息位置,也可以設定允許用戶進行嘗試的最大次數,超出時將自動拒絕用戶的訪問請求。

在PHP腳本中,使用函數header()直接給客戶端的瀏覽器發送HTTP標頭,這樣在客戶端將會自動彈出用戶名和密碼輸入窗口,來實現我們的身份認證功能。在PHP中,客戶端用戶輸入的信息傳送到服務器之后自動保存在 $PHP_AUTH_USER,$PHP_AUTH_PW,以及 $PHP_AUTH_TYPE這三個全局變量中。利用這三個變量,我們可以根據保存在數據文件或者數據庫中用戶帳號信息來驗證用戶身份!

不過,需要提醒使用者注意的是:只有在以模塊方式安裝的PHP中才能使用$PHP_AUTH_USER,$PHP_AUTH_PW,以及 $PHP_AUTH_TYPE這三個變量。如果用戶使用的是CGI模式的PHP則無法實現驗證功能。在本節后附有PHP的模塊方式安裝方法。

下面我們用Mysql數據庫來存儲用戶的身份。我們需要從數據庫中提取每個帳號的用戶名和密碼以便與$PHP_AUTH_USER和$PHP_AUTH_PW變量進行比較,判斷用戶的真實性。

首先,在MySql中建立一個存放用戶信息的數據庫

數據庫名為XinXiKu ,表名為user;表定義如下:

create table user(ID INT(4) NOT NULL AUTO_INCREMENT,name VARCHAR(8) NOT NULL,password CHAR(8) NOT NULL,PRIMARY KEY(ID))

說明:

1、ID為一個序列號,不為零而且自動遞增,為主鍵;

2、name為用戶名,不能為空;

3、password為用戶密碼,不能為空;

以下是用戶驗證文件login.php

//判斷用戶名是否設置if(!isset($PHP_AUTH_USER)) {header('WWW-Authenticate:Basic realm='身份驗證功能'');header('HTTP/1.0 401 Unauthorized');echo '身份驗證失敗,您無權共享網絡資源!';exit();}/*連接數據庫*/$db=mysql_connect('localhost','root','');//選擇數據庫mysql_select_db('XinXiKu',$db);//查詢用戶是否存在$result=mysql_query('SELECT * FROM user where name='$PHP_AUTH_USER' and password='$PHP_AUTH_PW'',$db);if ($myrow = mysql_fetch_row($result)) {//以下為身份驗證成功后的相關操作...} else {//身份驗證不成功,提示用戶重新輸入header('WWW-Authenticate:Basic realm='身份驗證功能'');header('HTTP/1.0 401 Unauthorized');echo '身份驗證失敗,您無權共享網絡資源!';exit();}?>

程序說明:

在程序中,首先檢查變量$PHP_AUTH_USER是否已經設置。如果沒有設置,說明需要驗證,腳本發出HTTP 401錯誤號頭標,告訴客戶端的瀏覽器需要進行身份驗證,由客戶端的瀏覽器彈出一個身份驗證窗口,提示用戶輸入用戶名和密碼,輸入完成后,連接數據庫,查詢該用用戶名及密碼是否正確,如果正確,允許登錄進行相關操作,如果不正確,繼續要求用戶輸入用戶名和密碼。

函數說明:

1、isset():用于確定某個變量是否已被賦值。根據變量值是否存在,返回true或false

2、header():用于發送特定的HTTP標頭。注意,使用header()函數時,一定要在任何產生實際輸出的HTML或PHP代碼前面調用該函數。

3、mysql_connect():打開 MySQL 服務器連接。

4、mysql_db_query():送查詢字符串 (query) 到 MySQL 數據庫。

5、mysql_fetch_row():返回單列的各字段。

二、用session實現服務器驗證

對于需要身份驗證的頁面,使用apache服務器驗證是最好不過的了。但是,apache服務器驗證的界面不夠友好。而且,cgi模式的 php,iis下的php,都不能使用apache服務器驗證。這樣,我們可以利用session在不同頁面間保存用戶身份,達到身份驗證的目的。

在后端我們同樣利用上面的Mysql數據庫存放用戶信息。

我們先編寫一個用戶登錄界面,文件名為login.php,代碼職下:

____________________________________________________________

<form action='login1.php'>

用戶名:<input type='text' name='name'><br>

口 令:<input type='text' name='pass'><br>

<input type='submit' value='登錄'>

</form>

____________________________________________________________

login1.php處理提交的表單,代碼如下:

$db=mysql_connect('localhost','root','');mysql_select_db('XinXiKu',$db);$result=mysql_query('SELECT * FROM user where name='$name' and password='$pass'',$db);if ($myrow = mysql_fetch_row($result)) {//注冊用戶session_start();session_register('user');$user=$myrow['user'];// 身份驗證成功,進行相關操作...} else {echo'身份驗證失敗,您無權共享網絡資源!';}?>這里需要說明的是,用戶可以使用在后續的操作中用**http://domainname/next.php?user=用戶名 **來繞過身份驗證。所以,后續的操作應先檢查變量是否注冊:已注冊,則進行相應操作,否則視為非法登錄。相關代碼如下:session_start();if (!session_is_registered('user')){echo '身份驗證失敗,屬于非法登錄!';} else {//成功登錄進行相關操作...}?>

附錄:PHP以模塊方式安裝方法

1、首先下載文件:mod_php4-4.0.1-pl2。[如果你的不是PHP4,那么就趕快升級吧!]

解開后有三個文件:mod_php4.dll、mod_php4.conf、readme.txt

2、相關文件拷貝

把mod_php4.dll拷貝到apache安裝目錄的modules目錄下面

把mod_php4.conf拷貝到apache安裝目錄的conf目錄下面

把msvcrt.dll文件拷貝到apache的安裝目錄下面

3、打開conf/srm.conf文件 ,在其中加上一句

Include conf/mod_php4.conf

在做這一些之前請把您的httpd.conf中關于CGI模式的所以設置語句都去掉,即類似下面的部分!

ScripAlias /php4/ 'C:/php4/'AddType application/x-httpd-php4 .phpAddType application/x-httpd-php4 .php3AddType application/x-httpd-php4 .php4Action application/x-httpd-php4 /php4/php.exe

要想使PHP支持更多的后綴名,沒問題。在給出的配置文件mod_php4.conf已經支持了三種后綴名php,php3,php4,如果你還想支持更多的后綴名可以更改這個文件,很簡單的。

4、測試

用<? phpinfo(); ?> 測試。會看到Server API的值為apache,而不是cgi ,而且還有有關HTTP Headers Information的信息。

標簽: PHP
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
怡红院精品视频在线观看极品| 久久都是精品| 久久xxxx精品视频| 欧美日韩精品免费观看视欧美高清免费大片 | 精品视频一二| 久久激情av| 亚洲一区日本| 日韩天堂av| 久久国产高清| 免费一级欧美片在线观看网站| 亚洲v在线看| 国产在线一区不卡| 精品中文字幕一区二区三区| 欧美激情视频一区二区三区在线播放| 久久99精品久久久野外观看| 精品免费视频| 亚洲电影有码| 欧美日韩高清| 综合精品一区| 日本午夜精品视频在线观看| 久久狠狠久久| 精品成人18| 激情久久久久久久| 国产亚洲永久域名| 日韩国产精品久久久久久亚洲| 欧美亚洲三区| 国内精品麻豆美女在线播放视频| 在线看片福利| 影音先锋久久| 欧美一区影院| 免费精品国产的网站免费观看| 午夜在线一区| 国产精品xxx在线观看| 国产+成+人+亚洲欧洲在线| 国产在线观看www| 亚洲国内精品| 亚洲午夜国产成人| 美女视频黄 久久| 美女网站视频一区| 在线免费观看亚洲| 国产精品**亚洲精品| 久久久久久久久99精品大| 午夜一区在线| 精品久久亚洲| 狠狠色综合网| 国产精品115| 美女久久久久| 国产精品日本一区二区不卡视频 | 激情久久婷婷| **爰片久久毛片| 久久影视一区| 国产欧美日韩亚洲一区二区三区| 中文字幕色婷婷在线视频 | 精品一区二区三区视频在线播放| 久久精品国产68国产精品亚洲| 亚洲一二三区视频| 久久午夜影院| 国产亚洲毛片在线| 精品一区电影| 国产精品视区| 日本aⅴ免费视频一区二区三区| 成人国产精选| 亚洲精品美女91| 黄色在线网站噜噜噜| 蜜桃视频一区二区| av中文字幕在线观看第一页| 亚洲我射av| 91精品国产成人观看| 国产欧美三级| 久久国产精品99国产| 日本午夜大片a在线观看| 亚洲一级淫片| 尤物tv在线精品| 精品视频免费| 日韩国产一区二| 91精品一区二区三区综合在线爱| 国产午夜一区| 伊人久久大香伊蕉在人线观看热v| 樱桃视频成人在线观看| 国产精品亚洲欧美一级在线| 国产精品日韩久久久| 欧美男人天堂| 久久只有精品| 日韩精品一区二区三区中文| 婷婷色综合网| 超级白嫩亚洲国产第一| 国产日韩欧美在线播放不卡| 国产美女精品| 亚洲小说欧美另类婷婷| 日韩专区精品| 蜜臀久久久久久久| 亚洲特色特黄| 欧美三区四区| 日本久久综合| 精品久久一区| 美女久久久久久 | 婷婷久久免费视频| 亚洲免费网址| 欧美粗暴jizz性欧美20| 日韩在线精品| 日韩国产欧美一区二区| 精品一区电影| 精品视频在线一区二区在线| 国产精品久久久亚洲一区| 爽爽淫人综合网网站| 激情91久久| 欧美精品一二| 激情综合自拍| 国产在线不卡| 九九在线精品| 女主播福利一区| 亚洲一级特黄| 亚洲精品在线观看91| 激情视频一区二区三区| 亚洲成人二区| 精品中文一区| 欧美午夜不卡影院在线观看完整版免费| 精品欧美一区二区三区在线观看| 成人三级高清视频在线看| 久久av偷拍| 福利欧美精品在线| 日本在线精品| 免费av一区二区三区四区| 黄色精品网站| 亚洲人成亚洲精品| 欧美在线不卡| 国产精品分类| 国产一区二区三区网| 亚洲综合电影| 亚洲一级二级| 喷白浆一区二区| 日韩精品亚洲专区在线观看| 日韩成人午夜精品| 国产精品密蕾丝视频下载| 国产毛片久久久| 老司机精品视频在线播放| 成人午夜亚洲| 国产99精品| 视频一区二区中文字幕| 日韩中文字幕在线一区| 国产精品久久久久久久久免费高清| 美女久久精品| 久久亚洲成人| 免费成人性网站| 国产精品观看| 精品欧美一区二区三区在线观看| 欧美女激情福利| 日日夜夜免费精品| 欧美极品一区二区三区| 国模精品一区| 亚洲高清毛片| 日本成人中文字幕在线视频| 国产精品黄色| 欧美亚洲国产精品久久| 日韩制服丝袜先锋影音| 欧美日韩91| 91亚洲人成网污www| 欧美~级网站不卡| 日韩高清在线一区| 高清日韩欧美| 亚洲欧美日韩国产一区二区| 日本少妇一区二区| 色欧美自拍视频| 国产韩日影视精品| 久久av一区二区三区| 国产精品午夜一区二区三区| 国产精品毛片久久| 夜久久久久久| 国产精品白丝一区二区三区| 精品中文字幕一区二区三区av| 日韩国产欧美在线播放| 日韩大片免费观看| 综合五月婷婷| 91偷拍一区二区三区精品| 久久大逼视频| 精品国产网站| 男人操女人的视频在线观看欧美| 麻豆国产精品| 视频一区国产视频| 久久精品系列| 美美哒免费高清在线观看视频一区二区 | 在线看片日韩| 国产乱码午夜在线视频| 在线精品观看| 欧美一级鲁丝片| 亚洲精品女人| 欧美日韩精品免费观看视欧美高清免费大片 | av不卡在线| 精品国产亚洲一区二区在线观看| 国产99精品一区| 国产欧美日韩精品高清二区综合区| 日本欧美不卡| 国产欧美一区二区精品久久久| 久久中文字幕av一区二区不卡| 国产欧美一区二区色老头| 狠狠干综合网| 97精品国产一区二区三区| 午夜电影一区| 激情欧美国产欧美| 精品国产成人|