envoyer des informations en post et en get

Mammouth du PHP | 558 Messages

11 avr. 2008, 12:21

j'ai un formulaire et je voudrais envoye les information en post et en get.

Code : Tout sélectionner

<form action="moteur1.php" method="get"> votre recherche:<input name="recherche" value="<?php echo"$recrherche_produit"; ?>"> <input type="hidden" name="valeur" value="15698456258885"> <button type="submit">rechercher</button>
j'ai essayé.

Code : Tout sélectionner

<form action="moteur1.php" method="get" method="post"> votre recherche:<input name="recherche" value="<?php echo"$recrherche_produit"; ?>"> <input type="hidden" name="valeur" value="15698456258885"> <button type="submit">rechercher</button>
et

Code : Tout sélectionner

<form action="moteur1.php" method="get,post"> votre recherche:<input name="recherche" value="<?php echo"$recrherche_produit"; ?>"> <input type="hidden" name="valeur" value="15698456258885"> <button type="submit">rechercher</button>
je voudrais envoyé recherche dans l'url et valeur en post.
merci

ViPHP
AB
ViPHP | 5818 Messages

11 avr. 2008, 12:42

Si tu dois récupérer recherche, à priori je vois pas ça simple.

Sinon tu peux faire deux formulaires distincts (qui ne paraitront qu'un) et envoyer les deux avec le même bouton. Inconvénient ça ne fonctionnera que si JS est activé.

ViPHP
pjl
ViPHP | 2119 Messages

11 avr. 2008, 12:47

Si tu veux du post pour que l'internaute ne voit pas le champ "valeur", utilise plutôt les sessions, ce sera plus sécurisé.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

11 avr. 2008, 12:49

Les données en Get, ce n'est rien de plus que des données transmises dans l'URL.
Si ton formulaire est en POST, pour envoyer des données en GET, il suffit de les ajouter à l'url de l'action du formulaire

Code : Tout sélectionner

<form action="moteur1.php?valeur=15698456258885" method="post"> votre recherche:<input name="recherche" value="<?php echo"$recrherche_produit"; ?>"> <input type="hidden" name="valeur" value="15698456258885"> <button type="submit">rechercher</button>
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 2287 Messages

11 avr. 2008, 12:49

Tu peux envoyer des paramètres GET à travers un formulaire POST en les écrivant dans l'url spécifiée dans l'attribut "action" de la balise <form>.

EDIT : grilled "à la courtepaille" by Zeus :-)
if(!@work()){ Nespresso(); } else { what(); }
______________________________

ViPHP
AB
ViPHP | 5818 Messages

11 avr. 2008, 12:58

@Zeus, Calimero

Oui, j'avais pensé à ça à priori mais comment fera-t-il pour passer dans l'url une valeur saisie par le visiteur dans le formulaire (en méthod post). C'est pour ça que je disais : si tu dois récupérer recherche...

Eléphant du PHP | 79 Messages

11 avr. 2008, 14:29

Je verrais cette solution :
  • déclaration du formulaire en method="POST"
  • ajout d'un appel js sur le bouton (onClick) qui appele une fonction
  • cette fonction va récupérer les parametres et reformer l'url de destination (le action)
  • submit du formulaire en javascript
Je n'ai pas testé mais je pense que c'est une solution possible... :roll:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

11 avr. 2008, 15:03

@Zeus, Calimero

Oui, j'avais pensé à ça à priori mais comment fera-t-il pour passer dans l'url une valeur saisie par le visiteur dans le formulaire (en méthod post). C'est pour ça que je disais : si tu dois récupérer recherche...
javascript :)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

ViPHP
pjl
ViPHP | 2119 Messages

11 avr. 2008, 16:11

Et passer celle ligne là en session ?
<input type="hidden" name="valeur" value="15698456258885"> 
Ca ne motive personne ?

Eléphant du PHP | 175 Messages

11 avr. 2008, 16:35

question essentielle:
quel est le but de passer la recherche dans l'url (en get)?
si c'est pour pouvoir copier l'url et réafficher le resultat il te manqueras, malgre tout, ta value....

donc on en revient au meme probleme...

Mammouth du PHP | 558 Messages

11 avr. 2008, 19:04

question essentielle:
quel est le but de passer la recherche dans l'url (en get)?
si c'est pour pouvoir copier l'url et réafficher le resultat il te manqueras, malgre tout, ta value....

donc on en revient au meme probleme...
tout simplement si je n'ai pas "valeur" je ne traite pas l'information envoyé.
sa fait parti de la securité

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

11 avr. 2008, 19:17

question essentielle:
quel est le but de passer la recherche dans l'url (en get)?
si c'est pour pouvoir copier l'url et réafficher le resultat il te manqueras, malgre tout, ta value....

donc on en revient au meme probleme...
tout simplement si je n'ai pas "valeur" je ne traite pas l'information envoyé.
sa fait parti de la securité
Sachant qu'il est l'enfance de l'art que d'envoyer des données GET ou POST, et qu'il suffit de regarder le code source pour savoir ce que tu attends comme données, je pense que ton système de sécurité te pose plus de soucis de mise en place qu'il ne t'apporte comme sécurité ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
pjl
ViPHP | 2119 Messages

12 avr. 2008, 12:46

question essentielle:
quel est le but de passer la recherche dans l'url (en get)?
si c'est pour pouvoir copier l'url et réafficher le resultat il te manqueras, malgre tout, ta value....

donc on en revient au meme probleme...
tout simplement si je n'ai pas "valeur" je ne traite pas l'information envoyé.
sa fait parti de la securité
Même réponse que Zeus d'ou ma première intervention sur ce fil : passer cette valeur en variable de sessions.


PJL qui a l'impression de parler dans le vide.

Mammouth du PHP | 558 Messages

12 avr. 2008, 13:52

PJL qui a l'impression de parler dans le vide.
non tu ne parle pas dans le vide c'est juste que si j'ai une session ouverte je ne peut en ouvrir une autre sous peine de supprimé la premiere.
exemple.
si j'ai "$_session['client']" ouverte si j'ouvre une session "$_session['valeur']" la session client sera fermer.
c'est pour cela que je n'ai pas donnée suite a ce que tu as dit.
Sachant qu'il est l'enfance de l'art que d'envoyer des données GET ou POST, et qu'il suffit de regarder le code source pour savoir ce que tu attends comme données, je pense que ton système de sécurité te pose plus de soucis de mise en place qu'il ne t'apporte comme sécurité ;)
je m'en sert comme securité de cette maniere.
<?php
$ver=md5("15698456258885");
?>
<form action="moteur1.php" method="get"> 
votre recherche:<input name="recherche" value="<?php echo"$recrherche_produit"; ?>"> 
<input type="hidden" name="valeur" value="<?php echo"$ver"; ?>"> 
<button type="submit">rechercher</button>
et dans la recup cela donne ceci.
<?php
$ver1=md5("15698456258885"); 
if($ver1==$_POST['valeur'])
{
echo"on traite le champs recherche";
}
else
{}
//on ne fait rien
?>
maintenant je n'ai plus qu'à modifier ma valeur
en fait c'etait pour simplifier que j'ai mis cela comme sa

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

12 avr. 2008, 20:23

non tu ne parle pas dans le vide c'est juste que si j'ai une session ouverte je ne peut en ouvrir une autre sous peine de supprimé la premiere.
exemple.
si j'ai "$_session['client']" ouverte si j'ouvre une session "$_session['valeur']" la session client sera fermer.
:shock:
essaie malgré tout... tu seras certainement étonné ;)

Tu "n'ouvres" pas une nouvelle session mais tu crées une nouvelle variable que tu ajoutes à la même session.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute