8.php與web頁面交互

web工作原理

HTTP協(xié)議

HTTP協(xié)議(HyperText Transfer Protocol,超文本傳輸協(xié)議)是因特網(wǎng)上應用最為廣泛的一種網(wǎng)絡傳輸協(xié)議,所有的WWW文件都必須遵守這個標準。

HTTP 請求

HTTP 請求可以使用多種請求方法。與PHP相關的最常用請求方式有兩種:
GET -- 請求指定的頁面信息,并返回實體主體。
POST -- 向指定資源提交數(shù)據(jù)進行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求體中。 POST 請求可能會導致新的資源的建立或已有資源的修改。

image.png

首先第一步,用戶在瀏覽器中輸入網(wǎng)址,如“www. baidu.com”",瀏覽器會去請求DNS服務器,DNS是一種組織成 域?qū)哟谓Y(jié)構(gòu) 的計算機和網(wǎng)絡服務命名系統(tǒng),應用于TCP IP網(wǎng)絡,從事將主機名或域名轉(zhuǎn)換為實際IP地址的工作。將“www.baidu.com"翻譯成百度對應的IP地址。
然后第二步,DNS服務器將翻譯過來的IP地址傳遞給瀏覽器。
第三步,瀏覽器通過IP地址找到IP對應的Web服務器(通常是Apache或者是Nginx),建立TCP連接,并向服務器發(fā)送HTTP Request (請求)包。
第四步, Web服務器發(fā)現(xiàn)用戶訪問了后綴為“php”的文件,如index.php文件,那么服務器就會訪問PHP解析引擎。
第五步 ,PHP在解析時, 發(fā)現(xiàn)需要使用數(shù)據(jù)庫。于是,連接數(shù)據(jù)庫,訪問數(shù)據(jù)庫服務器(可能是MySQL、SQL Server、Oracle 等)。
第六步,數(shù)據(jù)庫根據(jù)查詢條件,查找數(shù)據(jù),并將數(shù)據(jù)返回給PHP引擎。
第七步,PHP引擎拼接數(shù)據(jù),解析成HTML, 返回給Web服務器。
第八步, Web服務器將HTML文件返回給瀏覽器,瀏覽器開始解析HTML文件,此時, 用戶在瀏覽器中就能看到訪問的網(wǎng)站內(nèi)容。

認識HTML表單

為了實現(xiàn)瀏覽器和服務器的互動,可以使用HTML表單搜集不同類型的用戶輸入,將輸入的內(nèi)容從客戶端的瀏覽器傳送到服務器端,經(jīng)過服務器上的PHP程序進行處理后,再將用戶所需要的信息傳遞回客戶端的瀏覽器上,從而獲得用戶信息,可使用HTML表單的情景有很多,例如用戶注冊、登錄、個人中心設置等頁面。
在HTML中,使用<form>標簽,即可創(chuàng)建個表單。 表單結(jié)構(gòu)如下:

<form  method="post"  action="xxx">
......表單元素
</form>

其中表單元素input格式

<input  type="text" name="fname"  value="text" />

type -- 指定元素的類型。text、password、checkbox、radio、submit、reset、file和 button等,默認為 text。
name -- 指定表單元素的名稱。
value -- 元素的初始值。

舉個栗子:

<html>
<body>

    <form method="post" action="test.php"> 
        用戶名:<input type="text" name="name" /> 
        密碼:<input type="password" name="password" /> 
        <input type="submit" value="提交" />
    </form>

</body>
</html>

PHP獲取表單數(shù)據(jù)

在PHP中提供了兩種與Web頁面交互的方法,一種是通過Web表單提交數(shù)據(jù)即POST方式,另一種是通過URL參數(shù)傳遞即GET方式。

1.獲取POST方式提交的表單數(shù)據(jù)

語法:$_POST[] -- 方括號內(nèi)是對應表單元素的name屬性的值
舉個栗子:這里使用上一個栗子中的form表單。則新建一個test.php文件。

<?php

    $name = $_POST['name'];     //獲取接收的用戶名
    $password = $_POST['password'];     //獲取接收的密碼
    echo '接收到的用戶名:'.$name.'<br>';
    echo '接收到的密碼:'.$password.'<br>';

    print_r($_POST);    //直接$_POST代表接收的所有數(shù)據(jù)組成的數(shù)組

?>

2.獲取GET方式提交的表單數(shù)據(jù)

GET方式是<form>表單中metlod屬性的默認方法。使用GET方式提交的表單數(shù)據(jù)被附加到URL后,并作為URL的一部分發(fā)送到服務器端。在程序的開發(fā)過程中,由于GET方式提交的數(shù)據(jù)是附加到URL上發(fā)送的,因此,在URL的地址欄中將會顯示“URL+用戶傳遞的參數(shù)”。
http://url?name1=value1&name2=value2.....
舉個栗子:

<!DOCTYPE html>
<html lang="en">
<body>

    <form action="#" method="get" > 
        用戶名:<input type="text" name="name" /> 
        密碼:<input type="password" name="password" /> 
        <input type="submit" value="提交" />
    </form>

</body>
</html>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容