Salve a tutti,
questo è il mio primo post. Premetto che è solo da qualche giorno che mi sono avvicinato a php e devo dire che ne sono già molto colpito.
Veniamo al mio probolema.
Ho la necessità di inviare delle variabili tramite "post" ad una pagina php che risiede in un altro sever, in modo automatico.
L'utente si collega alla pagina mioserver/pagina.php che in automatico invia le variabili tramite post a altroserver/pagina2.php.
Usando questo codice mi ritorna un errore di pagina non trovata. Cosa sbaglio o come posso fare?
function PostRequest($url, $referer, $_data) {
// convert variables array to string:
$data = array();
while(list($n,$v) = each($_data)){
$data[] = "$n=$v";
}
$data = implode('&', $data);
// format --> test1=a&test2=b etc.
// parse the given URL
$url = parse_url($url);
if ($url['scheme'] != 'http') {
die('Only HTTP request are supported !');
}
// extract host and path:
$host = $url['host'];
$path = $url['path'];
// open a socket connection on port 80
$fp = fsockopen($host, 80);
// send the request headers:
fputs($fp, "POST $path HTTP/1.1\r\n");
fputs($fp, "Host: $host\r\n");
fputs($fp, "Referer: $referer\r\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($fp, "Content-length: ". strlen($data) ."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $data);
$result = '';
while(!feof($fp)) {
// receive the results of the request
$result .= fgets($fp, 128);
}
// close the socket connection:
fclose($fp);
// split the result header from the content
$result = explode("\r\n\r\n", $result, 2);
$header = isset($result[0]) ? $result[0] : '';
$content = isset($result[1]) ? $result[1] : '';
//print $content;
// return as array:
return array($header, $content);
}
$data = array(
'variabile1' => '1',
'variabile2' => '2',
'variabile3' => '3'
);
list($header, $content) = PostRequest(
"http://altroserver/pagina2.php",
"http://mioserver",
$data
);
print $content;