伺服器需要將傳送的多**資料的型別告訴瀏覽器,而告訴瀏覽器的手段就是告知多**的mime型別。新建**檔案:form表單中的enctype屬性,可以告訴伺服器,我們提供給它的內容的mime型別。
enctype屬性有三種狀態值:
資料傳送到伺服器之前,所有字元都會進行編碼(空格轉換為 "+" 加號,特殊符號轉換為 ascii hex 值)
2). multipart/form-data
不對字元編碼,在使用包含檔案上傳控制項的表單時,必須使用該值。
瀏覽器會把整個表單以控制項為單位分割,並為每個部分加上content-disposition(form-data或者file),content-type(預設為text/plain),name(控制項name)等資訊,並加上分割符(boundary)。
如使用該數值表單資訊以二進位制形式傳送。
3). text/plain
空格轉換為 "+" 加號,但不對特殊字元編碼
#multipart/form-data格式提交表單[root@vm_0_11_centos localhost]# touch form_data.html && vim form_data.html
#錄入以下內容:
#form-urlencode型別提交表單
[root@vm_0_11_centos localhost]# touch form_urlencode.html && vim form_urlencode.html
#錄入以下內容
#text/plain型別提交表單
[root@vm_0_11_centos localhost]# touch form_text_plain.html && vim form_text_plain.html
#錄入以下內容
#1.form_data.html新建資料接收php檔案
[root@vm_0_11_centos localhost]#
touch post.php && vim post.php
#錄入以下內容
<?php
echo("");
echo('content-type: ' . $_server['content_type'] . php_eol . php_eol
);$data = file_get_contents("php://input");
echo("input: " . $data
);echo(php_eol . php_eol
);echo("array:" . php_eol
);print_r($_post);
前端頁面錄入資料:
提交表單:
前端頁面錄入資料:
提交表單:
前端頁面錄入:
提交表單:
通過上面三種輸出測試可以看出:
1. form-data型別表單提交,全域性變數$_post可以獲取資料,php://input無法進行流讀取,特殊字元未做轉碼
2. from-urlencode型別表單提交,全域性變數$_post和流讀取均可獲取資料,流讀取方式被urlencode轉碼,空格以+號代替
3. text/plain型別表單提交,全域性變數$_post無法獲取資料,流讀取資料正常,特殊字元未被轉碼。
HTML之FORM表單學習
表單 1 作用 向伺服器傳送資料 2 基本語法 action 屬性指定表單提交到伺服器中那個檔案,屬性值為檔案的路徑 method 屬性指定資料提交的方式,常用 get post 注意 get請求 1 資料會被拼接在url後面,直接傳送 明文傳送 2 資料大小受限,最多只能傳輸2k資料 3 預設提交...
了解HTML表單之form元素
表單是網頁與使用者的互動工具,由乙個 accept charset 屬性是乙個空格分隔的字符集列表,規定了伺服器處理表單資料所接受的字符集。accept charset 屬性允許指定一系列字符集,伺服器必須支援這些字符集,從而得以正確解釋表單中的資料。該屬性的值是用引號包含字符集名稱列表。如果可接受...
Html輔助方法 之 Form表單標籤
一 html.beginform new裡面的叫做htmlattributes,能夠設定本控制項的html屬性,至於class前面加個 是因為class在c 裡是關鍵字。二 html.textbox 標籤 檢視 html.textbox age 23 new 生成的html 三 html.texta...