㈠ php 接收到之後post數據寫入資料庫
form表單demo:task.html
<fieldset id="setFiled">
<legend>發布任務</legend>
<form action="registr.php" method="post" id="steForm">
<label>任務類型:</label><br>
<input type="text" name="type" id="taskType" placeholder="請選擇任務類型"/><br>
<label>酬 金:</label><br>
<input type="number" name="money" id="forMoney" min="1" max="1000"/><label>元</label><br>
<label>截止時間:</label><br>
<input type="datetime" name="time" id="timeSubmit"/><span data-year="" data-month="" data-date="" id="showDate"></span><br>
<label>詳細描述:</label><br>
<textarea maxlength="512" name="textAray" id="msgArea"></textarea><br>
<input type="submit" name="subMit" id="forSub" value="點擊發布" />
</form>
(1)伺服器數據接收php擴展閱讀
php接收POST數據的三種方式
1、$_POST 方式接受數據
$_POST 方式是由通過HTTP的POST方法傳遞過來的數據組成的數組,是一個自動全局變數。
註:只能接收Content-Type:application/x-www-form-urlencode提交的數據。也就是只能接收表單過來的數據。
2、GLOBLES[『HTTP_RAW_POST_DATA』]
如果訪問原始POST數據不是php能夠識別的文檔類型,比如:text/xml 或者soap等等,可以用$GLOBLES[『HTTP_RAW_POST_DATA』]來接收,$HTTP_RAW_POST_DATA變數包含有原始POST數據。此變數僅在碰到未識別的MIME數據時產生。
註:$HTTP_RAW_POST_DATA對於enctype=」multipart/form-data」表單數據不可用,也就是說使用$HTTP_RAW_POST_DATA無法接受網頁表單post過來的數據。
3、file_get_contents(「php://input」);
如果訪問原始POST數據,更好的方法是使用file_get_content(「php://input」);對於未指定Content-Type的POST數據,可以使用該方法讀取POST原始數據,包括二進制流也可以和$HTTP_RAW_POST_DATA比起來。它帶來的生存眼裡更小,並且不需要任何特殊的php.ini設置。
註:php://input不能用於 enctype=」multipart/form-data」
例如:$postStr = file_get_contents("php://input"); //獲取POST數據
㈡ 47-網頁獲取數據的方法(get-post)
通過網頁表單獲取的數據,在php文件中呈現,利用纖滾php方法中的$_GET方法接受,提交的數據為一個字典。
1、通過輸入網址請求伺服器鉛豎敬中的html文件,伺服器接受請求文件,進行處理
2、伺服器接收後,處理成響應報文進行返回到用戶瀏覽器界面
3、第二次在html的表單中提交的數據會形成請求報文到伺服器中,php文件接受數據並進行處理
4、伺服器中php文件接收後會處理並返回響應文件呈現到用戶瀏覽器界面
將form表單中的槐慎method的取值改成post就是以post的方式將文件放給伺服器。
1、相同點
2、不同點
㈢ php如何接收別的伺服器post過來的數據 - 技術問答
通常情況下用戶使用瀏覽器網頁表單向伺服器post提交數據,我們使用PHP的$_POST接收用戶POST到伺服器的數據,並進行適當的處理。但有些情況下,如用戶使用客戶端軟體向服務端php程序發送post數據,而不能用$_POST來識別,那又該如何處理呢?
我們介紹php接受post數據的三種方式:
1.$_POST方式接收數據
$_POST方式是通過 HTTP POST 方法傳遞的變數組成的數組,是自動全局變數。如使用$_POST[『name』]就可以接收到網頁表單以及網頁非同步方式post過來的數據,
即$_POST只能接收文檔類型為Content-Type: application/x-www-form-urlencoded提交的數據,也就是表單POST過來的數據。
2.$GLOBALS[『HTTP_RAW_POST_DATA』]方式接收數據
但$GLOBALS[『HTTP_RAW_POST_DATA』]中是否保存POST過來的數據取決於centent-Type的設置,只有在PHP在無法識別的Content-Type的情況下,才會將POST過來的數據原樣地填入變數$GLOBALS[『HTTP_RAW_POST_DATA』]中,像Content-Type=application/x-www-form-urlencoded時,該變數是空的。
另外,它同樣無法讀取Content-Type為multipart/form-data的POST數據,也需要設置php.ini中的always_populate_raw_post_data值為On,PHP才會總把POST數據填入變數$http_raw_post_data。
3.php://input方式接收數據
如果訪問原始 POST 數據的更好方法是 php://input。php://input 允許讀取 POST 的原始數據。和 $HTTP_RAW_POST_DATA 比起來,它給內存帶來的壓力較小,並且不需要任何特殊的php.ini設置,php://input不能用於 enctype=」multipart/form-data」。對於未指定 Content-Type 的POST數據,則可以使用file_get_contents(「php://input」)來獲取原始數據。事實上,用PHP接收POST的任何數據都可以使用本方法。而不用考慮Content-Type,包括二進制文件流也可以。php://input讀取不到$_GET數據。是因為$
㈣ 問一下,PHP中的Socket怎麼被動接收數據
首先是服務端的代碼:
<?php
$host = 'localhost';
$port = 4888;
set_time_limit(0);
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
$result = socket_bind($socket, $host, $port) or die("Could not blind to port\n");
$result = socket_listen($socket, 3) or die("Could not set LIstener\n");
while($spawn = socket_accept($socket) or die("Could not readinput\n")){
$input = socket_read($spawn, 1024);
echo $input,"\n";
$input = '7636553:'.trim($input);
//client
$output = $input."\n";
socket_write($spawn, $output, strlen($output));
}
//kill
socket_close($spawn);
socket_close($socket);
echo "close\n";
?>
客戶端的代碼:
<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$connection = socket_connect($socket, 'localhost',4888) or die("Could not connect\n");
echo 'Write to Socket',"\n";
if(!socket_write($socket, "some data")){
echo 'write failed',"\n";
}
//read respose from socket
while($buffer = socket_read($socket, 1024)){
echo 'Response: ',$buffer,"\n";
}
?>
先啟動伺服器端,再執行客戶端。然後,你就可以看見這個效果了。
㈤ 如何用php實現接收發送到伺服器的數據。。。。。。。
1、直接file_get_contents("滾大php://input") 這個函數就可以接到接沖備冊口傳參!散宏
2、建議使用json格式數據進行交互。
㈥ PHP怎麼接收數據
三中接受方式:
$_GET //get過來的數據
$_POST //post過來的數據
file_get_contents("php://input") //介面過來的xml等字元串數據用這個接
這三個方法足以接受任何數據了,具體你還要網路一下用法
㈦ 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
㈧ 用C寫的一個socket數據包發送到80埠,用php怎麼在伺服器上接收到
set_time_limit(0);
//賀指設置腳本超時時間;0表示不限制
$socket
=
socket_create(AF_INET,
SOCK_STREAM,SOL_TCP);
//創建一個套睜知接字悉拍消,參數太多,自己查手冊
socket_bind($socket,'localhost',80);
綁定主機,埠
socket_listen($socket);
監聽埠
$connection=socket_accept($socket)
接受連接
後面就可以通過socket_read()和socket_write();進行收發數據
最後用socket_close()銷毀資源;
注意,這里需要直接通過php.exe直接來驅動,不要過伺服器;