wampserver的安裝和使用
-
簡介
W: Windows操作系統(tǒng) A: Apache 世界排名第一的服務(wù)器軟件,特點(diǎn)是簡單,速度快,性能穩(wěn)定 M: MySQL 開源免費(fèi)的數(shù)據(jù)庫軟件,特點(diǎn)是體積小、速度快、使用成本低 P: PHP 超文本預(yù)處理器,直接將代碼嵌入HTML文檔中執(zhí)行, 特點(diǎn)是簡單易學(xué),容易上手 -
安裝
1.雙擊提供的安裝包 2.點(diǎn)擊Next 3.選擇安裝路徑(注意:路徑中不要出現(xiàn)中文) 4.勾選兩個(gè)方框,點(diǎn)擊next繼續(xù)安裝 5.點(diǎn)擊install開始安裝 6.安裝完畢以后點(diǎn)擊finish即可啟動(dòng)wamp -
調(diào)試
-
測試訪問
打開瀏覽器輸入127.0.0.1查看顯示的內(nèi)容 -
修改默認(rèn)的網(wǎng)站內(nèi)容
(1)找到D:\wamp\bin\apache\Apache2.2.21\conf\httpd.conf (2)打開httpd.conf查找DocumentRoot找到網(wǎng)站對(duì)應(yīng)的目錄 (3)將網(wǎng)站放到d:/wamp/www/目錄下 (4)修改使用自己的index.html文件 -
配置局域網(wǎng)訪問
(1)關(guān)閉電腦防火墻 (2)修改httpd.conf文件Deny from all為Allow from all(192行),在httpd.conf文件234行下面添加Allow from all (3)重啟WAMP -
修改默認(rèn)端口號(hào)
(1)在httpd.conf文件中搜索Listen , 改為你想要的數(shù)字即可 (2)重啟WAMP(注意每次修改配置文件都需要重啟)
-
get請求和post請求
- get請求
- get請求提交的數(shù)據(jù)可以在地址欄中看到
- get請求的數(shù)據(jù)在PHP中可以通過
$_GET["key"]的形式獲取 - 如果
$_GET中沒有key對(duì)應(yīng)的值會(huì)報(bào)錯(cuò)
- post請求
- post請求提交的數(shù)據(jù)不會(huì)在地址欄中顯示
- post請求提交的數(shù)據(jù)在PHP中可以通過
$_POST["key"]的形式獲取 - 如果
$_POST中沒有key對(duì)應(yīng)的值會(huì)報(bào)錯(cuò)
- 注意
- get發(fā)送的請求數(shù)據(jù)不能通過
$_POST獲取
- get發(fā)送的請求數(shù)據(jù)不能通過
get/post區(qū)別
- 安全性
- get請求 : 請求的參數(shù)直接拼接在URL后面發(fā)送給服務(wù)器,可以通過瀏覽記錄來查看,另外如果黑客攻破了服務(wù)器拿到服務(wù)器的訪問日志,那么所有的訪問記錄都會(huì)被暴露。
- post請求 : 請求參數(shù)存放在請求體中傳遞,相對(duì)安全。
- 大小限制
-
get請求
- 因?yàn)?特定的瀏覽器及服務(wù)器對(duì)請求的URL長度有限制",而get請求的參數(shù)又全部拼接在URL后面處理。
- 所以在使用get方法網(wǎng)絡(luò)請求的時(shí)候,對(duì)參數(shù)的大小有限制。
-
post請求
- 因?yàn)镻OST不是通過URL提交數(shù)據(jù),所以POST是沒有大小限制。
- HTTP協(xié)議規(guī)范也沒有進(jìn)行大小限制,起限制作用的是服務(wù)器的處理程序的處理能力。
-
- 請求體
- get請求所有的參數(shù)都拼接在請求路徑后面,所以沒有請求體
- post請求把參數(shù)全部都放在請求體中傳遞。
表單發(fā)送請求
發(fā)送get請求說明
在form表單中通過action來設(shè)置請求的服務(wù)器地址
默認(rèn)情況下發(fā)送的請求是get請求,可以通過method方法來修改為使用post請求
如果想要提交數(shù)據(jù)(參數(shù))給服務(wù)器,那么在表單中必須要擁有name屬性,只要添加了name屬性,那么在提交數(shù)據(jù)的時(shí)候
系統(tǒng)會(huì)自動(dòng)的把name里面的key和對(duì)應(yīng)的value值拼接在一起,如果有多個(gè)參數(shù)那么就使用&來隔開
如果是通過get提交給服務(wù)器端的數(shù)據(jù),那么在php文件可以通過$_GET全局對(duì)象獲取
如果要獲取傳入的某個(gè)元素,那么就直接使用$_GET["key"]的方式來讀取
-
示例代碼
<form action="01-get-php.php"> <input type="text" placeholder="請傳入用戶名" name="userName"> <input type="text" placeholder="請傳入密碼" name="password"> <input type="submit"> </form>
發(fā)送post請求
-
示例代碼
<form action="01-get-php.php" method="post"> <input type="text" placeholder="請傳入用戶名" name="userName"> <input type="text" placeholder="請傳入密碼" name="password"> <input type="submit"> </form> //服務(wù)器端具體處理 echo $_POST["userName"] echo $_POST["password"] $_GET獲取get請求提交的數(shù)據(jù)$_POST獲取post請求提交的數(shù)據(jù)$_FILES獲取post請求提交的文件
表單進(jìn)行文件上傳
-
說明
01 上傳文件通過都發(fā)送post請求來實(shí)現(xiàn)(設(shè)置method) 02 獲取上傳的文件需要使用$_Files全局對(duì)象 03 進(jìn)行文件上傳的時(shí)候需要設(shè)置enctype屬性(multipart/from-data) 04 $_Files本身是一個(gè)對(duì)象(字典),保存所有上傳的文件 具體的屬性:name - 文件的名稱 type - 文件的類型 tmp_name - 文件的臨時(shí)存儲(chǔ)路徑 error- 錯(cuò)誤信息 size - 文件的大小 05 用戶上傳的文件會(huì)保存在一個(gè)臨時(shí)的文件夾中,如果用戶沒有進(jìn)行后續(xù)的處理,那么這個(gè)臨時(shí)的文件將被刪除,因?yàn)榉?wù)器也有自己的容量限制,如果想要繼續(xù)使用那么需要額外處理,否則就會(huì)被直接刪除。 建議:可以使用move_uploaded_file($_FILES["file"]["tmp_name"],新路徑)把文件保存到安全的位置。 06 上傳大文件修改修改服務(wù)器端的限制 說明:POST請求本身對(duì)文件的大小沒有限制,但是服務(wù)器端會(huì)對(duì)文件的大小進(jìn)行限制,如果要上傳大文件,那么得設(shè)置讓服務(wù)器端打開大文件上傳的權(quán)限。 需要修改的文件為: 需要修改的配置為: (1)是否允許上傳 (2)上傳的最大限制 (3)post請求的最大限制 (4)腳本執(zhí)行的最大時(shí)間 (5)接收提交數(shù)據(jù)的時(shí)間 (6)最大內(nèi)存消耗 修改文件之后,重啟wamp服務(wù)器軟件。 -
示例代碼
<form action="03-upload-php.php" method="post"> <input type="file" name="file"> <input type="submit"> </form>
Ajax
- 定義: Ajax(Async javascript and XML)是一門異步的用于發(fā)送網(wǎng)絡(luò)請求的技術(shù)。
- UI刷新:通常情況下,每次提交表達(dá)的時(shí)候,都會(huì)刷新界面,而使用ajax發(fā)送請求可以實(shí)現(xiàn)異步發(fā)送請求獲取數(shù)據(jù)而不刷新界面效果。
使用Ajax發(fā)送網(wǎng)絡(luò)請求的基本步驟
01 創(chuàng)建異步對(duì)象(XMLHTTPRequest),存在兼容性問題
02 請求請求路徑(open)
03 發(fā)送請求(send)
04 監(jiān)聽請求的狀態(tài)(onreadystatechange)
05 處理請求結(jié)果
onreadystatechange的幾種狀態(tài):
(1)請求未初始化 - 0
(2)服務(wù)器連接已經(jīng)建立 - 1
(3)請求已經(jīng)接收 -2
(4)請求處理中 -3
(5)請求已經(jīng)完成,且響應(yīng)已經(jīng)就緒 -4
處理請求結(jié)果
(1)當(dāng)請求完成的時(shí)候再進(jìn)行處理,即readyState == 4
(2)通過響應(yīng)碼判斷只有請求成功的時(shí)候才進(jìn)行處理,即響應(yīng)碼>=200,<300或者是=304(緩存)
(3)拿到服務(wù)器返回的響應(yīng)體:response.Text
創(chuàng)建請求對(duì)象的兼容性處理:
if(window.XMLHTTPRequest)
{
var request = new XMLHTTPRequest();
}else
{
var request = new ActiveXObject("Microsoft","XMLHTTP");
}
緩存處理
在IE瀏覽器中(7),如果發(fā)送的是GET請求,那么只要URL沒有發(fā)生變化,那么IE瀏覽器就會(huì)認(rèn)為網(wǎng)頁的內(nèi)容也沒有發(fā)生變化,因此會(huì)優(yōu)先使用緩存數(shù)據(jù),所以如果在IE瀏覽器中想讓數(shù)據(jù)實(shí)時(shí)更新(獲取到最新的數(shù)據(jù)),那么可以讓每次請求的URL都不一樣(即每次請求的URL地址不一樣)。
-
在開發(fā)中可以使用隨機(jī)數(shù)因子或者是時(shí)間戳來添加一個(gè)額外的參數(shù)給url路徑。
- 獲取時(shí)間戳:
var date = new Date();date.valueOf() - 獲取隨機(jī)數(shù)因子
Math.radom()
- 獲取時(shí)間戳:
-
說明
- 為url添加隨機(jī)數(shù)或者是時(shí)間戳的目的: 讓每次請求的時(shí)候url的內(nèi)容都不一樣
- 參數(shù)變化唯一的作用: 讓每次發(fā)送網(wǎng)絡(luò)請求的時(shí)候URL都不相同,以讓服務(wù)器總是把最新的數(shù)據(jù)返回。