2017-06-01 116 views
0

我有登录和注销页面,但无法注销,总是说用户已经登录。这是我的登录页面:session_destroy无法破坏会话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"; 
    } 
?> 

这里是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'); 
?> 

我怎么能解决这个问题?任何人都可以帮我吗?还有一个附加的图像显示饼干。 enter image description here

回答

2

只要使用此:

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

在这里你可以做的是

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

并添加以下代码中的

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

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, '/'); 
    } 
} 

希望这有助于

+0

很抱歉,但couldnot进行任何更改。我有同样的问题:( –

+0

这是我的注销页面现在 '' –

+0

如果您打算将cookie的时间设置为减号,我的意思是这并不能解决你的问题,但它没有意义 –

0

这里我的代码工作对我来说

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

不幸的是我不能为我工作 –

+0

尝试我的模式,并告诉PHP版本 –

0

我觉得问题是一个与MS边工作的Firefox。感谢您对您的所有帮助我的代码是在这里: 注销:

<?php 
    session_start(); 
    setcookie("branchID", "", 1); 
    setcookie("companyID", "", 1); 
    setcookie("userID", "", 1); 
    setcookie("userName", "", 1); 
    session_destroy(); 
    header('location: index.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 = "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>