真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

數(shù)據(jù)提交方式有幾種php 常見的POST提交數(shù)據(jù)方式

表單提交有那兩種方式?PHP如何獲得表單提交的數(shù)據(jù)?

1. 修改php.ini,查找 register_globals,將其值修改為 On。這樣就可以像原來一樣,例如,提交的表單中包括一個名為"username"的變量,那么在php中就可以直接使用$username來訪問該變量。但是,除非你要使用一段舊的代碼而考慮到兼容性問題,否則不建議使用該方法。

成都創(chuàng)新互聯(lián)公司主要從事做網(wǎng)站、網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)鷹潭,十載網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792

2. 使用 $HTTP_GET_VARS、$HTTP_POST_VARS數(shù)組來訪問,例如寫成$HTTP_POST_VARS["username"]的形式。不過該方法也不建議采用。

3. (推薦)使用 $_POST、$_GET等數(shù)組來訪問,例如寫成 $_POST["username"]的形式。建議采用這種方法。

(推薦)使用 import_request_variables 函數(shù)。該函數(shù)將提交內(nèi)容導(dǎo)入到變量中。

例如 import_request_variables("gp", "rvar_");第一個參數(shù)可以選擇g,p,c,分別表示導(dǎo)入 GET,POST,COOKIE 變量;第二個參數(shù)為導(dǎo)入后的變量前綴。執(zhí)行上面的語句后即可使用 $rvar_username 來訪問提交的 username 變量。使用import_request_variables("gp", "");可以兼容以前的PHP程序。

PHP $_GET 和 $_POST變量是用來獲取表單中的信息的,比如用戶輸入的信息。

PHP表單操作

在我們處理HTML表單和PHP表單時,我們要記住的重要一點是:HTML頁面中的任何一個表單元素都可以自動的用于PHP腳本:

POST 請求的三種常見數(shù)據(jù)提交格式

本文所講的 POST 請求是 HTTP/1.1 協(xié)議中規(guī)定的眾多 HTTP 請求方法的其中最常用的一個。一般使用 POST 請求方法向服務(wù)器發(fā)送數(shù)據(jù)(主要是一些創(chuàng)建更新操作),本文討論的是 POST 請求方法常用的四種數(shù)據(jù)提交格式。

由于 HTTP/1.1 協(xié)議中并沒有對請求使用什么編碼方式進行規(guī)定,所以理論上開發(fā)者完全可以自己決定請求的 Body 體使用什么格式,當(dāng)然實際上大家都還是用通用的那么幾種編碼方式來提交數(shù)據(jù)(生態(tài)很關(guān)鍵)。

注:以下排名不分先后。。。

對于瀏覽器原生的 form 表單,enctype 的值不指定的話,默認(rèn)就是這個家伙。實際上大部分情況都使用它即可,編碼方式足夠簡單高效,各方面支持也都很完備,如各大瀏覽器調(diào)試工具、各大抓包軟件等。

基本的請求類似上面這樣,數(shù)據(jù)的編碼方式采用 key1=val1key2=val2 的形式,對其中的鍵值對都需要使用 URL Encode 編碼一下。其實就是和 GET 請求的數(shù)據(jù)提交格式是一樣的,只不過位置從 Request URL 上換到了 Request Body 里。

這種格式結(jié)構(gòu)簡單,但對于數(shù)據(jù)層級較深的情況,比如一些有復(fù)雜層級關(guān)系的接口數(shù)據(jù),這種方式就顯得有點力不從心了。另一方面,對于需要上傳二進制數(shù)據(jù)(比如圖像、音頻等文件),這種方式就不那么高效了,而且對于非 ASCII 碼的數(shù)據(jù)就丟失了,所以傳文件的情況就不能使用這種方式。

適用場景:數(shù)據(jù)量不大、數(shù)據(jù)層級不深的情況下強烈建議這種數(shù)據(jù)提交格式。

multipart/form-data

當(dāng)你需要提交文件、非 ASCII 碼的數(shù)據(jù)或者是二進制流數(shù)據(jù),則使用這種提交方式。類似下面這個請求示例:

第二行指定編碼方式 Content-Type 為 multipart/form-data,緊接著生成一個分界線 boundary 即 ----WebKitFormBoundaryPAlLG7hJKNYc4ft3,又臭又長的目的是為了避免和 Body 正文內(nèi)容有沖突,它的作用是用來分隔不同的字段。

Body 體分為多個結(jié)構(gòu)類似的部分,每一部分以 --boundary 開頭,因為本次請求生成的 boundary 為 ----WebKitFormBoundaryPAlLG7hJKNYc4ft3,所以最終是 ------WebKitFormBoundaryPAlLG7hJKNYc4ft3。接著是描述內(nèi)容的元信息,包括字段名稱,如果是文件則還有文件名稱和文件類型。接著留一空行,然后才是字段值。什么時候結(jié)束呢,以 --boundary-- 標(biāo)志結(jié)束。

這種方式本就是專為上傳文件的場景設(shè)計的,雖然你也可以使用這種方式傳遞普通數(shù)據(jù),但無疑會增加不少數(shù)據(jù)包的大?。ㄟ@么多 boundary 還是有不少空間占用的)。

適用場景:文件上傳。

application/json

很明顯在 JSON 格式火之前,肯定沒有它的,前面說到使用什么提交數(shù)據(jù)方式是沒有硬性規(guī)定的,所以在 JSON 格式火了以后,尤其以其優(yōu)秀的數(shù)據(jù)結(jié)構(gòu)表達能力,逐漸流行開來,現(xiàn)在我們對它完全不會陌生。

適用場景:數(shù)據(jù)結(jié)構(gòu)較復(fù)雜,層級較深的情況。

更多 web前端 知識,請查閱 HTML中文網(wǎng) ??!

PHP多條數(shù)據(jù)如何一起提交?

參考如下

多個提交和一個提交的道理是相同的,只是一些細(xì)節(jié)上要注意。

提交一個,表單是:

form

input type=text name=name

input type=text name=sex

input type=text name=age

input type=text name=address

/form

PHP存數(shù)據(jù)庫的語句是:

$sql="insert into tab(...) values ($_POST[...])";//省略字段和值

那么多個提交的方法一,表單是:

form

input type=text name=name1input type=text name=sex1input type=text name=age1input type=text name=address1

input type=text name=name2input type=text name=sex2input type=text name=age2input type=text name=address2

/form

PHP存數(shù)據(jù)庫語句是:

$sql="insert into tab(...) values ($_POST[...1])";//省略字段和值

mysql_query($sql);

$sql="insert into tab(...) values ($_POST[...2])";//省略字段和值

mysql_query($sql);

上面方法一寫的例子是兩條,多條的方法相同,技巧就是輸出表單使用JS的循環(huán),存盤的PHP代碼也可以循環(huán),并且能夠判斷為空的就不提交,比如表單20條,只填了5條,就只存5條到數(shù)據(jù)庫。

方法二是使用數(shù)組,表單:

form

input type=text name=nameinput type=text name=sexinput type=text name=ageinput type=text name=address

input type=text name=nameinput type=text name=sexinput type=text name=ageinput type=text name=address

input type=text name=nameinput type=text name=sexinput type=text name=ageinput type=text name=address

/form

PHP代碼是:

for ($i=0;$icount($_POST["name"]);$i++)

if ($_POST["name"][$i]!='')

{

$sql="insert into tab(...) values ($_POST[...][$i])";//省略字段和值

mysql_query($sql);

}

這樣表單可以寫任意多行,PHP里面是數(shù)組,能夠自動獲取有多少數(shù)據(jù)。

表單的提交有兩種方式:GET和POST,這兩種方式的區(qū)別是什么?

一、指代不同

1、GET:從指定的資源請求數(shù)據(jù)。

2、POST:向指定的資源提交要被處理的數(shù)據(jù)

二、規(guī)則不同

1、GET: 請求可被緩存; 請求保留在瀏覽器歷史記錄中; 請求可被收藏為書簽;請求不應(yīng)在處理敏感數(shù)據(jù)時使用; 請求有長度限制; 請求只應(yīng)當(dāng)用于取回數(shù)據(jù)。

2、POST:請求不會被緩存; 請求不會保留在瀏覽器歷史記錄中; 不能被收藏為書簽; 請求對數(shù)據(jù)長度沒有要求。

三、數(shù)據(jù)要求不同

1、GET:當(dāng)發(fā)送數(shù)據(jù)時,GET 方法向 URL 添加數(shù)據(jù);URL 的長度是受限制的(URL 的最大長度是 2048 個字符)。與 POST 相比,GET 的安全性較差,因為所發(fā)送的數(shù)據(jù)是 URL 的一部分。

2、POST:發(fā)送數(shù)據(jù)無限制。POST 比 GET 更安全,因為參數(shù)不會被保存在瀏覽器歷史或 web 服務(wù)器日志中。

參考資料來源:百度百科-HTTP請求

參考資料來源:百度百科-post

php 提交post數(shù)據(jù)的問題

在php中要模擬post請求數(shù)據(jù)提交我們會使用到curl函數(shù),下面我來給大家舉幾個curl模擬post請求提交數(shù)據(jù)例子有需要的朋友可參考參考。

注意:curl函數(shù)在php中默認(rèn)是不被支持的,如果需要使用curl函數(shù)我們需在改一改你的php.ini文件的設(shè)置,找到php_curl.dll去掉前面的";"就行了

例1

?php

$uri = "";

// 參數(shù)數(shù)組

$data = array (

'name' = 'tanteng'

// 'password' = 'password'

);

$ch = curl_init ();

// print_r($ch);

curl_setopt ( $ch, CURLOPT_URL, $uri );

curl_setopt ( $ch, CURLOPT_POST, 1 );

curl_setopt ( $ch, CURLOPT_HEADER, 0 );

curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );

curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );

$return = curl_exec ( $ch );

curl_close ( $ch );

print_r($return);

接受php頁面遠(yuǎn)程服務(wù)器:

?php

if(isset($_POST['name'])){

if(!empty($_POST['name'])){

echo '您好,',$_POST['name'].'!';

}

}

?

例2

用CURL模擬POST請求抓取郵編與地址

完整代碼: 代碼如下

#!/usr/local/php/bin/php

?php

$runtime = new runtime ();

$runtime-start ();

$cookie_jar = tempnam('/tmp','cookie');

$filename = $argv[1];

$start_num= $argv[2];

$end_num = $argv[3];

for($i=$start_num; $i$end_num; $i++){

$zip = sprintf('6s',$i);

$fields_post = array(

'postcode' = $zip,

'queryKind' = 2,

'reqCode' = 'gotoSearch',

'search_button.x'=37,

'search_button.y'=12

);

$fields_string = http_build_query ( $fields_post, '' );

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "URL?reqCode=gotoSearchqueryKind=2postcode=".$zip);

curl_setopt($ch, CURLOPT_HEADER, true);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120 );

curl_setopt($ch, CURLOPT_REFERER, $refer );

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers_login );

curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar );

curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar );

curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);

curl_setopt($ch, CURLOPT_POST, 1); // 發(fā)送一個常規(guī)的Post請求

curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string );

$data = curl_exec($ch);

preg_match_all('/id="table1"[s]*?tr[s]*?td class="maintext"[sS]*?/td[s]*?/tr/', $data, $matches);

if (!$handle = fopen($filename, 'a+')) {

echo "不能打開文件 $filename";

echo "n";

exit;

}

if (fwrite($handle, $matches[0][1]) === FALSE) {

echo "不能寫入到文件 $filename";

echo "n";

exit;

}

echo "成功地將 $somecontent 寫入到文件$filename";

echo "n";

fclose($handle);

curl_close($ch);

}

class runtime

{

var $StartTime = 0;

var $StopTime = 0;

function get_microtime()

{

list($usec,$sec)=explode(' ',microtime());return((float)$usec+(float)$sec);

}

function start()

{

$this-StartTime=$this-get_microtime();

}

function stop(){

$this-StopTime=$this-get_microtime();

}

function spent()

{

return ($this-StopTime-$this-StartTime);

}

}

$runtime-stop ();

$con = 'Processed in'.$runtime-spent().'seconds';

echo 'Processed in'. $runtime-spent().'seconds';

模擬POST請求 提交數(shù)據(jù)或上傳文件 .

.

代碼如下 復(fù)制代碼

發(fā)送POST請求

function execUpload(){

$file = '/doucment/Readme.txt';

$ch = curl_init();

$post_data = array(

'loginfield' = 'username',

'username' = 'ybb',

'password' = '123456',

'file' = '@d:usrwwwtranslatedocumentReadme.txt'

);

curl_setopt($ch, CURLOPT_HEADER, false);

//啟用時會發(fā)送一個常規(guī)的POST請求,類型為:application/x-www-form-urlencoded,就像表單提交的一樣。

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch,CURLOPT_BINARYTRANSFER,true);

curl_setopt($ch, CURLOPT_POSTFIELDS,$post_data);

curl_setopt($ch, CURLOPT_URL, '');

$info= curl_exec($ch);

curl_close($ch);

print_r($info);

}

2.

function handleUpload(){

print_r($_POST);

echo '===file upload info:';

print_r($_FILES);

}

■cURL 函數(shù)

■curl_close — 關(guān)閉一個cURL會話

■curl_copy_handle — 復(fù)制一個cURL句柄和它的所有選項

■curl_errno — 返回最后一次的錯誤號

■curl_error — 返回一個保護當(dāng)前會話最近一次錯誤的字符串

■curl_exec — 執(zhí)行一個cURL會話

■curl_getinfo — 獲取一個cURL連接資源句柄的信息

■curl_init — 初始化一個cURL會話

■curl_multi_add_handle — 向curl批處理會話中添加單獨的curl句柄

■curl_multi_close — 關(guān)閉一組cURL句柄

■curl_multi_exec — 運行當(dāng)前 cURL 句柄的子連接

■curl_multi_getcontent — 如果設(shè)置了CURLOPT_RETURNTRANSFER,則返回獲取的輸出的文本流

■curl_multi_info_read — 獲取當(dāng)前解析的cURL的相關(guān)傳輸信息

■curl_multi_init — 返回一個新cURL批處理句柄

■curl_multi_remove_handle — 移除curl批處理句柄資源中的某個句柄資源

■curl_multi_select — 等待所有cURL批處理中的活動連接

■curl_setopt_array — 為cURL傳輸會話批量設(shè)置選項

■curl_setopt — 設(shè)置一個cURL傳輸選項

■curl_version — 獲取cURL版本信息

php如何將表單數(shù)據(jù)提交給遠(yuǎn)程服務(wù)器

朋友,我來告訴你答案!方式一:用GET方式直接把數(shù)據(jù)寫在地址欄里

方式二:action里寫上遠(yuǎn)程服務(wù)器地址,把表單數(shù)據(jù)寫在hidden里POST給對方


當(dāng)前標(biāo)題:數(shù)據(jù)提交方式有幾種php 常見的POST提交數(shù)據(jù)方式
網(wǎng)站URL:http://weahome.cn/article/hjhhdc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部