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

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

實(shí)例學(xué)習(xí)PHP程序?qū)τ脩?hù)身份認(rèn)證實(shí)現(xiàn)兩種方法

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

用戶(hù)在設(shè)計(jì)和維護(hù)站點(diǎn)的時(shí)候,經(jīng)常需要限制對(duì)某些重要文件或信息的訪(fǎng)問(wèn)。通常,我們可以采用內(nèi)置于WEB服務(wù)器的基于HTTP協(xié)議的用戶(hù)身份驗(yàn)證機(jī)制。當(dāng)訪(fǎng)問(wèn)者瀏覽受保護(hù)頁(yè)面時(shí),客戶(hù)端瀏覽器會(huì)彈出對(duì)話(huà)窗口要求用戶(hù)輸入用戶(hù)名和密碼,對(duì)用戶(hù)的身份進(jìn)行驗(yàn)證,以決定用戶(hù)是否有權(quán)訪(fǎng)問(wèn)頁(yè)面。下面用兩種方法來(lái)說(shuō)明其實(shí)現(xiàn)原理。

一、用HTTP標(biāo)頭來(lái)實(shí)現(xiàn)

標(biāo)頭是服務(wù)器以HTTP協(xié)議傳送HTML信息到瀏覽器前所送出的字串。HTTP采用一種挑戰(zhàn)/響應(yīng)模式對(duì)試圖進(jìn)入受密碼保護(hù)區(qū)域的用戶(hù)進(jìn)行身份驗(yàn)證。具體來(lái)說(shuō),當(dāng)用戶(hù)首次向WEB服務(wù)器發(fā)出訪(fǎng)問(wèn)受保護(hù)區(qū)域的請(qǐng)求時(shí),挑戰(zhàn)進(jìn)程被啟動(dòng),服務(wù)器返回特殊的401標(biāo)頭,表明該用戶(hù)身份未經(jīng)驗(yàn)證。客戶(hù)端瀏覽器在檢測(cè)到上述響應(yīng)之后自動(dòng)彈出對(duì)話(huà)框,要求用戶(hù)輸入用戶(hù)名和密碼。用戶(hù)完成輸入之后點(diǎn)擊確定,其身份識(shí)別信息就被傳送到服務(wù)端進(jìn)行驗(yàn)證。如果用戶(hù)輸入的用戶(hù)名和密碼有效,WEB服務(wù)器將允許用戶(hù)進(jìn)入受保護(hù)區(qū)域,并且在整個(gè)訪(fǎng)問(wèn)過(guò)程中保持其身份的有效性。相反,若用戶(hù)輸入的用戶(hù)名稱(chēng)或密碼無(wú)法通過(guò)驗(yàn)證,客戶(hù)端瀏覽器會(huì)不斷彈出輸入窗口要求用戶(hù)再次嘗試輸入正確的信息。整個(gè)過(guò)程將一直持續(xù)到用戶(hù)輸入正確的信息位置,也可以設(shè)定允許用戶(hù)進(jìn)行嘗試的最大次數(shù),超出時(shí)將自動(dòng)拒絕用戶(hù)的訪(fǎng)問(wèn)請(qǐng)求。

在PHP腳本中,使用函數(shù)header()直接給客戶(hù)端的瀏覽器發(fā)送HTTP標(biāo)頭,這樣在客戶(hù)端將會(huì)自動(dòng)彈出用戶(hù)名和密碼輸入窗口,來(lái)實(shí)現(xiàn)我們的身份認(rèn)證功能。在PHP中,客戶(hù)端用戶(hù)輸入的信息傳送到服務(wù)器之后自動(dòng)保存在 $PHP_AUTH_USER,$PHP_AUTH_PW,以及 $PHP_AUTH_TYPE這三個(gè)全局變量中。利用這三個(gè)變量,我們可以根據(jù)保存在數(shù)據(jù)文件或者數(shù)據(jù)庫(kù)中用戶(hù)帳號(hào)信息來(lái)驗(yàn)證用戶(hù)身份!

不過(guò),需要提醒使用者注意的是:只有在以模塊方式安裝的PHP中才能使用$PHP_AUTH_USER,$PHP_AUTH_PW,以及 $PHP_AUTH_TYPE這三個(gè)變量。如果用戶(hù)使用的是CGI模式的PHP則無(wú)法實(shí)現(xiàn)驗(yàn)證功能。在本節(jié)后附有PHP的模塊方式安裝方法。

下面我們用Mysql數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)用戶(hù)的身份。我們需要從數(shù)據(jù)庫(kù)中提取每個(gè)帳號(hào)的用戶(hù)名和密碼以便與$PHP_AUTH_USER和$PHP_AUTH_PW變量進(jìn)行比較,判斷用戶(hù)的真實(shí)性。

首先,在MySql中建立一個(gè)存放用戶(hù)信息的數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)名為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))

說(shuō)明:

1、ID為一個(gè)序列號(hào),不為零而且自動(dòng)遞增,為主鍵;

2、name為用戶(hù)名,不能為空;

3、password為用戶(hù)密碼,不能為空;

以下是用戶(hù)驗(yàn)證文件login.php

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

程序說(shuō)明:

在程序中,首先檢查變量$PHP_AUTH_USER是否已經(jīng)設(shè)置。如果沒(méi)有設(shè)置,說(shuō)明需要驗(yàn)證,腳本發(fā)出HTTP 401錯(cuò)誤號(hào)頭標(biāo),告訴客戶(hù)端的瀏覽器需要進(jìn)行身份驗(yàn)證,由客戶(hù)端的瀏覽器彈出一個(gè)身份驗(yàn)證窗口,提示用戶(hù)輸入用戶(hù)名和密碼,輸入完成后,連接數(shù)據(jù)庫(kù),查詢(xún)?cè)撚糜脩?hù)名及密碼是否正確,如果正確,允許登錄進(jìn)行相關(guān)操作,如果不正確,繼續(xù)要求用戶(hù)輸入用戶(hù)名和密碼。

函數(shù)說(shuō)明:

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

2、header():用于發(fā)送特定的HTTP標(biāo)頭。注意,使用header()函數(shù)時(shí),一定要在任何產(chǎn)生實(shí)際輸出的HTML或PHP代碼前面調(diào)用該函數(shù)。

3、mysql_connect():打開(kāi) MySQL 服務(wù)器連接。

4、mysql_db_query():送查詢(xún)字符串 (query) 到 MySQL 數(shù)據(jù)庫(kù)。

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

二、用session實(shí)現(xiàn)服務(wù)器驗(yàn)證

對(duì)于需要身份驗(yàn)證的頁(yè)面,使用apache服務(wù)器驗(yàn)證是最好不過(guò)的了。但是,apache服務(wù)器驗(yàn)證的界面不夠友好。而且,cgi模式的 php,iis下的php,都不能使用apache服務(wù)器驗(yàn)證。這樣,我們可以利用session在不同頁(yè)面間保存用戶(hù)身份,達(dá)到身份驗(yàn)證的目的。

在后端我們同樣利用上面的Mysql數(shù)據(jù)庫(kù)存放用戶(hù)信息。

我們先編寫(xiě)一個(gè)用戶(hù)登錄界面,文件名為login.php,代碼職下:

____________________________________________________________

<form action='login1.php'>

用戶(hù)名:<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)) {//注冊(cè)用戶(hù)session_start();session_register('user');$user=$myrow['user'];// 身份驗(yàn)證成功,進(jìn)行相關(guān)操作...} else {echo'身份驗(yàn)證失敗,您無(wú)權(quán)共享網(wǎng)絡(luò)資源!';}?>這里需要說(shuō)明的是,用戶(hù)可以使用在后續(xù)的操作中用**http://domainname/next.php?user=用戶(hù)名 **來(lái)繞過(guò)身份驗(yàn)證。所以,后續(xù)的操作應(yīng)先檢查變量是否注冊(cè):已注冊(cè),則進(jìn)行相應(yīng)操作,否則視為非法登錄。相關(guān)代碼如下:session_start();if (!session_is_registered('user')){echo '身份驗(yàn)證失敗,屬于非法登錄!';} else {//成功登錄進(jìn)行相關(guān)操作...}?>

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

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

解開(kāi)后有三個(gè)文件:mod_php4.dll、mod_php4.conf、readme.txt

2、相關(guān)文件拷貝

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

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

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

3、打開(kāi)conf/srm.conf文件 ,在其中加上一句

Include conf/mod_php4.conf

在做這一些之前請(qǐng)把您的httpd.conf中關(guān)于CGI模式的所以設(shè)置語(yǔ)句都去掉,即類(lèi)似下面的部分!

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支持更多的后綴名,沒(méi)問(wèn)題。在給出的配置文件mod_php4.conf已經(jīng)支持了三種后綴名php,php3,php4,如果你還想支持更多的后綴名可以更改這個(gè)文件,很簡(jiǎn)單的。

4、測(cè)試

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

標(biāo)簽: PHP
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产亚洲毛片在线| 午夜视频精品| 欧美日韩国产在线一区| 岛国精品一区| 美女性感视频久久| 综合激情一区| 激情久久久久久| 国产精品九九| 国产精品嫩模av在线| 国产免费av一区二区三区| 日本中文字幕视频一区| 亚洲区国产区| 久久九九国产| 久久精品中文| 欧美专区一区二区三区| 亚洲午夜久久久久久尤物| 欧美成人精品一级| 精品国产a一区二区三区v免费| 久久久亚洲欧洲日产| 久久精品三级| 精品国产一区二区三区噜噜噜| 国产成人精品一区二区三区免费| 日韩欧美高清一区二区三区| 亚洲网址在线观看| 欧美精品三级在线| 国产精品第十页| 99视频精品全国免费| 综合国产在线| 高清av一区| 亚洲一区二区三区免费在线观看| 亚洲a成人v| 国产+成+人+亚洲欧洲在线| 成人免费电影网址| 在线看片日韩| 国模精品一区| 蜜桃tv一区二区三区| 日本aⅴ精品一区二区三区 | 亚洲综合精品| 日本午夜精品视频在线观看| 国产精品分类| av中文资源在线资源免费观看| 狠狠爱www人成狠狠爱综合网| 天堂久久av| 久久久一二三| 欧美一区成人| 欧美日韩国产v| 欧美日韩xxxx| 国产精品一区二区三区www| av高清一区| 深夜日韩欧美| 亚洲电影有码| 欧美日本不卡| 午夜精品网站| 国产一区丝袜| 亚洲毛片在线| 婷婷激情综合| 国产一区不卡| 日本亚洲欧美天堂免费| 亚洲伦乱视频| 久久精品国产久精国产| 亚洲精品美女91| 亚洲网站视频| 日本亚洲视频在线| 欧美日韩国产免费观看视频| 久久精品国产99国产| 亚洲精品美女91| 欧美午夜不卡| 秋霞影院一区二区三区| 免费观看亚洲天堂| 日本在线成人| 免费在线观看日韩欧美| 日韩精品欧美激情一区二区| 久久99青青| 国产欧美精品| 日韩精品免费观看视频| 国产亚洲欧洲| 一区二区视频欧美| 日本一区二区免费高清| 欧美亚洲三区| 日本精品久久| 亚洲人成网77777色在线播放| 成人午夜国产| 麻豆视频在线看| 久久久精品国产**网站| 日韩一区二区三区精品| 亚洲日本在线观看视频| 日韩视频在线一区二区三区 | 综合亚洲色图| 午夜电影亚洲| 欧美不卡在线| 久久精品亚洲人成影院 | 伊人精品久久| 国产精品日韩久久久| 日本免费久久| 日韩精品麻豆| 久久国产精品成人免费观看的软件| 麻豆精品在线观看| 另类综合日韩欧美亚洲| 欧美国产极品| 国产精品久久久久久久久久齐齐| 热久久久久久| 一区二区电影| 9色精品在线| 先锋影音国产一区| 黑人精品一区| 欧美日韩免费观看视频| 天堂8中文在线最新版在线| 精品三级在线观看视频| 中文字幕一区日韩精品| 精品一区亚洲| 午夜久久久久| 亚洲有吗中文字幕| 国产日韩欧美三级| 卡一卡二国产精品| 高清在线一区| 尤物tv在线精品| 中文字幕在线看片| 精品日韩视频| 青青久久av| 久久久久国产一区二区| 亚州av乱码久久精品蜜桃| 99精品电影| 国产一区视频在线观看免费| 国产精品一区高清| 精品国产网站| 国产伊人精品| 欧美午夜不卡| 亚洲开心激情| 国产欧美日韩亚洲一区二区三区| 欧美日韩1区2区3区| 国产日韩一区二区三区在线播放| 精品亚洲成人| 欧美.日韩.国产.一区.二区| 在线综合亚洲| 蜜桃免费网站一区二区三区| 国产探花一区| 成人片免费看| 国产在线不卡| 911亚洲精品| 国产欧美激情| 国精品一区二区三区| 日韩福利视频一区| 在线看片国产福利你懂的| 久久久成人网| 亚洲精品亚洲人成在线观看| 美女视频免费精品| 欧美日韩水蜜桃| 亚洲精品欧美| 高清一区二区三区| 男人操女人的视频在线观看欧美| 久久亚洲精精品中文字幕| 在线国产一区二区| 精品一区av| 免费在线观看一区二区三区| 日韩中文字幕在线一区| 999国产精品永久免费视频app| 老司机精品久久| 欧美极品一区二区三区| 在线综合欧美| 天堂8中文在线最新版在线| 日韩毛片网站| 欧美日韩国产探花| 国产一区二区三区四区五区传媒| 丝袜美腿亚洲一区| 捆绑调教日本一区二区三区| 91欧美日韩在线| 久久久天天操| 欧美黑人巨大videos精品| 国产精品美女| 国产亚洲一卡2卡3卡4卡新区| 婷婷综合六月| 久久久天天操| 免费观看日韩电影| 欧美日韩一二三四| 国产在线一区不卡| 亚洲aa在线| 最新亚洲一区| 国产精品久久国产愉拍| 日韩精品一级中文字幕精品视频免费观看| 里番精品3d一二三区| 中文在线不卡| 免费一二一二在线视频| 国产免费久久| 亚洲另类黄色| 精品国产a一区二区三区v免费| 亚洲色图国产| 国产亚洲午夜| 91精品电影| 久久美女性网| 丁香六月综合| 四季av一区二区凹凸精品| 国产乱论精品| 青草国产精品久久久久久| 亚洲日本三级| 亚洲欧洲专区| 中文字幕免费一区二区| 蜜臀av亚洲一区中文字幕| 精品一区亚洲| 日韩成人三级| 日韩成人高清|