Problème bizarre de formulaire POST

Problème bizarre de formulaire POST - PHP - Programmation

Marsh Posté le 22-02-2011 à 11:05:57    

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.

Reply

Marsh Posté le 22-02-2011 à 11:05:57   

Reply

Marsh Posté le 22-02-2011 à 14:38:28    

Sans voir le code, il est très difficile de vous aider.
 
Ne pourriez-vous pas nous montrer quelques lignes,
au moins la ligne du <form...> et celle de définition du bouton de validation ?

Reply

Marsh Posté le 22-02-2011 à 15:04:48    

Pas de soucis mais ce n'est pas un problème de code ou quoi que ce soit ... C'est hyper bizarre !
 
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 comrpendre 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 :  
<?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" />
</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" />  
</form>
 
et test2.php :  
<?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 !
 
pas exemple cette page : http://www.musicdestock.fr/test2.php
 
Le problème est qu'il a essayé sur 2 postes différents ... sinon là sa config est win vista avec la dernière version de firefox... mais çà a été testé avec la même config et pas de soucis (AGENT=Mozilla/5.0 (Windows, U, Windows NT 6.0, fr, rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13).
 
Ce client ... quand il est par exemple sur cette page : http://www.musicdestock.fr/contact [...] _contact=1 s'il clique directement sur envoyer il n'a pas de message d'erreur (car pas de $_POST donc pas d'erreur), s'il remplit tous les champs .. le message n'est pas envoyé.
 
De plus ce n'est pas un problème de site mais de client ... je ne sais pas s'il y a une config ou quoi qui LUI pose problème QUE pour les formulaires en method POST qui renvoit sur le même page ! Car sur une page de résultat différente çà fonctionne ... c'est vraiment à ne rien y comprendre.


Message édité par musician le 22-02-2011 à 17:35:43
Reply

Marsh Posté le 22-02-2011 à 15:23:03    

Est-ce vraiment le code ?
 
Normalement, c'est $_POST au lieu de $POST.

Reply

Marsh Posté le 22-02-2011 à 15:24:52    

billgatesanonym a écrit :

Est-ce vraiment le code ?
 
Normalement, c'est $_POST au lieu de $POST.


Non ce n'est pas vraiment le code ... désolé
aller je fais un copier coller du test2.php ...  
 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Test</title>
</head>
<body>
 
<?php
if(isset($_POST["message"]))
 echo "<hr />VOTRE MESSAGE : ".$_POST["message"]."<hr />";
?>
<hr /> TEST 2 <hr />
<form action="test2.php" method="POST">
 <textarea name="message"></textarea>
 <br /><br />
 <input type="submit" value="ENVOYER"></input>  
</form>
 
</body>
</html>

Reply

Marsh Posté le 22-02-2011 à 15:27:52    

Oui, mais test2.php est le code qui marche. Désolé, mais je préférerais voir test1.php qui est le code qui ne marche pas.

Reply

Marsh Posté le 22-02-2011 à 15:44:34    

ce ne sont que des noms bill  
le code ici de test2.php ne fonctionne pas pour lui  
tout comme sur le formulaire de contact http://www.musicdestock.fr/contact [...] _contact=1, tout comme n'importe quel formulaire en POST qui renvoie sur la même page.
Lui : son message ne s'affiche pas s'il en saisi un et qu'il clique sur envoyer
 
Ce n'est vraiment pas un problème de code ... puisque çà fonctionne parfaitement pour les millier de clients qu'on a.


Message édité par musician le 22-02-2011 à 17:35:14
Reply

Marsh Posté le 22-02-2011 à 17:03:19    

Le lien ne marche pas :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 22-02-2011 à 17:39:00    

pb de copier coller ... désolé c'est corrigé
En tout cas en résumé pour ce visiteur :  
- formulaire de recherche : OK car c'est du GET  
- formulaire qui affiche le résultat sur la même page : ERREUR y'a rien dans $_POST
- même formulaire mais en dupliquant code de page1 sur page2 et en affichant le résultat sur la page2 (action="page2" ) çà marche !


Message édité par musician le 22-02-2011 à 17:39:16
Reply

Marsh Posté le 22-02-2011 à 17:42:37    

J'ai eu le message "Votre message a été envoyé à notre équipe." mais pas de réaffichage de mon message, c'est normal?
 
ps : ton site rame beaucoup, faut être patient :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 22-02-2011 à 17:42:37   

Reply

Marsh Posté le 22-02-2011 à 18:16:00    

Enfin, je vois les lignes qui m'intéressent (et qui sont différentes de celles de l'exemple trop simplifié) :

Code :
  1. <form action="/contact-form.php?id_contact=1" method="post" class="std">
  2. ...
  3.  <p class="textarea">
  4.   <label for="message">Message</label>
  5.    <textarea id="message" name="message" rows="7" cols="35"></textarea>
  6.  </p>
  7.  <p class="submit">
  8.   <input type="submit" name="submitMessage" id="submitMessage" value="Envoyer" class="button_large" />

La première chose qui parait bizarre est d'avoir à la fois du Get et du Post.
Ne serait-il pas possible d'être cohérent, par exemple en enlevant id_contact de l'URL pour le mettre dans un champ caché ?

Reply

Marsh Posté le 22-02-2011 à 18:23:11    

billgatesanonym a écrit :

Enfin, je vois les lignes qui m'intéressent (et qui sont différentes de celles de l'exemple trop simplifié) :

Code :
  1. <form action="/contact-form.php?id_contact=1" method="post" class="std">
  2. ...
  3.  <p class="textarea">
  4.   <label for="message">Message</label>
  5.    <textarea id="message" name="message" rows="7" cols="35"></textarea>
  6.  </p>
  7.  <p class="submit">
  8.   <input type="submit" name="submitMessage" id="submitMessage" value="Envoyer" class="button_large" />

La première chose qui parait bizarre est d'avoir à la fois du Get et du Post.
Ne serait-il pas possible d'être cohérent, par exemple en enlevant id_contact de l'URL pour le mettre dans un champ caché ?


 
- j'ai mis ce lien juste pour que ce soit directement webmaster qui soit sélectionné mais sinon sur le site il n'ya pas d'accès direct comme cela. Il faut choisir dans le select donc oui c'est cohérent sur site. C'est juste là dans le message du forum ;)

Reply

Marsh Posté le 22-02-2011 à 18:24:51    

rufo a écrit :

J'ai eu le message "Votre message a été envoyé à notre équipe." mais pas de réaffichage de mon message, c'est normal?
 
ps : ton site rame beaucoup, faut être patient :/


 
Oui c'est normal... Je ne réaffiche pas le message.  
 
Le site rame ? Tu as dû tomber au moment où une msie à jour des fiches produits a été lancée... dsl

Reply

Marsh Posté le 23-02-2011 à 09:50:36    

09h51 : le site rame encore. :/ Encore une MAJ des fiches produits? J'ai décidément pas de chance...
 
30s pour afficher les amplis acoustiques, 20s pour les effets voix... C'est beaucoup trop. Un utilisateur se barre généralement au bout de 8s max.


Message édité par rufo le 23-02-2011 à 09:56:51

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 12-03-2011 à 22:40:03    

si tu utilise du javascript verifi que ton utilisateur ne l'a pas desactivé sur sa machine on sais jamais pasque c'est bizar que sa marche sur d'autre et pas lui donc sa ne peut etre qu'un probleme coté client et pas coté serveur alor ne neglige pas cette piste on sai jamais

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed