Message de succes sur une autre page

Répondre
Morganpog
le 09/12/2013 à 22:02
Morganpog
Bonjour,

Je voudrais savoir si c'était possible de transmettre une variable vers une autre page.

Je m'explique, j'ai un formulaire qui permet de modifier son adresse email (chgMail.php).
Lorsque l'utilisateur soumet sa nouvelle adresse, j'aimerais qu'il revienne sur sa page membre.php (avec un header) et qu'un message n'apparait qu'une seule fois "un email vous a était envoyer".

Avec un $_GET c'est possible mais pas super à mes yeux
Avec un $_POST ce n'est pas possible vu que le traitement dans la base de donnée ce fait sur la page chgMail.php.

Il y a t'il un moyen d'envoyer un message sur une autre page dans mon exemple ?
LA GLOBULE
le 10/12/2013 à 02:45
LA GLOBULE
Oui, tu peux le faire via les sessions.

Le principe :
  • dans chgMail.php, en cas de succès, tu vas déclarer une variable de session, disons 'update_email_success' qui vaudra true
  • quand l'utilisateur changera de page, et si la variable de session 'update_email_success' existe, alors tu affiches ton message de succès, et tu n'oublieras pas d'effacer cette variable de session à ce moment précis


Il est important d'effacer la variable de session quand tu affiches ton message, sinon, ton message apparaîtra à chaque chargement de page.
Morganpog
le 10/12/2013 à 11:49
Morganpog
Merci LA GLOBULE de ta réponse.

J'ai déjà employé les sessions pour faire le même système pour un utilisateur qui n'est pas connecté.
Cela fonctionne très bien mais lorsqu'un membre est connecter, et que je veux supprimer une variable de session, il me les supprime toutes et le membre finit par être déconnecter.

Je ne sais pas si le code que j'utilise pour faire cette fonction est correct

Voici le code en question de la page chgMail.php
<?php 
if($sentmail){
$_SESSION['notif'] = "un email vous a été envoyé"
header("Location: /membres/membre.php");
exit();
}
?>


Et voici le code pour afficher la variable de la page membre.php
<?php 
if (isset($_SESSION['notif']) && !empty($_SESSION['notif'])) {
echo '<div class="val">'.$_SESSION['notif'].'</div>';
session_unset($_SESSION['notif']);
}
?>


J'ai vu que pour supprimer une variable de session, on pourrait utiliser session_unregister, mais cette fonction est devenu obsolète

Après est-ce que ceci fonctionnerai ?
<?php 
unset($_SESSION['notif']);
?>


Je vais essayer cela dès que je rentre chez moi.
LA GLOBULE
le 10/12/2013 à 11:53
LA GLOBULE
Si tu regardes la documentation de session_unset, tu verras que session_unset détruit toutes les variables de session :) Ce qui explique ton problème de déconnexion.

Et oui, un simple unset comme tu le proposes fonctionneras sans soucis smiley
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours