6.1網(wǎng)頁(yè)重定向:PHP的header()函數(shù)
任務(wù)1:HTTP協(xié)議報(bào)頭
1.HTTP協(xié)議是Web的通信協(xié)議,由兩個(gè)階段組成助隧,即請(qǐng)求和響應(yīng)
2.頭部字段可以有一個(gè)或多個(gè)字段痒给,每個(gè)頭部字段由一個(gè)域名贪薪、冒號(hào)、賦值三部分組成胖笛。
3.傳統(tǒng)的頭部字段字段一定包含下面三種字段之一
Location:xxxx:yyyy/zzzz
Content-Type:xxxx/yyyy
Status:nnnxxxxxx
其中:Location字段表示向?yàn)g覽器發(fā)送重定向網(wǎng)頁(yè)网持。Content-Type字段指明發(fā)送給瀏覽器的MIMI類(lèi)型。Status字段指明向?yàn)g覽器發(fā)送的狀態(tài)碼
任務(wù)2:PHP的header()函數(shù)
1长踊、header()函數(shù)的作用是:發(fā)送一個(gè)原始 HTTP 標(biāo)頭[Http Header]到客戶(hù)端功舀。
格式:header(string,replace,http_response_code)
說(shuō)明:
/*string:必需。規(guī)定要發(fā)送的報(bào)頭字符串身弊。
?replace:可選辟汰。指示該報(bào)頭是否替換之前的報(bào)頭列敲,或添加第二個(gè)報(bào)頭。
?默認(rèn)是 true(替換)帖汞。false(允許相同類(lèi)型的多個(gè)報(bào)頭)戴而。
http_response_code:可選。把 HTTP 響應(yīng)代碼強(qiáng)制為指定的值翩蘸。*/
用法1:跳轉(zhuǎn)頁(yè)面:例1:
header("Location:https://baidu.com");//正常跳轉(zhuǎn)
header('Refresh: 3;url=https://www.baidu.com'); //3s后跳轉(zhuǎn)
//在header作跳轉(zhuǎn)時(shí),避免發(fā)生錯(cuò)誤后所意,代碼繼續(xù)執(zhí)行,一般加個(gè)exit;
用法2:聲明content-type(經(jīng)常拿來(lái)決解亂碼)
header('content-type:text/html;charset=utf-8');
2.綜合實(shí)例:
下面程序是一個(gè)包含表單的網(wǎng)頁(yè)文件h1.php催首,提交數(shù)據(jù)后調(diào)用文件名為h2.php的PHP程序扶踊,來(lái)檢查表單的輸入是否為空。
h1.php文件的代碼如下:
6.2表單驗(yàn)證
重點(diǎn)內(nèi)容:文件控件相片上傳部分的實(shí)現(xiàn)
1.網(wǎng)頁(yè)部分:
<!DOCTYPE html>
<html>
<head>
? <meta charset="UTF-8">
? <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
? <title>上傳的例子</title>
</head>
? ? <body>
<form id="upload-form" action="p.php" method="post" enctype="multipart/form-data" >
<input type="file" id="upload" name="upload" /> <br />
<input type="submit" value="Upload" />
</form>
</body>
</html>
2.PHP接收上傳部分(原理):
<?php
? ? header("Content-type: text/html; charset=utf-8");
? ? echo "<pre>";
? ? print_r($_FILES);
?>
3.PHP接收上傳部分(實(shí)操):
<?PHP
? header("Content-type: text/html; charset=utf-8");
? $name = $_FILES['upload']['name']; //被上傳文件的文件名
? $tmp_name = $_FILES['upload']['tmp_name'];//存儲(chǔ)在服務(wù)器文件臨時(shí)副本名稱(chēng)
? if(move_uploaded_file($tmp_name,$name)) $msg="文件成功上傳郎任!";
? else $msg="文件上傳失斞砗摹!";
? echo $msg;
?>