On Mon, 2003-06-16 at 13:46, Kevin Stone wrote:
> Hello list,
>
> I'm attempting to use the PostToHost() function to send a request to a
> remote script. The purpose for this is to request and retrieve information
> from a remote database without the need for messy HTTP & HTML methods. I
> realize that I could use an HTML form, put the data in hidden fields, and
> send the request that way, but then I would have to redirect back from the
> master script recording an unwanted page in the 'Back Button' history. I'd
> like to avoid that so I'm investigating methods of POST'ing through a manual
> socket connection.
>
> Here is that PostToHost() function..
>
> /*********************************************************
> PostToHost($host, $path, $data_to_send)
> $host; valid domain (ie. www.domain.com)
> $path; relative URL (ie. /myfile.php)
> $data_to_send; urlencoded key/val string (ie.
> "key=val&key2=val2&key3=val3")
> *********************************************************/
> function PostToHost($host, $path, $data_to_send)
> {
Add here:
$ret_string = '';
> ob_end_flush();
> $fp = fsockopen($host,80);
> fputs($fp, "POST $path HTTP/1.0\n");
> fputs($fp, "Host: $host\n");
> fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
> fputs($fp, "Content-length: " . strlen($data_to_send) . "\n");
> fputs($fp, "Connection: close\n\n");
> fputs($fp, $data_to_send);
> while(!feof($fp))
> {
> echo fgets($fp, 128);
Replace the echo line above with:
$ret_string .= fgets($fp, 2048) . "\n";
> }
> fclose($fp);
Add here:
return $ret_string;
> }
>
>
> It works great! The only problem is I get output from the socket connection
> and I don't know how to skip over it...
>
> HTTP/1.1 200 OK
> Date: Mon, 16 Jun 2003 20:10:36 GMT
> Server: Apache/1.3.20 (Unix) ApacheJServ/1.1.2 PHP/4.2.3
> FrontPage/5.0.2.2510 Rewrit/1.1a
> X-Powered-By: PHP/4.2.3
> Connection: close
> Content-Type: text/html
>
> I'm very much a newbie to all of this so you'll have to forgive me. But I'm
> wondering if there is anyway to avoid this output and have a completely
> invisible manual socket POST?
I'm assuming with the above that you want to get the returned text from
the POST into a string for use instead of outputting it directly to the
browser; these changes should do that. Note: I haven't actually tested
it. :)
Good luck,
Torben
> Thanks,
> Kevin Stone
> [EMAIL PROTECTED]
--
Torben Wilson <[EMAIL PROTECTED]> +1.604.709.0506
http://www.thebuttlesschaps.com http://www.inflatableeye.com
http://www.hybrid17.com http://www.themainonmain.com
-----==== Boycott Starbucks! http://www.haidabuckscafe.com ====-----
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php