Page 1 sur 1

Envoyer une information en variable POST

Posté : 29 oct. 2005, 16:48
par Jules
Bonjour,

Je débute tout juste en php et je bloque sur le problème suivant:
Comment envoyer une information en variable POST à une page php3 ?

Exemple : envoyer 0123456789 avec la variable test sur http://www.monserveur.com/page.php

J'ai compris qu'il fallait quelque chose du type :

<?
$data = 'test='.urlencode(0123456789);

$message = "POST /page.php3 HTTP/1.0\r\n";
$message .= "Content-type: application/x-www-form-urlencoded\r\n";
$message .= "Content-length: ".strlen( $data )."\r\n";
$message .= "\r\n";
$message .= $data."\r\n";

$fd = fsockopen( "www.monserveur.com", 80 );
fputs($fd,$message);
fclose($fd);
?>

Et pourtant ça ne semble pas marcher, je n'ai pas de message d'erreur non plus... Où est le problème ?

Merci d'avance.
Jules

Posté : 29 oct. 2005, 18:33
par Pieterjan
je mettrais une majuscule a Type et a Length, pour voir, et le host doit être défini dans les headers aussi il me semble.

T'as de la chance, je planche sur un projet ou j'en fais plein, des passages de variables par post, avec de l'ajax façon google, c'est très chouette.

Voici un petit snipet qui marche (php 4.4 il me semble) :
$vars="colza=jaimpa&olive=derive";

$vars_len=strlen($vars);
$url='/action.php';
$Host="www.grosoft.com";


$ReqHeader =
"POST $url HTTP/1.1\n".
"Host: $Host\n".
"Content-Type: application/x-www-form-urlencoded\n".
"Content-Length: $vars_len\n\n".
"$vars\n"; 

// pour avoir un message d'erreur, faut définir $errno et $errstr

$socket = fsockopen($Host, 80, $errno, $errstr, 30);
if (!$socket) {
	echo "PERDU!";
	$Result["errno"] = $errno;
	$Result["errstr"] = $errstr;
	return $Result;
	}


Posté : 29 oct. 2005, 19:31
par alexbad
Les POST serait supposé fonctionner sur PHP3... et un truc, colore tes codes PHP avec le bouton [PHP]

Posté : 30 oct. 2005, 14:26
par Jules
Merci beaucoup, je vais tester tout ça !