[php] $_POST existant et ne devrait pas

Nina -  
 le père -
Bonjour tout le monde,

J'ai un petit problème avec ma page php.

J'ai eu un problème du type "PHP - Notice: Undefined index:"

du coup j'ai fait ce qui était conseillé,

j'ai mis des isset($_POST) et !isset($_POST) sur ma page et je me rends compte que $_POST existe (en mettant des echo), OR, le formulaire n'a pas été rempli, du coup je pense que c'est pour ça que j'ai l'erreur si dessus par la suite.
J'ai vidé le cache (Shift + F5), pareil.

Sachant que j'ai un code JS qui vide le cache automatiquement en chargeant la page parce que sinon j'avais des problèmes.

Voilà je ne sais pas trop quoi faire.

4 réponses

Alain_42 Messages postés 5413 Statut Membre 894
 
le plus simple serait de nous donner le code non ?
1
Alain_42 Messages postés 5413 Statut Membre 894
 
l'erreur "Notice: Undefined index:" veut dire que tu utilises $_POST['nom_index'] qui n'existe pas dans ton formulaire

nom_index doit correspondre aux name="..." du formulaire, mais attention aux majuscules minuscules !

sinon pour voir ce que tu reçoit (tous les $_POST, c'est un array)

<?php
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>

et la tu verra les index et la valeur correspondante
0
Nina
 
[mois] => 01
[annee] => 2010
[service] => 1
[ecole] =>
[submit] => OK
c'est ça?
0
le père
 
Bonjour

Je serais tenté de dire que ton message "Notice: Undefined index:" veut dire que tu utilises $_POST[''] car justement il n'y a pas le nom de l'index (si tu n'as pas tronqué le message)
Il doit te dire à quelle numéro de ligne tu as cette erreur, donne ton message d'erreur complet (numéro de ligne compris) et le code autour de cette ligne.
Sans oublier de suivre la suggestion d'Alain_42
0
Nina
 
Je n'ai malheureusement plus ce message d'erreur qui s'affiche.

J'ai maintenant un problème avec mes conditions je pense :

J'ai fait un if en demandant si les champs obligatoires étaient remplis, il est respecté, dans ce if, j'ai demandé d'afficher POST, ce qui donne

Array
(
[mois] => 01
[annee] => 2010
[service] => 1
[ecole] =>
[submit] => OK
)

et ensuite, toujours dans le if, j'ai tout une serie d'autres if et un else (avec des echo dedans, ils en ont tous un) et ils ne les execute pas, car aucun echo n'est affiché, et tout desuite apres j'ai écrit un echo (qui est toujours dans le premier if, et il l'affiche.

Quel est mon problème ?
0
le père
 
Je n'ai malheureusement plus ce message d'erreur qui s'affiche.
Quel dommage ! ^^

J'ai fait un if en demandant si les champs obligatoires étaient remplis
Si tu as testé avec des isset comme semble le suggérer ton premier message, je te signale que ce test vérifie seulement que les champs existent, pas qu'ils sont remplis. Si le formulaire est envoyé, isset donnera true pour tous les champs, même les champs vides. Il faut comparer avec une chaîne vide (après avoir testé avec isset) ou tester directement avec empty() (mais attention, un champ qui ne contient que le nombre 0 est considéré empty)
Mais comme le dit Alain, le plus simple serait que tu donnes ton code
0