[ NON RESOLVABLE ] Envoi variable POST dans un GET et non l'inverse ?

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 : [ NON RESOLVABLE ] Envoi variable POST dans un GET et non l'inverse ?

par Cobaye » 07 janv. 2008, 09:44

J'ai cette fonction qui me permet d'envoyer un formulaire en POST en GET, l'ai utiliser pour utiliser un ajax bien particulier, regarde aussi la fonction PHP 5 http_build_query.

Code : Tout sélectionner

function Post($url,$args){ $buf=""; $url = parse_url($url); if(isset($url['port'])){ $port = $url['port']; }else{ $port = 80; } if (!$fp = fsockopen ($url['host'], $port, $errno, $errstr)){ $out = "faux"; }else{ $size = strlen($args); $request = "POST ".$url['path']." HTTP/1.1\n"; $request .= "Host: ".$url['host']."\n"; $request .= "Connection: Close\r\n"; $request .= "Content-type: application/x-www-form-urlencoded\n"; $request .= "Content-length: ".$size."\n\n"; $request .= $args."\n"; $fput = fputs($fp, $request); while (!feof($fp)) { $buf .= fgets($fp, 128); } fclose ($fp); $out = $buf; } return $out; } $data = "Nom=".urlencode(utf8_decode($_POST['Nom'])); $data.= "&Prenom=".urlencode(utf8_decode($_POST['Prenom'])); $data.= "&Organisme=".urlencode(utf8_decode($_POST['Organisme'])); $data.= "&Categorie=".urlencode(utf8_decode($_POST['Categorie'])); $data.= "&Adresse1=".urlencode(utf8_decode($_POST['Adresse1'])); $data.= "&Adresse2=".urlencode(utf8_decode($_POST['Adresse2'])); $data.= "&Adresse3=".urlencode(utf8_decode($_POST['Adresse3'])); $data.= "&CodePostal=".urlencode(utf8_decode($_POST['CodePostal'])); $data.= "&Ville=".urlencode(utf8_decode($_POST['Ville'])); $data.= "&Telephone=".urlencode(utf8_decode($_POST['Telephone'])); $data.= "&Email=".urlencode(utf8_decode($_POST['Mail'])); $data.= "&Fax=".urlencode(utf8_decode($_POST['Fax'])); $data.= "&Newsletter=".urlencode(utf8_decode($_POST['Newsletter'])); $data.= "&Login=".urlencode(utf8_decode($_POST['Login'])); $retour = Post("http://www.ressources-tourisme.com/inscriptionExterne.asp",$data);

par Cyrano » 06 janv. 2008, 22:33

Pour info, [NON RESOLVABLE] en français, ça se dit [INSOLUBLE] ;)

par ItaloBADI » 06 janv. 2008, 19:12

Merci d'avoir pris le temps de regarder ma demande.

Je pense que je vais d'abord faire indiquer le nom par formulaire POST, que je récupère en variable NOM et ensuite, j'ajoute la variable NOM dans le code de la carte, qui lui n'aura que des GET...

par iclo » 06 janv. 2008, 18:55

Je ne pense pas, mais je peux me tromper.

par ItaloBADI » 06 janv. 2008, 18:46

Merci pour ta réponse.

Non, le clic envoie à la page, avec les GET x et y en info, mais pas le POST évidemment.
Là je cherche comment ajouter en GET un nom entré par un visiteur.

Le problème, c'est que je ne connais pas du tout le Java Script.


Donc, en PHP, il n'y a pas de solution ?

par iclo » 06 janv. 2008, 18:43

Ton formulaire il est validé par le clique sur la map ?
Je pense que tu devrais pouvoir passer par du javascript, pour lorsqu'on clique sur la carte mettre les information issues de celle-ci dans le formulaire (dans des variables hidden) et ensuite le valider.

[ NON RESOLVABLE ] Envoi variable POST dans un GET et non l'

par ItaloBADI » 06 janv. 2008, 18:02

Bonjour à tous, et bonne année !

Voilà, j'ai une question bizarre lol :

je sais qu'on peut ajouter une variable GET dans un formulaire POST.

Mais moi ce que j'aimerais faire en PHP, c'est une carte cliquable.
Je l'ai faite : elle fonctionne.
Chaque case de ma carte envoie vers la même page.

pas obligatoire mais pour info, si ça aide, le code initial de ma carte :

Code : Tout sélectionner

<table cellspacing="0" cellpadding="0" border="0"> <? // on crée la requête SQL $sql = "SELECT carte FROM module_bataille where atreides='".$_SESSION['login']."' OR harkonnen='".$_SESSION['login']."' "; // on envoie la requête $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $data = mysql_fetch_assoc($req); { $carte=$data['carte']; } // Récupération ordonnée (d'abord suivant la ligne, puis suivant la colonne) des cases de la carte $resource = mysql_query("SELECT x, y, image FROM carte where carte='$carte' ORDER BY y, x"); $current_y = -1; while($record = mysql_fetch_array($resource)) { // Si la ligne courante n'est pas la même que celle de l'enregistrement, on affiche la fin de la ligne et on en commence une autre if($current_y != $record["y"]) { // Si cas particulier du premier passage, on n'affiche pas la fin de la ligne (puisqu'il n'y en a pas encore d'ouverte) if($current_y != -1) { ?> </tr> <? } // Fin de if($current_y != -1) ?> <tr> <? // Une fois le changement de ligne fait, on met à jour la ligne courante $current_y = $record["y"]; } // fin de if($current_y != $record["y"]) // Affichage de l'image // on crée la requête SQL ?> <td> <? // on regarde si la case est occupée par un perso $sql = "SELECT per_nom FROM carte_perso where per_x= '".$record["x"]."'and per_y= '".$record["y"]."'and bataille='$bataille'"; $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); // on compte le nombre de résultats $res = mysql_num_rows($req); if($res!=0) //Il en trouve un au moins { // on crée la requête SQL $sql = "SELECT per_nom,per_x, per_y,per_image, per_nom, nbsoldats FROM carte_perso where per_x= '".$record["x"]."'and per_y= '".$record["y"]."'and bataille='$bataille'"; // on envoie la requête $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $data = mysql_fetch_assoc($req); { ?> <a href="test2.php?x=<?=$record["x"]?>&y=<?=$record["y"]?>" title="(Coordonnées : <?=$data["per_x"]?> <?=$data["per_y"]?>, <?=$data["per_image"]?> <?=$data["per_nom"]?>, <?=$data["nbsoldats"]?> soldats )" > <img src="style/images/<?=$data['per_image']?>.png" width="40" height="40" alt="(Coordonnées : <?=$data["per_x"]?>, <?=$data["per_y"]?>, <?echo "\n"?> <?=$data["per_image"]?> <?=$data["per_nom"]?>, <?echo "\n"?> <?=$data["nbsoldats"]?> soldats )" style="display: block;" /></a> <? } } else // aucun perso sur cette case { ?> <a href="test2.php?x=<?=$record["x"]?>&y=<?=$record["y"]?>" title="(Coordonnées : <?=$record["x"]?>, <?=$record["y"]?>, terrain : <?=$record["image"]?> )" > <img src="style/images/<?=$record["image"]?>.png" width="40" height="40" alt="(Coordonnées : <?=$record["x"]?>, <?=$record["y"]?>,<?echo "\n"?> type de terrain : <?=$record["image"]?> )" style="display: block;" /></a> <? } ?></td> <? } // Fin de while($record = mysql_fetch_array($resource)) ?> </tr> </table>
Ce que je voudrais faire, c'est que le visiteur mette un nom de camp dans une case, puis clique sur la carte pour positionner ce camp.

Soit en fait, que le lien sur la carte envoie vers une autre page non seulement les coordonnées x et y en GET, mais aussi le nom en POST.


J'ai tenté ça :

Code : Tout sélectionner

<form method="post"> Nom du camp : <input type="text" name="nomcamp" /><br/><br/> ( insertion ici du code de la carte ci-dessus ) </form>
Le problème est que le lien de ma carte ne peut pas activer le formulaire comme je l'aurais espéré dans mes rêves de débutant. lol

Savez-vous s'il existe une solution à mon problème ?
Solution en PHP évidemment...

Après si quelqu'un sait comment tout envoyer en GET, ça ne me dérange pas.

Merci d'avance...