Je teste la fonction fsockopen gràce à un fichier d'appel :
CODE
$POST_DATA='variable=44&truc=12';
$HTTP_REQUEST="POST http://www.monsite.com/http-request-reponse.php HTTP/1.1\n";
$HTTP_REQUEST.="Host: monsite.com\n";
$HTTP_REQUEST.='Connection: close Accept-Encoding: gzip Content-Type: application/x-www-form-urlencoded Content-Length: '.strlen($POST_DATA)."\n\n";
$HTTP_REQUEST.=$POST_DATA;
$fp=fsockopen($host,'80',$errno,$errstr);
if($fp)
{
fwrite($fp,$HTTP_REQUEST);
$response='';
while(!feof($fp))
{
$response.=fread($fp,4056);
}
fclose($fp);
echo "RESULTAT :".$response;//Output à traiter un minimum.
}
else
{
echo "Erreur:".$errno.':'.$errstr;
}
$HTTP_REQUEST="POST http://www.monsite.com/http-request-reponse.php HTTP/1.1\n";
$HTTP_REQUEST.="Host: monsite.com\n";
$HTTP_REQUEST.='Connection: close Accept-Encoding: gzip Content-Type: application/x-www-form-urlencoded Content-Length: '.strlen($POST_DATA)."\n\n";
$HTTP_REQUEST.=$POST_DATA;
$fp=fsockopen($host,'80',$errno,$errstr);
if($fp)
{
fwrite($fp,$HTTP_REQUEST);
$response='';
while(!feof($fp))
{
$response.=fread($fp,4056);
}
fclose($fp);
echo "RESULTAT :".$response;//Output à traiter un minimum.
}
else
{
echo "Erreur:".$errno.':'.$errstr;
}
Et de l'autre côté, mon fichier appelé :
CODE
echo 'OK - recu en post : '.$_POST['variable'];
echo '<br><br>fin fichier
echo '<br><br>fin fichier
Au final, lorsque je lance le script d'appel, je n'ai pas d'erreur mais on dirait que le fichier appelé n'arrive pas à récupérer les variables que je lui passe en POST. En effet, voici le retour :
CITATION
RESULTAT :HTTP/1.1 200 OK Date: Tue, 10 Jun 2008 07:27:34 GMT Server: Apache/1.3.37 (Unix) mod_gzip/1.3.19.1a PHP/5.1.6 mod_ssl/2.8.28 OpenSSL/0.9.6m X-Powered-By: PHP/5.1.6 Connection: close Transfer-Encoding: chunked Content-Type: text/html 31 OK - recu en post :
fin fichier 0
fin fichier 0
Comment se fait-il que je ne récupère pas mes variables en POST ? J'ai essayé la même chose en GET mais même souci.
Si vous aviez une piste, merci d'avance !!
EDIT : en modifiant dans le fichier d'appel
$HTTP_REQUEST="POST http://www.monsite.com/http-request-reponse.php HTTP/1.1\n";
par
$HTTP_REQUEST="POST http://www.monsite.com/http-request-repons...=44&truc=12 HTTP/1.1\n";
Cela fonctionne : je récupère mes données en GET
Mais est-ce que ça ne pose pas de pb au niveau sécurité ?