Envoyer une information en variable POST

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Envoyer une information en variable POST

par Jules » 30 oct. 2005, 14:26

Merci beaucoup, je vais tester tout ça !

par alexbad » 29 oct. 2005, 19:31

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

par Pieterjan » 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;
	}

Envoyer une information en variable POST

par Jules » 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