HTML之form表單ENCTYPE屬性解析

2022-07-01 20:27:11 字數 2163 閱讀 5561

伺服器需要將傳送的多**資料的型別告訴瀏覽器,而告訴瀏覽器的手段就是告知多**的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

#錄入以下內容

#

新建資料接收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.html

前端頁面錄入資料:

提交表單:

前端頁面錄入資料:

提交表單:

前端頁面錄入:

提交表單:

通過上面三種輸出測試可以看出:

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...