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

Langage PHP Discussion :

Problème bizarre de formulaire POST


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut Problème bizarre de formulaire POST
    Bonjour,

    je fais appel au forum car j'ai un problème que je n'arrive pas à résoudre mais j'ai identifié la source.
    Je n'ai jamais vu cela et je ne comprends pas d'où cela peut venir (config. d'apache ? mod_security ?)
    Voilà ce qu'il se passe : j'ai un visiteur qui m'a fait part d'une impossibilité d'envoyer un message sur mon site ou de remplir un formulaire d'inscription.
    Ce visiteur a tenté sur 2 ordinateurs différents à des endroits différents et c'est ce qui m'inquiète.

    Alors sur le site, il n'a aucun problème avec les formulaire de recherche qui sont en METHOD="get".
    Mais dès qu'il s'agit d'un formulaire en METHOD="POST" c'est comme s'il n'envoyait auncune information ! Quel que soit le formulaire sur mon site ... (j'ai créé une page de test avec un simple formulaire).

    Je demande à ce visiteur d'aller sur un autre site qui utilise un formulaire method=POST : cela fonctionne mais c'est un page de résultat différente de la page du formulaire.

    Je lui fais donc tester une derniere chose :
    j'ai sur une page test1.php un formaulaire en POST dont le résultat est sur une autre page (test2) c'est à dire le <form action="test2.php" method="post"> et là comme par magie sur la page test2.php je récupère les valeurs en POST !
    Mais si je tente de récupérer les valeur sur la même page que celle du formulaire alors c'est comme s'il n'envoyait aucune information.

    A noter que cela n'arrive qu'avec quelques visiteurs car tous mes tests et pleins plein d'autres visiteurs arrivent à créer leur compte etc.

    Quelqu'un a-t-il déjà rencontré ce genre de problème ou bien quelqu'un a-t-il une idée ?

    Merci beaucoup.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 119
    Par défaut
    un pt'it peu de code?
    tu n'utiliserais pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action=<?php echo $_SERVER['PHP_SELF'] ; ?>
    ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut
    le code est bon et basique ...

    dans test1.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <form action="test1.php" method="post>
    ...

    sur cette même page avant je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(isset($_POST['variable']))
    echo "YES : variable=".$_POST['variable'];
    Bref, cela fonctionne pour la plupart des visiteurs sauf un qui me pose ce soucis hier !

    Et ce qui est super étrange c'est que si j'ai la même chose mais avec un action sur une page différente alors le $_POST['variable'] contient une valeur....

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 119
    Par défaut
    que te dit
    ?
    ça n'arrive qu'à 'lui', ou a plusieurs? Je ne veux pas le blâmer, mais peut-être qu'il clique avec le bouton de l'aspirateur...
    le submit ne serait pas intercepté par du js? ça expliquerais un comportement différent côté client... (js désactivé, différences d'interprétations, etc...)
    enfin, c'est quelques pistes...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut
    Eh bien en fait il n'y a aucune valeur en POST qui passe pour lui SI ET SEULEMENT SI la page de formulaire est le même que la page de résultat

    Pas de JS rien du tout. Pour comprendre je lui ai fait un formulaire de ce qu'il y a de plus basique : 1 form, un champ text et un bouton submit.

    Si j'ai ma page test1.php avec le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    if(isset($_POST['message'])
    echo "MESSAGE RECU : ".$_POST['message'];
    ?>
    <form action="test1.php" method="POST">
    	<textarea name="message"></textarea>
    	<br /><br />
    	<input type="submit" value="ENVOYER"></input>		
    </form>
     
    ===> Lui çà n'affiche jamais le message !
     
    MAIS si j'ai ma page test1.php 
    <form action="test2.php" method="POST">
    	<textarea name="message"></textarea>
    	<br /><br />
    	<input type="submit" value="ENVOYER"></input>		
    </form>
    et test2.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    if(isset($_POST['message'])
    echo "MESSAGE RECU : ".$_POST['message'];
    ?>
    ===> Alors le message s'affiche pour lui ! C'est à en perdre la tête.


    Donc pas de soucis de code, de navigateur client etc. C'est un problème vraiment spécial !

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 119
    Par défaut
    essaye tout de même avec $_SERVER['PHP_SELF'], comme indiqué plus haut, juste pour voir...

  7. #7
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Je te recommande d'utiliser 'empty' en lieu et place de 'isset', car ce qui nous intéresse c'est de savoir si $_POST['message'] n'est pas vide et non pas s'il existe.

    Note: empty à le même comportement que isset pour les index non-initialisés, il renvoie true si la variable/index n'existe pas donc inutile de faire les deux.

Discussions similaires

  1. Problème avec les formulaires (POST)
    Par santerref dans le forum Langage
    Réponses: 5
    Dernier message: 30/11/2010, 21h02
  2. Problème lors d'un post de formulaire
    Par LeCogiteur dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 25/03/2009, 12h02
  3. Réponses: 4
    Dernier message: 29/11/2007, 13h09
  4. Problème formulaire POST avec SSO
    Par niluge22 dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 23/07/2007, 17h35

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