Bouton de deconnexion
bloomingdals
-
jeremy.s Messages postés 1248 Statut Membre -
jeremy.s Messages postés 1248 Statut Membre -
Bonjour,
J'ai un bouton log out dans ma page html qui devait permettre ces trois évènements:
- affichage d'une boite de dialog en javascript pour confirmer ou non la deconnexion
- si oui deconnexion de la base SQL
- redirrection vers une page d'accueil
j'ai réalisé le code php dans un fichier a part que j'ai appelé deconnexion.php mais le bouton ne fonctionne pas, lorsque e le clique il me reddirige vers le fichier "deconnexion".
contenu de deconnexion.php
merci de bien vouloir m'aider
J'ai un bouton log out dans ma page html qui devait permettre ces trois évènements:
- affichage d'une boite de dialog en javascript pour confirmer ou non la deconnexion
- si oui deconnexion de la base SQL
- redirrection vers une page d'accueil
j'ai réalisé le code php dans un fichier a part que j'ai appelé deconnexion.php mais le bouton ne fonctionne pas, lorsque e le clique il me reddirige vers le fichier "deconnexion".
<form action="deconnexion.php" autocomplete="on" method="post">
<input type="submit" id="leave" value="Log Out"/>
</form>
contenu de deconnexion.php
if (isset($_POST["Log Out"]))
{
?>
<script language="Javascript">
if(confirm('You will disconnect.\nAre you sure you want to continue?'))
{
<?php
mysql_stop();
?>
document.location.href='auth.php'
else
history.back();
</script>
<?php
}
?>
merci de bien vouloir m'aider
A voir également:
- Bouton de deconnexion
- Diagnostic bouton photo - Accueil - Outils
- Bouton home clavier ✓ - Forum PC portable
- Bouton on/off comment savoir - Forum Word
- Déconnexion intempestive wifi - Guide
- Réinitialiser chromecast sans bouton - Guide
11 réponses
Salut !
Met plutot ta partie js dans le form, j'entend par la l'evenement html onsubmit="return confirm('You will disconnect.\nAre you sure you want to continue?');"
Ensuite dans ton php, tu peux juste faire mysql_stop(); et header('Location:auth.php');
Met plutot ta partie js dans le form, j'entend par la l'evenement html onsubmit="return confirm('You will disconnect.\nAre you sure you want to continue?');"
Ensuite dans ton php, tu peux juste faire mysql_stop(); et header('Location:auth.php');
Je n'avais pas vu, ta faute est ici :
if (isset($_POST["Log Out"]))
Alors que ton input :
<input type="submit" id="leave" value="Log Out"/>
Log Out est la value, pas le name du input. Donc tu ne rentreras jamais dans ton if
if (isset($_POST["Log Out"]))
Alors que ton input :
<input type="submit" id="leave" value="Log Out"/>
Log Out est la value, pas le name du input. Donc tu ne rentreras jamais dans ton if
Merci pour ta remarque, j'ai ajouté un name="out" au bouton et ça fonctionne mieux mais j'ai deux problèmes:
1. le code JS que j'ai intégré pour afficher une boite de confirmation n'est pas exécutée, pourant j'ai utilisée ma même technqiue dans d'autres fichiers
2. quand je suis redirrigée vers la page d'accueil après la deconnexion, je peux revenir à la page précedente en cliquant sur précedent du navigateur donc la session n'a pas été correctement détruite.
Comment faire
merci
1. le code JS que j'ai intégré pour afficher une boite de confirmation n'est pas exécutée, pourant j'ai utilisée ma même technqiue dans d'autres fichiers
2. quand je suis redirrigée vers la page d'accueil après la deconnexion, je peux revenir à la page précedente en cliquant sur précedent du navigateur donc la session n'a pas été correctement détruite.
Comment faire
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
1. le js est coté client, c'est donc préférable de faire comme je te l'ai dit plus haut.
Mais cela devrait quand même fonctionné. Donc à voir
2. C'est normal, à aucun moment tu ne détruis ta session. Je ne vois pas de session_destroy() ou $_SESSION = array() ou autre code du genre pour détruire une session.
Il faut aussi, sur chaque page, vérifié la session pour continuer ou redirigé vers un formulaire de connexion pour rendre "utile" la session
Mais cela devrait quand même fonctionné. Donc à voir
2. C'est normal, à aucun moment tu ne détruis ta session. Je ne vois pas de session_destroy() ou $_SESSION = array() ou autre code du genre pour détruire une session.
Il faut aussi, sur chaque page, vérifié la session pour continuer ou redirigé vers un formulaire de connexion pour rendre "utile" la session
Merci pour ta réponse,
J'ai arrangé un peu le code. et maintenant mes deux problèmes sont réglé. mais j'en ai un autre.
En fait, lorsque je clique sur le bouton, je devrais avoir l'alerte et si je confirme, le navigateur attend 5s puis me reddirrige vers la page d'accueil.
cependant, le code n'ext pas exécuté dans l'ordre. Il ya l'attente de 5s puis la fenêtre d'alerte puis la redirrection. mais je ne comprend pas pourquoi!
voila le code
J'ai arrangé un peu le code. et maintenant mes deux problèmes sont réglé. mais j'en ai un autre.
En fait, lorsque je clique sur le bouton, je devrais avoir l'alerte et si je confirme, le navigateur attend 5s puis me reddirrige vers la page d'accueil.
cependant, le code n'ext pas exécuté dans l'ordre. Il ya l'attente de 5s puis la fenêtre d'alerte puis la redirrection. mais je ne comprend pas pourquoi!
voila le code
<?php
if(isset($_POST["out"]))
{
?>
<script language="Javascript">
if(confirm('You will be disconnected.\nContinue?'))
{ <?php
sleep(5);
// On démarre la session
session_start ();
// On détruit les variables de notre session
session_unset ();
// On détruit notre session
session_destroy ();
?>
// On redirige le visiteur vers la page d'accueil
document.location.href='auth.php'
}
else
history.back();
</script>
<?php
}
?>
Je pense que le mélange php/js que tu fais ne va pas.
Essaye avec de rester dans des balises php, et pour faire du js :
echo '<script language="Javascript">';
echo 'if(confirm('You will be disconnected.\nContinue?'))';
etc ...
Essaye avec de rester dans des balises php, et pour faire du js :
echo '<script language="Javascript">';
echo 'if(confirm('You will be disconnected.\nContinue?'))';
etc ...
non ça n'a pas changé le résultat.
Tu peux me dire STP comment je pourrais séparer mon code php et mon code JS.
merci
Tu peux me dire STP comment je pourrais séparer mon code php et mon code JS.
merci
Il faut que tu fasse un fonction js, que tu appelles dans le onsubmit de ton formulaire.
La fonction doit renvoyé vrai ou faux, vrai le formulaire est validé, faux le formulaire n'est pas envoyé
La fonction doit renvoyé vrai ou faux, vrai le formulaire est validé, faux le formulaire n'est pas envoyé
j'ai fais le tour du monde pour faire fonctionner mon code mais ça n'a pas marché.
J'ai fini par adopter une méthode simple la voila:
le seul ennui est que la boite d'alerte s'affiche dans une autre page. J'aurais voulu qu'elle s'affiche dans la même page (tu sais en de manière à rendre mon formulaire très sombre)
ça se règle ce genre de détail ou non?
J'ai fini par adopter une méthode simple la voila:
if($Password != $Re_Password)
{
?>
<script language="Javascript">
alert('No match between passwords.\nPlease try again.')
document.location.href='auth.php'
</script>
<?php
exit;
}
le seul ennui est que la boite d'alerte s'affiche dans une autre page. J'aurais voulu qu'elle s'affiche dans la même page (tu sais en de manière à rendre mon formulaire très sombre)
ça se règle ce genre de détail ou non?