J’éprouve un souci dans la gestion des sessions. J'ai un formulaire, avec quelques champs.
<form method="post" name="form_setRegister" id="form_setRegister" action="../controller/ControllerCompte.php">
...
<input type="text" id="nom" name="nom" value="<?php if(isset($_SESSION['newUser']['nom'])) echo $_SESSION['newUser']['nom']; ?>" />
...
<input type="text" id="prenom" name="prenom" value="<?php if(isset($_SESSION['newUser']['prenom'])) echo $_SESSION['newUser']['prenom']; ?>" />
etc.
Dans 'ControllerCompte.php', j'effectue une vérification des champs
class ControllerCompte {
...
public function register($form) {
if (!empty($_POST['nom'])) {
$_SESSION['newUser']['nom'] = filter_var($_POST['nom'], FILTER_SANITIZE_STRING);
} else {
$this->errors .= 'Un nom svp<br>';
}
//
if (!empty($_POST['prenom'])) {
$_SESSION['newUser']['prenom'] = filter_var($_POST['prenom'], FILTER_SANITIZE_STRING);
} else {
$this->errors .= 'Un prenom svp<br>';
}
...
// Si pas d'erreur
if (empty($this->errors)) {
$this->modelCompte->newUser(); //mysql
} else {
header('Location: ../view/inscription.php');
exit();
}
}
$controlCompte = new ControllerCompte(); //la création de l'objet se fait dans le même fichier
$controlCompte->register($_POST);
En cas d'erreur, une redirection s'effectue sur inscription.php. Mais toute session est vide. Dans un cas comme celui-ci, comment gérez-vous vos sessions ?merci,
ps : je sais qu'il faudrait que je fasse la même chose pour les erreurs