http request using fsockopen
From: Rob (reply__at_news_group.please)
Date: 10/25/04
- Next message: JustinCase: "Extracting text from pdf"
- Previous message: bill skipton: "Re: Passing arrays as session variables"
- Next in thread: Colin McKinnon: "Re: http request using fsockopen"
- Reply: Colin McKinnon: "Re: http request using fsockopen"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Mon, 25 Oct 2004 12:46:42 GMT
Hello all,
I have a form on page A which is submitted trough a POST method to page B.
On the start of page B I check var $foo. If true I want to "forward" the
request to
page C. Sending the POST data also though the POST method.
I manually create a HTTP request to page C and use the fsockopen method to
sent the request.
As a result I get the requested page C (status code "200 OK" is returned)
but the
POST data is not received/parsed(?). I mean the $_POST array is empty in
page C. All other PHP scripts in page C is executed as expected though.
My questions:
1 Is what I am doing possible in the first place?
2 If so, what is the correct syntax to sent the
POST data ($query) in the entity body of the request?
My configuration:
PHP 4.8
Apache 2.1
Windows XP SP2
My code:
// In Page B from Page A
if ($foo){
$url=URL_BASE; // local constant containing the current domain
if (!preg_match("/http/", $url)) $url = "http://".$url;
$urlParts = parse_url($url);
$host = isset($urlParts['host'])?$urlParts['host']:'localhost';
$port = isset($urlParts['port'])?$urlParts['port']:80;
$path = isset($urlParts['path'])?$urlParts['path']:"/";
$errno=null;
$errstr='';
$timeout=30;
$fp=fsockopen($host,$port,$errno,$errstr,$timeout);
if (!$fp){
echo "<br/>\n $errstr ($errno) <br/>\n";
} else {
$query='';
foreach($_POST as $i=>$v){
$query.="$i=$v\r\n";
}
// headers
$out ="POST {$path}page_c.php HTTP/1.1 \r\n";
$out.="Host: $host \r\n";
$out.="Content-length: ".strlen($query)." \r\n";
$out.="Content-type: text/html \r\n";
$out.="Connection: Close \r\n\r\n";
$out.=$query." \r\n";
// send the post data
fwrite($fp,$out);
// write page C (results)
while(!feof($fp)) {
echo fgets($fp,128);
}
fclose($fp);
}
}
// end Code...
Thanks in advance Rob
- Next message: JustinCase: "Extracting text from pdf"
- Previous message: bill skipton: "Re: Passing arrays as session variables"
- Next in thread: Colin McKinnon: "Re: http request using fsockopen"
- Reply: Colin McKinnon: "Re: http request using fsockopen"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|