Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/11/2010, 20h34   #1
Invité de passage
 
man Free
Inscription : novembre 2010
Messages : 2
Détails du profil
Informations personnelles :
Nom : man Free

Informations forums :
Inscription : novembre 2010
Messages : 2
Points : 1
Points : 1
Par défaut 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&#8242;, $_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 echo”Connexion 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 echo”Ecriture dans socket ok”;
fputs($fp, $in);
echo”Ecriture dans socket ok”;
fclose($fp);
}
freeman25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2010, 20h41   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 815
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 815
Points : 3 440
Points : 3 440
Citation:
J’aimerais cocher un checkbox à travers d'une page web avec la requête POST.
Cocher une checkbox = attribut checked de ton <input>.

Citation:
J’ai donc implémenté une requête POST à partir d'une requête GET.
Je ne vois pas le lien de cause à effet. Pourquoi ne pas envoyer les données avec une requête GET ?

Citation:
Pour le GET le serveur à besoin d’une adresse email et d’un PHPSESSID.
Oui mais si le serveur n'attend que des données en GET il n'ira pas les chercher en POST.

Dans ta fonction tu ne transmets pas le cookie de session. De plus il y a bcp d'en-têtes inutiles dans un premier temps.

Au fait quel est le pb ? As-tu un msg d'erreur ? Un comportement anormal ?

PS : n'oublie pas d'encadrer ton code sur le forum avec le tag code entre crochets.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2010, 19h36   #3
Invité de passage
 
man Free
Inscription : novembre 2010
Messages : 2
Détails du profil
Informations personnelles :
Nom : man Free

Informations forums :
Inscription : novembre 2010
Messages : 2
Points : 1
Points : 1
J'avais plusieurs problèmes mais le gros c'est la compréhension. Je cherche à pouvoir me logger à mon site via le sochet à partir d'une requête POST en PHP, et pouvoir ensuite parcourir les pages en faisant des action équivalent aux cliques sur bouton, tout en restant connecter. J'utilise l'adresse email et le PHPSESSID comme suggérer dans la précédente réponse. Je récupère le PHPSESSID dans le header pendant mon login. A partir de celui-ci j'arrive afficher la page sur laquelle j'aimerais cochet et décocher mon checkbox mais je n'arrive pas à modifier leurs états mais si je me rends sur le site j'arrive facilement à le cocher et décocher. L'implémentation de cette page est un peu fastidieuse car son code source varie selon l'état du checkbox.
J'attache en pièce jointe les codes sources de ma requête et de la page à modifier.
Merci d'avance pour vos réponses.
Fichiers attachés
Type de fichier : php essai.php (1,1 Ko, 2 affichages)
Type de fichier : php inc.php (2,6 Ko, 0 affichages)
Type de fichier : txt codes source html.txt (351 octets, 0 affichages)
freeman25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h31.


 
 
 
 
Partenaires

Hébergement Web