URL Rewrite et transmis. variables depuis formulaire en POST

WRInaute discret
Bonjour à tous,

un petit souci aujourd'hui pour transmettre des variables issues d'un formulaire en POST avec URL rewriting

le code du formulaire:
Code:
<form action="commande-3-mode-paiement.htm" method="post">
Nom: <input type="text" name="nom" size="20" value="<? echo $nom ?>">
Prenom: <input type="text" name="prenom" size="15" value="<? echo $prenom ?>">
Adresse: <input type="text" rows="3" cols="50" name="adresse" size="55" value="<? echo $adresse ?>">
Code Postal: <input type="text" name="cp" size="5" value="<? echo $cp ?>">
Ville: <input type="text" name="ville" size="30" value="<? echo $ville ?>">
Email: <input type="text" name="email" size="20" value="<? echo $email ?>">
<input type="submit" value="-> Etape 3: Valider vos coordonn&eacute;es ->">
</form>
(j'ai enlevé tous les détails de mise en forme)

La rewriterule associée aux pages "commande"
Code:
RewriteRule ^commande-([0-9]+)-.*\.htm$ index.php?page=bdc&etape=$1 [L]
Les URL possibles:
commande-1-modifier-panier.htm
commande-2-valider-coordonnees.htm
commande-3-mode-paiement.htm

le code de récupération des variables (ex avec "nom")
Code:
if( isset( $_POST['nom'] ) ) $nom=$_POST['nom'];

le but, passer en POST mes variables nom, prenom, adresse... à commande-3-mode-paiement.htm qui réceptionne les variables, les contrôle et si tout va bien les ajoute en base avant de proposer au client le choix du mode de paiement

le souci c'est que les variables arrivent vides et du coup le contrôle demande un retour sur la saisie des coordonnées en indiquant tous les champs requis non remplis

je ne comprend pas ce qui cloche, si vous avez des idées ;)
 
WRInaute discret
37 lectures et pas une piste, si vous voulez plus de détails, des éclaircissements, n'hésitez pas, je suis un peu coincé là et je ne vois pas pourquoi ça ne passe pas :?:
 
WRInaute impliqué
Je contournerai le pb en appelant directement la page php dans ton formulaire.

Je me doute que c'est ce que tu veux éviter justement, mais je n'ai jamais combiné du post et du get dans une même page, je ne sais même pas si c'est possible du coup.
 
WRInaute discret
oui c'est bien ce que j'aimerais éviter tu as vu juste ;)

quant à combiner POST et GET, en fait je ne combine pas, je passe les variables en POST avec le formulaire et je les récupère en POST sur la page suivante, il n'y a pas de variable passée en GET dans ce cas :)

merci pour ton point de vue en tout cas ;)
 
WRInaute accro
Bonjour,

Je suppose que le problème est que tu passes tes variables par POST, mais que ta réécriture d'URL exige un GET (variables qui suivent le "?").

Jean-Luc
 
WRInaute discret
jeanluc a dit:
Je suppose que le problème est que tu passes tes variables par POST, mais que ta réécriture d'URL exige un GET (variables qui suivent le "?").
je ne pense pas, voici la rewriterule:
Code:
RewriteRule ^commande-([0-9]+)-.*\.htm$ index.php?page=bdc&etape=$1 [L]
et l'URL appelée par le formulaire:
Code:
commande-3-mode-paiement.htm
d'ailleurs le problème n'est pas que je n'arrive pas sur la bonne page mais que les variables du formulaires, passées en POST arrivent vides, donc la variable utilisée pour la réécriture d'URL passe bien, elle est dans l'URL d'appel et pas dans un champ hidden du formulaire par exemple ;)

merci pour la piste en tout cas :)
 
WRInaute accro
Je pense que toute réécriture ou redirection implique un GET. De plus, si je comprends bien ce que tu fais, tes variables page et etape sont elles bien passées en GET.

Jean-Luc
 
Nouveau WRInaute
Salut Lomic2!

Je comprends ton problème et j'en suis malheureusement au même point. Je me demande si la méthode POST et l'url rewriting ne sont pas incompatible. Ou alors il y a peut être un paramètre à régler sur le serveur pour que le script POST soit transmis à la page réelle...

Si quelqu'un a une idée, je lui en serais reconnaissant :)
 
WRInaute discret
p'tain la loose, je suis sur un souci de transmission de variables PHP mixées avec de l'URL rewrite, je cherche sur google, je tombe sur ce sujet, pile poil mon souci, je lis et là je commence à trouver que ça me rappelle un truc, je regarde l'auteur du sujet: moi-même en mai 2008 :lol:

bon je réponds quand même avec la solution que j'utilise pour contourner le problème, peut-être pas la plus belle mais bon...

dans l'action du form, je mets index.php et je lui passe en input type="hidden" les paramètres php qui vont bien ;)
 
Discussions similaires
Haut