Correction du code "Requête POST Vers un serveur
Bonsoir,
je début avec php. J’aimerais cocher un checkbox d'une page web avec la requête POST. J’ai donc implémenté une requête POST à partir d'une requête GET. J’ai pris l’entête de la requête GET qui marche sur ce serveur et j’ai voulu en faire une POST mais ça ne marche pas. Pourriez vous m’éclairer un peu sur le sujet? Pour le GET le serveur à besoin d’une adresse email et d’un PHPSESSID.
Le code source de la page à cocher révèle ce qui suit:
lorsque le checkbox n’est pas coché
Code:
<td class= »font_white »><input type= »checkbox » onClick= »document.select_trade.submit() »name= »tradech » value= »YES » /></td>
lorsque le checkbox est coché
Code:
td class= »font_white »><input type= »checkbox » onClick= »document.select_trade.submit() » name= »tradech » value= »NO » checked= »checked » /></td>
Voici la fonction que j’ai concocté pour faire cette action:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| //$_SESSION['email']=email@monsite.fr;
//$_SESSION['SESSID']=36693e34d97bea70ef4f1badbd6e5f9c;
//$header = Cookie: login_email=.str_replace(@, %40′, $_SESSION['email']).; testcookie=1; PHPSESSID=.$_SESSION['SESSID'].\r\n;
//$host = lecitesurlequeljenvoielepost.fr;
//$url= /lapagedecesitesurdontjesouhaiteremplirleformule.php
//$contenu_du_formulaire=tradech=NO;
function PutUrl($host, $url, $headers=false,$contenu_du_formulaire=false)
{
if ( ($fp = fsockopen($host, 80, $errno, $errstr, 10)) === false) return false; else echoConnexion dans socket ok;
$in = POST $url HTTP/1.1\r\n;
$in .= Host: $host\r\n;
$in .= User-Agent: .$_SERVER['HTTP_USER_AGENT'].\r\n;
$in .= Accept: .$_SERVER['HTTP_ACCEPT'].\r\n;
$in .= Accept-Language: .$_SERVER['HTTP_ACCEPT_LANGUAGE'].\r\n;
$in .= Accept-Charset: .$_SERVER['HTTP_ACCEPT_CHARSET'].\r\n;
$in .= Accept-Encoding: chunked\r\n;
if ($headers) $in .= $headers;
$in .= Connection: Keep-alive\r\n;
$in .= Content-type: application/x-www-form-urlencoded\r\n;
$in .= sprintf(Content-Length: %s\r\n\r\n, strlen($contenu_du_formulaire));
if ($contenu_du_formulaire) $in .= $contenu_du_formulaire;
$in .= \r\n;
//if (fwrite($fp, $in) === false) return false; else echoEcriture dans socket ok;
fputs($fp, $in);
echoEcriture dans socket ok;
fclose($fp);
} |