Problème de formulaire PHP (POST)

Résolu/Fermé
darkvandrech - 11 mai 2010 à 12:30
 nava - 14 oct. 2022 à 12:55
Bonjour,

J'ai un problème qui me donne des migraines depuis quelques temps.

J'ai mes formulaire qui ne renvoies plus rien.

C'est à dire que d'un coup un formulaire qui fonctionnait bien ne fonctionne plus du tout.

Pour être sur j'ai crée une page simple :
<form action="test.php" method="post">
<input name="txt" type="text">
<input name="" type="submit" value="Envoyer">
</form><br>
<?php print_r($_POST); ?>


Ce qui me renvoi un Array vide.

Les logs d'apache et de php ne me renvoi rien de bizzard.

Donc je coince.

Merci d'avance
A voir également:

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
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
"
0
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
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.
0
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 !
0
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
Tu pourrais pas essayer de rajouter
<?php 
 error_reporting(E_ALL); 
?>


Tout en haut de la page ?

Ca permettrait de voir s'il y a des warnings ou des notices
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
darkvandrech
11 mai 2010 à 16:24
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 ^^).
0
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
undefined index : champ ?
line 17 ?

T'es sûr de nous avoir posté la bonne page ? ^^
0
darkvandrech
11 mai 2010 à 16:29
Je viens de tester de tout virer du dossier www et de juste laisser un fichier index.php

<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.
0
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
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"
0
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
Par défaut, c'est pareil... en tout cas, cela l'est pour EasyPHP...
0
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
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 :
referer: [http://localhost/test.php]
0
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
ca a toujours fonctionner, c'est juste qu'il nous a pas envoyer la page complete donc voila....
0
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
Si on vire carrément htaccess... qu'est-ce qui se passe ? Il se recrée derrière ?
0
darkvandrech
11 mai 2010 à 16:39
J'avais envoyer le fichier test.php complet
0
darkvandrech
11 mai 2010 à 16:38
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.
0
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
Citrix ? Je croyait que tu testais uniquement en local...
0
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
rajoute ton adresse ip local dans les exceptions de ton proxy quand tu passes par citrix
0
darkvandrech
11 mai 2010 à 16:43
Si le proxy bloquais cela n'afficherai carrément pas la page.
0
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
Essaye de supprimer le fichier htaccess... si j'ai bien compris, il devrait se recréer par défaut...
0
darkvandrech
11 mai 2010 à 16:42
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
0
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
Enlève les modifications alors... et refais un test...
0
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
le "Listen 10.75.30.218:80" est pour l'acces a ton serveur d'un autre poste.
0
darkvandrech
11 mai 2010 à 16:47
j'ai recommenter listen 10.75.30.218:80
donc depuis citrix je n'accede plus à mon serveur via cette même adresse
et depuis le serveur en local ca marche toujours.
0
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
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.
0
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
Résumons parce que cela devient complexe...

En local, tes post fonctionnent-ils ? Avec n'importe quel page ?
0
darkvandrech
11 mai 2010 à 16:54
Le mystère continue :
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>
0
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
Essaie de renommer le fichier htaccess...
0
darkvandrech
11 mai 2010 à 17:02
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
0
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
Sur un des forum, certains parlaient d'un bug connu entre POST et NTML...
0
darkvandrech
11 mai 2010 à 17:11
bon bah j'essaye de dire au revoir a ntlm
0
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
Apparemment quand tu utilise à la fois des session (session_start()) et NTLM, les variables de type POST ne fonctionne plus...
0
darkvandrech
11 mai 2010 à 17:14
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.
0
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
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;
}

?>
0
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
Tu viens un peu en retard... il a résolu son problème.
Chez lui cela ne fonctionnait pas à cause de NTLM...
0
darkvandrech
11 mai 2010 à 17:56
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.
0