***
Je vous précise que ce message est complètement différent de celui que j'ai posté hier.
J'ai donc bien deux problèmes qui n'ont rien à voir l'un avec l'autre.
Je le précise pour que vous sachiez bien qu'il ne s'agit pas de multipostage.
***
J'ai un formulaire dans une page à accès réservé.
Dans la page de traitement de formulaire, j'écris du code qui assure que tout est bien remplis,
sinon, une boîte modale indique que tous les champs ne sont pas remplis et renvoit
l'utilisateur sur le formulaire pour lui demander de compléter ce dernier.
Le code n'est pas lu. Si l'utilisateur ne remplis pas tous les champs obligatoires,
les données rentrent dans la bdd avec les informations manquantes comme si
ce n'était pas gênant.
J'ai écris un petit code de debug pour simplifier la donne:
<?php
#partie php commune à toute session => ici récupération de $_SESSION['id_user']
session_start();
if (isset($_SESSION['id_user']) && isset($_SESSION['login'])){
} else {
header("Location: http://localhost/mon_site/index.php");
}
#fin partie php commune à toute session
#code debug.
$a = '1';
$b = '2';
if (empty($a) || empty($b) || empty($c)){
echo '<body onLoad="alert(\'no\')">';
echo '<meta http-equiv="refresh" content="0;URL=ma_page.php">';
}
Lorsque l'utilisateur envoit le formulaire tout ce passe comme si de rien n'était,les données rentrent dans la bdd avec les informations manquantes.
Hors, vous voyez que dans mon code de debug la variable $c n'existe pas.
Une boîte modale devrait apparaître pour informer et réorienter l'utilisateur.
Mais rien ne se passe.
Je ne comprends pas pourquoi, d'autant plus que j'utilise ce genre de code ailleurs dans mon site,
à un endroit différent d'une session à accès réservé. Et à cet endroit là ça marche.
Serait-ce la session qui crée le problème?
Est-ce que quelqu'un pourrait m'aider à y voir clair?