Comment déconnecter un utilisateur en php?
Je vais faire un système de connexion et j'ai juste réussi à le faire travailler, et maintenant, je vais avoir du mal à faire un logout fonctionnalité pour mon site web. Son non hébergées, de sorte que la sécurité sera pour plus tard. J'ai essayé les différentes utilisations de l'session_destroy et unset, mais je ne peux pas le faire fonctionner. Toute aide serait appréciée.
Mon PHP
<?php
session_start();
/*This is the equivalent of login.php*/
$database = "forum"; //the name of the database.
$server = "localhost"; //server to connect to.
$db_user = "root"; //mysql username to access the database with.
$db_pass = ""; //mysql password to access the database with.
$table = "members"; //the table that this script will set up and use.
$link = mysql_connect($server, $db_user, $db_pass);
mysql_select_db($database,$link);
if (isset($_POST['fsubmitted'])) {
//Get the data passed from the form
$username = $_POST['username'];
$pass = $_POST['pass'];
//Do some basic sanitizing
$username = stripslashes($username);
$pass = stripslashes($pass);
$encryptedpass = md5($pass);
$sql = "SELECT * from members where username = '$username' and password = '$encryptedpass'";
$result = mysql_query($sql);
$count = 0;
$count = mysql_num_rows($result);
if ($count == 1) {
$_SESSION['loggedIn'] = "true";
header("Location: index.php"); //This is wherever you want to redirect the user to
exit();
} else {
$_SESSION['loggedIn'] = "false";
echo '<div class="errormsgbox">Your username and password combo was incorrect!</div>';
var_dump($result);
echo $sql;
}
}
if ($_SESSION['loggedIn'] = "true") {
echo '<div class="success">You are now logged in!</div>';
}
if (isset($_SESSION['loggedin']) && (time() - $_SESSION['loggedin'] > 1800)) {
//last request was more than 30 minutes ago
session_unset(); //unset $_SESSION variable for the run-time
session_destroy(); //destroy session data in storage
}
$_SESSION['loggedin'] = time(); //update last activity time stamp
?>
- Notez que MYSQL_* fonctions sont amortis. Vous devez utiliser MYSQLI ou PDO.
- La sécurité devrait être là tout au long de ne pas venir après.
- Où en êtes-vous le début de la session?
- Première manquant et le plus important élément:
session_start();
. Je vous laisse regarder les réponses ci-dessous. - Où dois le session_start(); aller?
- (la plupart du temps) doit être placée en première ligne, après l'ouverture
<?php
tag. - OK, j'ai ajouté le démarrage de la session, au début de mon code.
- - Je le prendre que vous vous adressez à moi maintenant. S'il vous plaît ajouter le
@
symbole suivie par mon nom à l'adresse à moi personnellement. Maintenant, vous pouvez continuer avec les réponses qui vous ont été fournis ci-dessous. - Voir cette réponse sur DONC pour un
logout
méthode stackoverflow.com/a/12209491/1415724 (Après Googler "bouton de déconnexion de session php") clin d'oeil - regarde ma réponse
Vous devez vous connecter pour publier un commentaire.
Utilisation:
Avec l'une des opérations suivantes:
Je vois deux erreurs dans votre code:
Le début de la session:
De mettre ce que la première ligne de votre code PHP:
session_start();
Déconnexion
Permet de jeter un oeil de plus près à ce bloc de code:
Vous n'avez pas dit le code de la session de
unset
oudestroy
!Pour ce faire, vous devez inclure une variable de session à l'intérieur des parenthèses.
Essayez ce code:
Que je n'ai fait, dit le code de la session de
unset
etdestroy
Mise à JOUR
Essayez plutôt ceci si cela n'a pas assez de travail pour vous.
Une autre bonne chose à jeter un oeil à est d'avoir un bouton de déconnexion. C'est expliqué ici: Bouton de déconnexion php
J'espère que cela vous a aidé, et laissez-moi savoir si je peux aider davantage!
Dans votre script pour se connecter à quelqu'un, tout simplement:
Vous devez également appeler
session_start()
à un certain moment dans votre login.php vous avez indiqué ci-dessus.session_start();
être, et dans lequel les fichiers (clin d'oeil)Je voudrais essayer d'utiliser cette fonction:
Tout ce que vous devez faire pour utiliser cette fonction est appel logout(); où jamais vous voulez demandez à la personne de connecté.