envoi d'un post par header avec tableau
Par karando, jeudi 23 novembre 2006 à 13:21 :: PHP - Autre Contribution :: #22 :: rss
appel de page par header avec passage de parametre en GET et POST et en POST on a un tableau a passer
Je m'explique un peu mieux. J'ai un formulaire qui recoit de la donnée par un post ce formulaire ce genere suivant la donnée postée. Jusque la ca devrait aller. Depuis ce formulaire "formulaire2" je rentre encore des donnés mais qui vont etre verifier apres le post. Le probleme est lors du retour sur l'ancien formulaire on ne peut pas vraiment faire un back (retour) pour recuperer les donnée et afficher les erreurs que cela produit. Donc il va falloir reposter les information pour generer le formulaire2. Pour faire cela on va faire un header qui va recharger les informations de la page contenant mon formulaire. Voici le code pour aller chercher la page que l'on a besoin le code se trouve dans une methode d'une classe
[PHP]
if (montest===true)
{
}
else
{
$req="";$poststring="";
$req.=$this->Cfct_create_tableaupost($_POST["occupation"],"occupation")."&";
$req.=$this->Cfct_create_tableaupost($_POST["bebe"],"bebe")."&";
$req.=$this->Cfct_create_tableaupost($_POST["totalch"],"totalch")."&";
$req.=$this->Cfct_create_tableaupost($_POST["chambres"],"chambres")."&";
//$req.="bebe=".print_r($_POST["bebe"])."&";
//$req.="totalch=".print_r($_POST["totalch"])."&";
//$req.="chambres=".print_r($_POST["chambres"])."&";
$req.="date1=".$_POST["date1"]."&";
$req.="date2=".$_POST["date2"]."&";
$req.="intern_comment=".$_POST["intern_comment"]."";
$req2="";//c'est mon GET
$req2.="mini_id=".$_POST["mini_id"]."&";
$req2.="mod_id=0&";
$req2.="lang_id=".$this->lang_id."&";
$req2.="minisitetypepage=dispo";
$url="/reservation-next-01.php?".$req2;
//print_r($_POST);
//print_r($_GET);
//echo "<br/>";
echo $this->doPost($url."?".$req2,$req,"3wmaster");
exit();
}
et voici les methodes appelées. Il y a aussi le passage d'un cookies dans le header.
[PHP]
function Cfct_create_tableaupost($tab,$namechamp)
{
$poststring="";
foreach($tab AS $key => $val)
{
$poststring .= urlencode($namechamp."[]") . "=" . urlencode($val) . "&";
}
// strip off trailing ampersand
$poststring = substr($poststring, 0, -1);
return $poststring;
}
function doPost($uri,$postdata,$host)
{
$da = fsockopen($host,$_SERVER['SERVER_PORT'], $errno, $errstr);
if (!$da)
{
echo "$errstr ($errno)<br/>\n";
echo $da;
}
else
{
$salida ="POST $uri HTTP/1.1\r\n";
$salida.="Host: $host\r\n";
$salida.="User-Agent: PHP Script\r\n";
$salida.="Content-Type: application/x-www-form-urlencoded\r\n";
$salida.="Content-Length: ".strlen($postdata)."\r\n";
$salida.="Cookie: log_internaute_id=".$_SESSION["log_internaute_id"]."\r\n";
$salida.="Connection: close\r\n\r\n";
$salida.=$postdata;
//echo $postdata;
fputs($da,$salida);
//fwrite($da, $salida);
$response="";
while (!feof($da))
{
$response2=fgets($da);
$response.=$response2;
print_r($response2);
//echo "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
}
$response=split("<!DOCTYPE",$response);
// print_r( $response);
$header=$response[0];
//echo $header;
$responsecontent="<!DOCTYPE".$response[1];
//return chop($responsecontent);
}//else
//return "ee";
}//function-doPost
Apres a vous d'isoler les informations que vous avez besoin.
Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.