Envoyer une information en variable POST

Jules
Invité n'ayant pas de compte PHPfrance

29 oct. 2005, 16:48

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

Eléphant du PHP | 55 Messages

29 oct. 2005, 18:33

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;
	}

Mais qu'importe..

ViPHP
ViPHP | 649 Messages

29 oct. 2005, 19:31

Les POST serait supposé fonctionner sur PHP3... et un truc, colore tes codes PHP avec le bouton [PHP]
Image

Jules
Invité n'ayant pas de compte PHPfrance

30 oct. 2005, 14:26

Merci beaucoup, je vais tester tout ça !