Re: 用header送出post表單

看板PHP作者 (霸格尼尼)時間15年前 (2009/02/12 01:37), 編輯推噓1(107)
留言8則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《costbook (Sissy's mate)》之銘言: 我想從AT&T的web TTS系統取得wav檔案, (對方的cgi會回應一個wav檔案) 這是錯誤訊息: HTTP/1.1 400 Bad Request Date: Wed, 11 Feb 2009 17:03:09 GMT Server: Apache/2.0.52 (CentOS) Content-Length: 326 Connection: close Content-Type: text/html; charset=iso-8859-1 Bad Request Your browser sent a request that this server could not understand. Apache/2.0.52 (CentOS) Server at 192.20.225.55/tts/cgi-bin/nph-talk Port 80 我修正程式了,紅字的部份 $fp = fsockopen("192.20.225.55" ,80, $errno, $errstr); if (!$fp){ echo "----->".$errstr."<-----"; die("$errstr ($errno)\n"); }else{ $data = "txt=".$_GET['txt']; $out="POST /tts/cgi-bin/nph-talk HTTP/1.1\r\n"; $out.="Host: http://192.20.225.55\r\n"; $out.="Content-type: application/x-www-post\r\n"; $out.="Content-length: " . strlen($data) . "\r\n"; $out.="Accept: */*\r\n"; $out.="\r\n".$data."\r\n\r\n"; fwrite($fp, $out); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.68.92.156

02/11 23:34,
會不會太硬, 這裡不能用 curl 嗎?
02/11 23:34

02/12 00:07,
有出現任何錯誤訊息嗎?
02/12 00:07

02/12 00:22,
fsockopen不用網址吧 給ip就好 網只是寫在POST後面
02/12 00:22

02/12 00:23,
Host裡面要寫http:// 吧? 不確定
02/12 00:23

02/12 00:25,
跟cgi什麼的完全沒有關係 還不都是HTTP
02/12 00:25

02/12 00:27,
另外curl的確比較好用
02/12 00:27

02/12 00:35,
fsockopen跟HTTP是不同層的東西
02/12 00:35
※ 編輯: costbook 來自: 203.68.92.156 (02/12 01:07) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.231.23

02/12 01:38, , 1F
黃色的地方我不確定 不過我現在記憶體不夠開browser
02/12 01:38, 1F

02/12 01:38, , 2F
暫時沒辦法查...
02/12 01:38, 2F

02/12 01:39, , 3F
另外Host裡面最好寫他原本的FQDN 如果他有作
02/12 01:39, 3F

02/12 01:39, , 4F
name-based virtual host會有影響
02/12 01:39, 4F

02/12 01:42, , 5F
content-type好像也不對 忘記了..
02/12 01:42, 5F

02/12 01:44, , 6F
而且應該不只是nphtalk而已吧 應該有個.cgi之類的
02/12 01:44, 6F

02/12 03:29, , 7F
cgi的程式名稱一直查不到,該網站的form也沒有寫出來
02/12 03:29, 7F

02/12 04:41, , 8F
沒有就沒有吧action怎樣寫就照樣 可能是index吧
02/12 04:41, 8F
文章代碼(AID): #19ampZfq (PHP)
文章代碼(AID): #19ampZfq (PHP)