IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Le formulaire en POST ne passe pas en prod mais fonctionne en dev


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2006
    Messages : 75
    Par défaut Le formulaire en POST ne passe pas en prod mais fonctionne en dev
    Bonjour à tous,

    Je rencontre un problème avec l'utilisation d'un formulaire (méthode post) dans une page dont l'url est réécrite. Le comportement me semble étrange et je me demandais si quelqu'un avait déjà rencontré une situation équivalente (et surtout s'il avait trouvé une solution), parce que je suis bloqué la dessus sans comprendre.

    La page web qui contient le formulaire est également celle qui traite les infos du formulaire (vérifications des champs en PHP envoi par mail si correctement renseignés).

    En local, le formulaire fonctionne très bien, les données sont correctement récupérées. Sur le serveur de production, le formulaire ne fonctionne pas : il ne transmet aucune donnée.

    Les versions Apache et PHP ne sont pas tout à fait les mêmes des deux cotés, mais j'ai du PHP 5 en local comme en production.

    Aucune erreur n'est générée... c'est comme si la validation du formulaire n'avait d'autre effet que de rafraichir la page.

    Voici pour info la ligne de réécriture (qui fonctionne très bien) pour la page en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^([0-9a-z\-]+)\/annonce-([0-9a-z\-]+)-([0-9]+)-([0-9]+)\.php$ annonce.php?agce_nom=$1&ance_id=$3&langue=$4 [L]
    Si quelqu'un a une explication, je le remercie par avance

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Quelle est l'URL qui te permet d'afficher le formulaire pour la première fois et peux-tu donner le code HTML du formulaire (balise ouvrant <form>) ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2006
    Messages : 75
    Par défaut
    Je te remercie pour ta réponse.

    Voici la page qui contient le formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    charlieu-brionnais/annonce-f6-chauffailles-le-haut-16-1.php
    qui correspond à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^([0-9a-z\-]+)\/annonce-([0-9a-z\-]+)-([0-9]+)-([0-9]+)\.php$ annonce.php?agce_nom=$1&ance_id=$3&langue=$4 [L]
    Dans cette page, je génère donc l'url qui se trouve dans action de manière à ce qu'elle soit identique à la page sur laquelle on se trouve :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<form name=\"form1\" method=\"post\" action=\"".$agce_nom."/annonce-".$type_libelle."-".$secteur."-".$ance_id."-".$page_langue.".php\" style=\"color:#999999;\">";
    En espérant que ça pourra t'aider à comprendre quelque chose

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Oui mais justement, que vaut l'attribut action dans le code HTML reçu par le navigateur, avant de cliquer sur le bouton d'envoi du formulaire ?

    Dans annonce.php, comment fais-tu pour récupérer les données du formulaire (code PHP) ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2006
    Messages : 75
    Par défaut
    Si je prend par exemple cette page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    charlieu-brionnais/annonce-fermette-brionnais-70-1.php
    L'attribut action du formulaire au premier affichage de la page est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    charlieu-brionnais/annonce-fermette-brionnais-70-1.php
    Et quand je valide le formulaire (avec ou sans données) la page se recharge avec exactement le même attribut action.

    Au début de cette page, je récupère les valeurs du formulaire via PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $email = !isset($_POST["txt_email"]) ? "" : trim($_POST["txt_email"]); //Idem pour les autres variables
    Et qu'il s'agisse du premier affichage de la page ou d'un rechargement provoqué par la validation du formulaire, les variables sont vides...

    Le plus dingue, c'est que ça marche très bien en local; Quand je valide le formulaire, les variables sont correctement transmises et récupérées.

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Citation Envoyé par Benzz Voir le message
    Et quand je valide le formulaire (avec ou sans données) la page se recharge avec exactement le même attribut action.
    Ca, ça prouve que l'URL rewriting fonctionne bien, sinon tu n'aurais pas $type_libelle etc. qui existerait.

    Honnêtement, c'est très étrange. Est-ce que tu peux afficher le contenu (avec print_r) des variables $_SERVER, $_GET et $_POST quand tu postes ton formulaire ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. modalpopuextender ne s'affiche pas en prod, mais en dev oui
    Par Carber59 dans le forum ASP.NET Ajax
    Réponses: 12
    Dernier message: 16/12/2012, 17h09
  2. [XSLT] XSL qui ne fonctionne pas en Java mais fonctionne ailleurs
    Par youkoun dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 07/12/2012, 09h21
  3. [JpGraph] Graphique ne s'affiche pas en ligne mais fonctionne en local
    Par ben.IT dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 31/07/2009, 12h01
  4. Réponses: 5
    Dernier message: 23/06/2006, 14h22
  5. [method post] argument qui ne passe pas
    Par crevettes59000 dans le forum Langage
    Réponses: 3
    Dernier message: 30/12/2005, 15h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo