httppostphp
A. php模擬HTTP的POST請求時遇到的問題求助
類中 靜態方法和靜態屬性的引用方法例如class Test{ public static $test = 1; public static function test(){ }}可以不用實例化對象直接使用 Test::$test 來取得$test屬性的值靜態方法調用也同理Test::test(); 直接調用靜態方法test
如果我解答樓主覺得不清楚可以自己去後盾人學習,對你學習PHP應該會有幫助,
B. 用PHP做伺服器介面客戶端用http協議POST訪問安全性一般怎麼做
1.請求頭里帶用戶username和password,到伺服器端做驗證,通過才繼續下邊業務邏輯。
優點:防止了伺服器端api被隨意調用。
缺點:每次都交互用戶名和密碼,交互量大,且密碼明文傳輸不安全。
2.第一次請求,要求username和password,驗證通過,種cookie到客戶端,app保存cookie值。
每次請求帶上cookie。
點評:和pc上瀏覽器認證的原理一樣了。
以上兩點,只有注冊用戶,才能有權訪問業務邏輯,而app有大量的不需要注冊數據api。
C. 求助PHP如何POST提交數據
用PHP向伺服器發送HTTP的POST請求,代碼如下:
<?php
/**
*發送post請求
*@paramstring$url請求地址
*@paramarray$post_datapost鍵值對數據
*@returnstring
*/
functionsend_post($url,$post_data){
$postdata=http_build_query($post_data);
$options=array(
'http'=>array(
'method'=>'POST',
'header'=>'Content-type:application/x-www-form-urlencoded',
'content'=>$postdata,
'timeout'=>15*60//超時時間(單位:s)
)
);
$context=stream_context_create($options);
$result=file_get_contents($url,false,$context);
return$result;
}
使用的時候直接調用上面定義的send_post方法:
$post_data=array(
'username'=>'username',
'password'=>'password'
);
send_post('網址',$post_data);
D. 用PHP怎麼發送HTTP POST 請求。怎麼獲得返回結果。
傳遞? 用 form標簽啊 <form action="" method="post"></form>
獲取結果用超全局變數 $_post[]
E. 怎麼查看php發出的post請求
用PHP向伺服器發送HTTP的POST請求,代碼如下:
<?php
/**
* 發送post請求
* @param string $url 請求地址
* @param array $post_data post鍵值對數據
* @return string
*/
function send_post($url, $post_data) {
$postdata = http_build_query($post_data);
$options = array(
'http' => array(
'method' => 'POST',
'header' => 'Content-type:application/x-www-form-urlencoded',
'content' => $postdata,
'timeout' => 15 * 60 // 超時時間(單位:s)
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
return $result;
}
使用的時候直接調用上面定義的send_post方法:
$post_data = array(
'username' => 'username',
'password' => 'password'
);
send_post('網址', $post_data);
F. http post參數值字元過長,PHP服務端接收數據為空
Windows 環境下的修改方法
第一步:修改在php下POST文件大小的限制
1.用編輯器打開php.ini
找到:max_execution_time =30 ,這個是每個腳本運行的最長時間,單位秒,修改為:
max_execution_time = 150
找到:max_input_time = 60,這是每個腳本可以消耗的時間,單位也是秒,修改為:
max_input_time = 300
找到:memory_limit = 128M,這個是腳本運行最大消耗的內存,根據你的需求更改數值,這里修改為:
memory_limit = 256M
找到:post_max_size = 8M,表單提交最大數據為8M,此項不是限制上傳單個文件的大小,而是針對整個表單的提交數據進行限制的。限制范圍包括表單提交的所有內容.例如:發表貼子時,貼子標題,內容,附件等…這里修改為:
post_max_size = 20M
找到:upload_max_filesize = 2M ,上載文件的最大許可大小 ,修改為:
upload_max_filesize = 10M
第二步: Apache環境中的檔案上傳大小控制
修改位於Apahce目錄下的httpd.conf
添加下面內容
LimitRequestBody10485760
即10M=10*1024*1024,有的文章中提到應改為 600000000
重新啟動apache,就可以在設置里看到你要的大小
Linux 環境下的修改方法
vim /etc/php.ini
找到 File Uploadsh區域修改以下幾個參數: file_uploads = on;是否允許通過HTTP上傳文件的開關。默認為ON即是開 upload_tmp_dir;文件上傳至伺服器上存儲臨時文件的地方,如果沒指定就會用系統默認的臨時文件夾(moodle可以不改)
upload_max_filesize = 8m ;允許上傳文件大小的最大值.
找到 Data Handling區域,修改 post_max_size = 8m;指通過表單POST給PHP的所能接收的最大值,包括表單里的所有值。默認為8M
設上述四個參數後,上傳小於8M的文件一般不成問題。但如果上傳大於8M的文件,只還得設置以下參數:
在Resource Limits 區域: max_execution_time = 600;每個PHP頁面運行的最大時間值(秒),默認30秒 max_input_time = 600;每個PHP頁面接收數據所需的最大時間,默認60秒 memory_limit = 8m;每個PHP頁面所吃掉的最大內存,默認8M
G. php如何獲得http post的數據
在PHP段直接用$_POST這個全局數組來獲取,也可以通過$_REQUEST來獲取值
H. php獲取httpPost(url, params)的數據
var_mp($_POST); 不論他是什麼語言,只要遵守http協議就可以通過$_GET或者$_POST獲取。
I. 如何獲取http post 請求地址
PHP獲取POST數據的幾種方法:
方法1、最常見的方法是:$_POST['fieldname'];
說明:只能接收Content-Type: application/x-www-form-urlencoded提交的數據。
方法2、file_get_contents("php://input");
說明:
允許讀取 POST 的原始數據。
和 $HTTP_RAW_POST_DATA 比起來,它給內存帶來的壓力較小,並且不需要任何特殊的 php.ini 設置。
php://input 不能用於 enctype="multipart/form-data"。
方法3、$GLOBALS['HTTP_RAW_POST_DATA'];
說明:
總是產生 $HTTP_RAW_POST_DATA 變數包含有原始的 POST 數據。
此變數僅在碰到未識別 MIME 類型的數據時產生。
J. php怎麼響應客戶端發送http請求
獲取請求代碼如下:
#測試網址: http://localhost/blog/testurl.php?id=5
//獲取域名或主機地址
echo $_SERVER['HTTP_HOST']."
"; #localhost
//獲取網頁地址
echo $_SERVER['PHP_SELF']."
"; #/blog/testurl.php
//獲取網址參數
echo $_SERVER["QUERY_STRING"]."
"; #id=5
//獲取用戶代理
echo $_SERVER['HTTP_REFERER']."
";
//獲取完整的url
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
#http://localhost/blog/testurl.php?id=5
//包含埠號的完整url
echo
http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
#http://localhost:80/blog/testurl.php?id=5
//只取路徑
$url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];
echo dirname($url);
#http://localhost/blog
if (in_array("Mark", $people))
{
echo "匹配已找到";
}
else
{
echo "匹配未找到";
}