2017-06-01 12 views
0

J'ai des pages de connexion et de déconnexion, mais je ne peux pas me déconnecter, dit toujours l'utilisateur déjà connecté. Voici ma page de connexion:session_destroy ne peut pas détruire la session php

<?php 


session_start(); 
    include_once("connection.php"); 
    if(isset($_POST) & !empty($_POST)) { 
    $userName = mysqli_real_escape_string($connection, $_POST['userName']); 
    $userPassword = md5($_POST['userPassword']); 
    $login = "SELECT * FROM `users` WHERE userName = '$userName' and password = '$userPassword'"; 
    $result = $connection->query($login); 
    while ($val = mysqli_fetch_array($result)) 
    { 
     $isAdmin = $val['isAdmin']; 
     $companyID = $val['companyID']; 
     $branchID = $val['branchID']; 
     $ID   = $val['ID']; 
    } 
    $count = mysqli_num_rows($result); 
    if($count == 1){ 
     $_SESSION['userName'] = $userName; 
     setcookie("userID", $ID); 
     setcookie("companyID", $companyID); 
     setcookie("branchID", $branchID); 
     if(!$isAdmin){ 
     header('location: home.php'); 
     } 
     else { 
     header('location: admin/home.php'); 
     } 
    } 
    else { 
     $fmsg = "Wrong user name"; 
    } 
    } 
    if(isset($_SESSION['userName'])){ 
    $smsg = "Already loggedin"; 
    } 
?> 

Voici la page loggout:

<?php 
    session_start(); 
    session_destroy(); 
    unset($_COOKIE['companyID']); 
    unset($_COOKIE['userID']); 
    unset($_COOKIE['branchID']); 
    setcookie('companyID', null, -1, '/'); 
    setcookie('userID', null, -1, '/'); 
    setcookie('branchID', null, -1, '/'); 
    header('location: index.php'); 
?> 

Comment pourrais-je résoudre ce problème? Quelqu'un pourrait-il m'aider? En outre, il y a une image jointe des cookies. enter image description here

Répondre

2

utiliser juste ceci:

$_SESSION = array(); 
session_destroy(); 
1

Ici vous pouvez faire est

$_SESSION['userName'] = ''; //clear userName only 

Et Ajouter dans votre code

if(isset($_SESSION['userName']) && $_SESSION['userName'] != ''){ 
    $smsg = "Already loggedin"; 
    } 

ou

unset($_SESSION); //all session will be gone 
$_SESSION = array(); 


// unset cookies 
if (isset($_SERVER['HTTP_COOKIE'])) { 
    $cookies = explode(';', $_SERVER['HTTP_COOKIE']); 
    foreach($cookies as $cookie) { 
     $parts = explode('=', $cookie); 
     $name = trim($parts[0]); 
     setcookie($name, '', time()-1000); 
     setcookie($name, '', time()-1000, '/'); 
    } 
} 

Hope this helps

+0

Désolé, mais couldnot apporter des modifications. J'ai le même problème :( –

+0

Voici ma page logout maintenant ' ' –

+0

ne pas désactiver le cookie si vous souhaitez définir l'heure du cookie dans moins, je veux dire cela ne résout pas votre problème, mais il n'a pas de sens –

0

Voici mon code son travail pour moi

session_start(); 
unset($_SESSION['userid']); 
unset($_SESSION['username']); 
unset($_SESSION['photo']); 
session_destroy(); 
unset($_COOKIE['userid']); 
unset($_COOKIE['emailid']); 
unset($_COOKIE['photo']); 
setcookie('userid', null, -1, '/'); 
setcookie('emailid', null, -1, '/'); 
setcookie('photo', null, -1, '/'); 
header("Location:login"); 
+0

Malheureusement, couldnot travailler pour moi –

+0

essayer mon modèle et dire php ver –

0

Je pense que problème est avec Firefox qui a travaillé avec MS Edge. Merci pour tous vos aide mon code est ici: fermeture de session:

<?php 
    session_start(); 
    setcookie("branchID", "", 1); 
    setcookie("companyID", "", 1); 
    setcookie("userID", "", 1); 
    setcookie("userName", "", 1); 
    session_destroy(); 
    header('location: index.php'); 
?> 

connexion:

<?php 


session_start(); 
    include_once("connection.php"); 
    if(isset($_POST) & !empty($_POST)) { 
    $userName = mysqli_real_escape_string($connection, $_POST['userName']); 
    $userPassword = md5($_POST['userPassword']); 
    $login = "SELECT * FROM `users` WHERE userName = '$userName' and password = '$userPassword'"; 
    $result = $connection->query($login); 
    while ($val = mysqli_fetch_array($result)) 
    { 
     $isAdmin = $val['isAdmin']; 
     $companyID = $val['companyID']; 
     $branchID = $val['branchID']; 
     $ID   = $val['ID']; 
    } 
    $count = mysqli_num_rows($result); 
    if($count == 1){ 
     $_SESSION['userName'] = $userName; 
     setcookie("userID", $ID); 
     setcookie("companyID", $companyID); 
     setcookie("branchID", $branchID); 
     if(!$isAdmin){ 
     header('location: home.php'); 
     } 
     else { 
     header('location: admin/home.php'); 
     } 
    } 
    else { 
     $fmsg = "Hatalı Kullanıcı Adı/Şifre"; 
    } 
    } 
    if(isset($_SESSION['userName']) && $_SESSION['userName'] != ''){ 
    $smsg = "Kullanıcı Halihazırda Giriş Yapmış"; 
    } 
?> 
<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <link rel="stylesheet" href="css/style.css"> 
    <link rel="stylesheet" href="css/lib/lobipanel/lobipanel.min.css"> 
    <link rel="stylesheet" href="css/lib/jqueryui/jquery-ui.min.css"> 
    <link rel="stylesheet" href="css/lib/font-awesome/font-awesome.min.css"> 
    <link rel="stylesheet" href="css/main.css"> 
    </head> 
    <body> 
    <header class="site-header"> 
     <div class="container-fluid"> 
      <a href="#" class="site-logo"> 
       <img class="hidden-md-down" src="img/logo-2.png" alt=""> 
       <img class="hidden-lg-up" src="img/logo-2-mob.png" alt=""> 
      </a> 
      <div class="site-header-content"> 
       <div class="site-header-content-in"> 
        <div class="site-header-shown"> 
         <a href="#" class="site-logo"> 
          <img class="hidden-md-down" src="img/logo-ds.png" alt=""> 
          <img class="hidden-lg-up" src="img/logo-ds-mob.png" alt=""> 
         </a> 
        </div><!--.site-header-shown--> 
        HOŞ GELDİNİZ 
       </div><!--site-header-content-in--> 
      </div><!--.site-header-content--> 
     </div><!--.container-fluid--> 
    </header><!--.site-header--> 
    <div class="form-style-6"> 
     <h1>Giriş Yap</h1> 
     <form action="" method="post"> 
     <input type="text" name="userName" placeholder="Kullanıcı Adı" /> 
     <input type="password" name="userPassword" placeholder="Şifre" /> 
     <input type="submit" value="Giriş Yap" /> 
     </form> 
    </div> 
    <div class="container"> 
     <?php if(isset($smsg)){ ?> 
     <div class="alert alert-success" role="alert"> <?php echo $smsg; ?></div> 
     <?php } ?> 
     <?php if(isset($fmsg)){ ?> 
     <div class="alert alert-danger" role="alert"> <?php echo $fmsg; ?></div> 
     <?php } ?> 
     <?php if(isset($asmsg)){ ?> 
     <div class="alert alert-success" role="alert"> <?php echo $asmsg; ?></div> 
     <?php } ?> 
     <?php if(isset($afmsg)){ ?> 
     <div class="alert alert-danger" role="alert"> <?php echo $afmsg; ?></div> 
     <?php } ?> 
    </div> 
    </body> 
</html>