Problème de formulaire PHP (POST)
Résolu/Fermé
A voir également:
- Problème de formulaire PHP (POST)
- Formulaire de réclamation facebook - Guide
- Easy php - Télécharger - Divers Web & Internet
- Formulaire de reclamation instagram - Guide
- Le formulaire rempli - Guide
- Confirmer le nouvel envoi du formulaire err_cache_miss - Forum Google Chrome
38 réponses
Neliel
Messages postés
6146
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 692
11 mai 2010 à 16:17
11 mai 2010 à 16:17
J'ai posté un sujet sur www.siteduzero.com...
Une des réponses propose ceci:
"mouais...
la c'est vraiment etrange...
sur firefox tu peux telecharger le plugin "tamper data"
quand tu le lance tu peux intercepter les requetes. Tu verra déja si elles sont meme plus envoyées par le navigateur ou si c'est php qui les intercepte plus
"
Une des réponses propose ceci:
"mouais...
la c'est vraiment etrange...
sur firefox tu peux telecharger le plugin "tamper data"
quand tu le lance tu peux intercepter les requetes. Tu verra déja si elles sont meme plus envoyées par le navigateur ou si c'est php qui les intercepte plus
"
Neliel
Messages postés
6146
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 692
11 mai 2010 à 16:22
11 mai 2010 à 16:22
Essaie ça:
<p>
<form action="test.php" method="post">
<input type="text" name="txt" />
<input type="submit" value="Envoyer" />
</form>
<br />
</p>
<?php
if(isset($_POST['txt']))
{
echo 1;
echo $_POST['txt'];
}
?>
Afin de vérifier si la variable existe, s'il affiche le 1, elle existe mais vide sinon elle n'existe carrément pas.
<p>
<form action="test.php" method="post">
<input type="text" name="txt" />
<input type="submit" value="Envoyer" />
</form>
<br />
</p>
<?php
if(isset($_POST['txt']))
{
echo 1;
echo $_POST['txt'];
}
?>
Afin de vérifier si la variable existe, s'il affiche le 1, elle existe mais vide sinon elle n'existe carrément pas.
Bonjour,
J'ai eu un problème assez similaire à darkvandrech.
J'ai installé XAMP.
Et depuis ca marche.
PS : lorsqu'on installe XAMP, un fichier htaccess est nouvellement créé.
Je ne sais pas si cela pourra aider.
Bonne chance !
J'ai eu un problème assez similaire à darkvandrech.
J'ai installé XAMP.
Et depuis ca marche.
PS : lorsqu'on installe XAMP, un fichier htaccess est nouvellement créé.
Je ne sais pas si cela pourra aider.
Bonne chance !
jeangilles
Messages postés
816
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
17 juillet 2012
186
11 mai 2010 à 16:22
11 mai 2010 à 16:22
Tu pourrais pas essayer de rajouter
Tout en haut de la page ?
Ca permettrait de voir s'il y a des warnings ou des notices
<?php error_reporting(E_ALL); ?>
Tout en haut de la page ?
Ca permettrait de voir s'il y a des warnings ou des notices
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Grace à WAMP j'ai aussi les fichiers de log de apache :
Apache error log :
[Tue May 11 16:18:27 2010] [error] [client 127.0.0.1] PHP Notice: Undefined index: champ in C:\\wamp\\www\\test.php on line 17, referer: http://localhost/test.php
Apache acces log :
127.0.0.1 - - [11/May/2010:16:18:27 +0200] "POST /test.php HTTP/1.1" 200 562
Donc une requete POST a bien été envoyer à Apache et à priorie le problème vient d'ailleurs (enfin si j'ai bien compris ^^).
Apache error log :
[Tue May 11 16:18:27 2010] [error] [client 127.0.0.1] PHP Notice: Undefined index: champ in C:\\wamp\\www\\test.php on line 17, referer: http://localhost/test.php
Apache acces log :
127.0.0.1 - - [11/May/2010:16:18:27 +0200] "POST /test.php HTTP/1.1" 200 562
Donc une requete POST a bien été envoyer à Apache et à priorie le problème vient d'ailleurs (enfin si j'ai bien compris ^^).
jeangilles
Messages postés
816
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
17 juillet 2012
186
11 mai 2010 à 16:28
11 mai 2010 à 16:28
undefined index : champ ?
line 17 ?
T'es sûr de nous avoir posté la bonne page ? ^^
line 17 ?
T'es sûr de nous avoir posté la bonne page ? ^^
Je viens de tester de tout virer du dossier www et de juste laisser un fichier index.php
Et la pour augmenter le mystère sa marche.
Donc le problème viendrait d'un fichier tiers.
<form name="form1" method="post" action="index.php"> <p> <input name="test" type="text" id="test"> </p> <p> <input type="submit" name="Submit" value="Envoyer"> </p> </form> <?php echo $_POST['test']; ?>
Et la pour augmenter le mystère sa marche.
Donc le problème viendrait d'un fichier tiers.
jeangilles
Messages postés
816
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
17 juillet 2012
186
Modifié par jeangilles le 11/05/2010 à 16:32
Modifié par jeangilles le 11/05/2010 à 16:32
Ha mais attends, je viens de comprendre je pense !
ton fichier test.php là, il n'était pas à la racine avant si ?
Et tu en avais pas un autre à la racine ?
parce que selon les configs des serveurs, les "./index.php" peuvent être différents de "index.php"
ton fichier test.php là, il n'était pas à la racine avant si ?
Et tu en avais pas un autre à la racine ?
parce que selon les configs des serveurs, les "./index.php" peuvent être différents de "index.php"
Neliel
Messages postés
6146
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 692
11 mai 2010 à 16:34
11 mai 2010 à 16:34
Par défaut, c'est pareil... en tout cas, cela l'est pour EasyPHP...
jeangilles
Messages postés
816
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
17 juillet 2012
186
Modifié par jeangilles le 11/05/2010 à 16:38
Modifié par jeangilles le 11/05/2010 à 16:38
Par défaut oui, peut être ... Mais un htaccess qui traine dans le coin, un php.ini modifié ou autre et c'est le bordel ^^
D'ailleurs, son test.php qui posait erreur se trouvait à la racine :
D'ailleurs, son test.php qui posait erreur se trouvait à la racine :
referer: [http://localhost/test.php]
fxtaa
Messages postés
1050
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
2 avril 2015
74
11 mai 2010 à 16:36
11 mai 2010 à 16:36
ca a toujours fonctionner, c'est juste qu'il nous a pas envoyer la page complete donc voila....
Neliel
Messages postés
6146
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 692
11 mai 2010 à 16:38
11 mai 2010 à 16:38
Si on vire carrément htaccess... qu'est-ce qui se passe ? Il se recrée derrière ?
J'ai verifier mais ce n'est malheureusement pas ça.
Donc je vais épaissir ce mystère, pour accéder a ce site je passe en local sur mon poste index.php marche.
Et si je passe par mon bureau Citrix (en gros comme si un poste distant ce connecte) le $_POST marche plus.
Donc je vais épaissir ce mystère, pour accéder a ce site je passe en local sur mon poste index.php marche.
Et si je passe par mon bureau Citrix (en gros comme si un poste distant ce connecte) le $_POST marche plus.
Neliel
Messages postés
6146
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 692
11 mai 2010 à 16:40
11 mai 2010 à 16:40
Citrix ? Je croyait que tu testais uniquement en local...
fxtaa
Messages postés
1050
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
2 avril 2015
74
11 mai 2010 à 16:41
11 mai 2010 à 16:41
rajoute ton adresse ip local dans les exceptions de ton proxy quand tu passes par citrix
Neliel
Messages postés
6146
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 692
11 mai 2010 à 16:41
11 mai 2010 à 16:41
Essaye de supprimer le fichier htaccess... si j'ai bien compris, il devrait se recréer par défaut...
Par contre les commentaire ci-dessus mon fait penser, j'ai modifier httpd.conf comme ci :
# # Listen: Allows you to bind Apache to specific IP addresses and/or # ports, instead of the default. See also the <VirtualHost> # directive. # # Change this to Listen on specific IP addresses as shown below to # prevent Apache from glomming onto all bound IP addresses. # Listen 10.75.30.218:80 Listen 127.0.0.1:80
Neliel
Messages postés
6146
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 692
11 mai 2010 à 16:43
11 mai 2010 à 16:43
Enlève les modifications alors... et refais un test...
fxtaa
Messages postés
1050
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
2 avril 2015
74
11 mai 2010 à 16:44
11 mai 2010 à 16:44
le "Listen 10.75.30.218:80" est pour l'acces a ton serveur d'un autre poste.
fxtaa
Messages postés
1050
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
2 avril 2015
74
11 mai 2010 à 16:50
11 mai 2010 à 16:50
Oui, c'est normal.
Si ton serveur n'écoute pas sur l'adresse de ta carte réseau, il ne va pas entendre la requete de ton client citrix.
Si ton serveur n'écoute pas sur l'adresse de ta carte réseau, il ne va pas entendre la requete de ton client citrix.
Neliel
Messages postés
6146
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 692
11 mai 2010 à 16:48
11 mai 2010 à 16:48
Résumons parce que cela devient complexe...
En local, tes post fonctionnent-ils ? Avec n'importe quel page ?
En local, tes post fonctionnent-ils ? Avec n'importe quel page ?
Le mystère continue :
En local les $_POST ne fonctionne plus
Voici mon fichier test.php
En local les $_POST ne fonctionne plus
Voici mon fichier test.php
<?php error_reporting(E_ALL); ?> <!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=iso-8859-1"> <title>Document sans titre</title> </head> <body> <form name="form1" method="post" action="test.php"> <p> <input name="champ" type="text" id="champ"> </p> <p> <input type="submit" name="Submit" value="Envoyer"> </p> </form> <?php echo $_REQUEST['champ']; ?> </body> </html>
Neliel
Messages postés
6146
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 692
11 mai 2010 à 17:01
11 mai 2010 à 17:01
Essaie de renommer le fichier htaccess...
Le mystère ce facilite, donc je m'explique :
1) Je ferme tout le navigateur.
2) J'ouvre le navigateur.
3) Je vais sur http://localhost/test.php -> il fonctionne
4) Je vais sur http://localhost/index.php
5) Suite à cela plus aucun $_POST ne fonctionne.
Donc le problème vient de index.php ou d'un des fichiers ajouter.
Sachant que n'étant pas identifier conf.php (lui meme inclue dans index.php) renvoi vers ident.php
ident.php charge ntml.php pour pouvoir effectuer un activation automatique par windows puis si identifier renvoi vers index.php
Je vous dis dés que j'ai trouver
1) Je ferme tout le navigateur.
2) J'ouvre le navigateur.
3) Je vais sur http://localhost/test.php -> il fonctionne
4) Je vais sur http://localhost/index.php
5) Suite à cela plus aucun $_POST ne fonctionne.
Donc le problème vient de index.php ou d'un des fichiers ajouter.
Sachant que n'étant pas identifier conf.php (lui meme inclue dans index.php) renvoi vers ident.php
ident.php charge ntml.php pour pouvoir effectuer un activation automatique par windows puis si identifier renvoi vers index.php
Je vous dis dés que j'ai trouver
Neliel
Messages postés
6146
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 692
11 mai 2010 à 17:07
11 mai 2010 à 17:07
Sur un des forum, certains parlaient d'un bug connu entre POST et NTML...
Neliel
Messages postés
6146
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 692
11 mai 2010 à 17:15
11 mai 2010 à 17:15
Apparemment quand tu utilise à la fois des session (session_start()) et NTLM, les variables de type POST ne fonctionne plus...
Et voila c'est résolue c'était bien le NTLM qui faisait planter les $_POST.
Maintenant j'ai plus qu'a trouver une alternative à ça.
Merci beaucoup à tous.
Maintenant j'ai plus qu'a trouver une alternative à ça.
Merci beaucoup à tous.
atout1
Messages postés
216
Date d'inscription
mardi 11 mai 2010
Statut
Membre
Dernière intervention
17 juin 2011
11 mai 2010 à 17:44
11 mai 2010 à 17:44
Bonjour,
ca marche chez moi sans aucune problème
essaye ça :
<form action="test.php" method="post">
<input name="txt" type="text">
<input type="submit" value="Envoyer">
</form>
test.php :
<?php
if(isset($_POST['txt']))
{
$text = $_POST['txt'];
echo $text;
}
?>
ca marche chez moi sans aucune problème
essaye ça :
<form action="test.php" method="post">
<input name="txt" type="text">
<input type="submit" value="Envoyer">
</form>
test.php :
<?php
if(isset($_POST['txt']))
{
$text = $_POST['txt'];
echo $text;
}
?>
Neliel
Messages postés
6146
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 692
11 mai 2010 à 17:46
11 mai 2010 à 17:46
Tu viens un peu en retard... il a résolu son problème.
Chez lui cela ne fonctionnait pas à cause de NTLM...
Chez lui cela ne fonctionnait pas à cause de NTLM...
Et pour finir tout marche même le NTLM.
J'ai lu que ce problème ne concerne que le répertoire ou ce situe le ntlm
donc j'ai diviser mon site avec :
Les fichiers à la racine et un répertoire ntlm (oui j'ai pas beaucoup d'imagination dans les noms) dans lequel j'ai placer mon fichier ntlm.php et identification.php
Donc en résumant :
- un test sur une variable de session dans conf.php montre que l'on est pas authentifier.
Le script redirige vers ntml/identification.php
- ntml/identification.php charge ntml/ntlm.php verifie si l'utilisateur existe en bdd puis renvoi vers ../index.php (à la racine)
Et la les POST continue de fonctionner et le NTML a bien marché.
Merci à tous pour vos conseils et en particulier à Neliel.
En espérant que cela serve à d'autre personne.
J'ai lu que ce problème ne concerne que le répertoire ou ce situe le ntlm
donc j'ai diviser mon site avec :
Les fichiers à la racine et un répertoire ntlm (oui j'ai pas beaucoup d'imagination dans les noms) dans lequel j'ai placer mon fichier ntlm.php et identification.php
Donc en résumant :
- un test sur une variable de session dans conf.php montre que l'on est pas authentifier.
Le script redirige vers ntml/identification.php
- ntml/identification.php charge ntml/ntlm.php verifie si l'utilisateur existe en bdd puis renvoi vers ../index.php (à la racine)
Et la les POST continue de fonctionner et le NTML a bien marché.
Merci à tous pour vos conseils et en particulier à Neliel.
En espérant que cela serve à d'autre personne.