Hi!!
Please guide me. How can I send variables from a PHP script to another URL using POST without using forms and hidden variables?

Thanks
Laxy

I don't think you can, I can't remember if you could do this off the top of my head; tell us what exactly you are trying to do instead of being so general.

You can open an HTTP socket connection and send HTTP POST commands. Here is
an example :

<?
// Generate the request header
$ReqHeader =
"POST $URI HTTP/1.1\n".
"Host: $Host\n".
"Content-Type: application/x-www-form-urlencoded\n".
"Content-Length: $ContentLength\n\n".
"$ReqBody\n";

// Open the connection to the host
$socket = fsockopen($Host, 80, &$errno, &$errstr);
if (!$socket)

$Result["errno"] = $errno;
$Result["errstr"] = $errstr;
return $Result;
}
$idx = 0;
fputs($socket, $ReqHeader);
while (!feof($socket))

$Result[$idx++] = fgets($socket, 128);
}
//-------------------------------------------
?>


Or you can use the cURL extensions for PHP (http://curl.haxx.se). Once you build it and compile their support into PHP, it is fairly easy to do posting stuff (even over https):


<?
$URL="www.mysite.com/test.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://$URL");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "Data1=blah&Data2=blah");curl_exec ($ch);
curl_close ($ch);
?>


This will have the net effect of posting your data to the $URL site, without any header hacking.

You can also do other nifty things with cURL, like retrieve the HTML into variables and scrape through it for neat functionality.

To use cURL you need to recompile PHP or check with your ISP to see if they support it (http://www.php4hosting.com does)

If you are posting within your own server, you may not need to connect to the host as shown by manishMCAIT.

<a href="adminpanal.php?task=edit&id=<? echo $id ?> ">
......................................................
$ver = $_REQUEST=[task]; .....(this i use for SWITCH case)
and
$idi = $_REQUEST=[id]; ..... (this i use for database id)

This article has been dead for over six months. Start a new discussion instead.