2016-10-05 15 views
0

私はシステムにログインしていますが、もちろんログアウトできるようにしたいのですが、これは大きな問題が発生していました。私が何を試みても、私はそれを多くの方法で取り除こうとしました。PHPブラウザはクッキーを削除しません

--- Login.php

<!DOCTYPE html> 
<html> 
<head> 
    <title>Website</title> 
    <link rel="stylesheet" type="text/css" href="../css/style.css"/> 
</head> 
<body> 
    <header><p> Lost Story </p></header> 
    <div id="nav"> 
     <ul> 
      <li><a href="../index.php">Home</a></li> 
      <li><a href="register.php">Register</a></li> 
      <li><a href="../downloads.html">Downloads</a></li> 
      <li><a href="../forums.html">Forums</a></li> 
      <li><a href="../donate.html">Donate</a></li> 
      <li><a href="../vote.html">Vote</a></li> 
       <div id="right"> 
       <?php 
        if(isset($_COOKIE['LoggedIn']) && !empty($_COOKIE['LoggedIn'])) { 
        echo "<li><a href=\"logout.php\">Log Out</a></li>"; 
        } else { 
         echo "<li><a href=\"login.php\">Log in</a></li>"; 
        } 
       ?> 
       </div> 
     </ul> 
    </div> 
    <div id="content"> 
    <?php 

    echo var_dump($_COOKIE['LoggedIn']); 

    if(isset($_COOKIE['LoggedIn']) && !empty($_COOKIE['LoggedIn'])) { 
     echo "<label> You are already logged in, you do not need to again. </label>"; 
    } else { 
     echo "<div id=\"form\"> 
     <form action=\"login.php\" method=\"POST\"> 
      <label> 
      <br>Username:<br> 
       <input type=\"text\" name=\"name\"> 
      </label> 
      <label> 
      <br>Password:<br> 
       <input type=\"password\" name=\"pass\"> 
     </label> 
     <label> 
      <br> 
       <input type=\"submit\" name=\"submit\"> 
     </label> 
     </form> 
    </div>"; 
    } 

$LoggedIn = false; 

ERROR_REPORTING(E_ALL); 
include_once('dbconnection.php'); 

if($_SERVER['REQUEST_METHOD'] == "POST") { 

$user = htmlspecialchars($_POST['name']); 
$pass = htmlspecialchars($_POST['pass']); 

$once = false; 

if(!isset($user) || !isset($pass)) {  
    echo "<p> Please insert all the data </p>"; 
} else { 
    $sql = "SELECT * FROM persons"; 
    $result = mysqli_query($mysqli, $sql); 

    if(mysqli_num_rows($result) > 0) { 
     while($row = mysqli_fetch_assoc($result)) { 
      if($row["username"] === $user && $row["pass"] === md5($pass)) { 
       echo "<br><label> Logged into " .$user . "</label>"; 
       $once = true; 
       $LoggedIn = true; 
       setcookie("LoggedIn", $LoggedIn == true ? $user : "", time() + (86400 * 30), "/"); 

      } 
     } 
     if($once == false) { 
      echo "<br><label>No data found, please insert correct data</label>"; 
       $once = true; 
      } 

     $once = false; 
    } else { 
    echo "No results found"; 
    } 
} 
} 
?> 

    </div> 
    </div> 
    <footer> Website copyright etc </footer> 
</body> 

そして、私のlogout.phpのために、私はこの

<?php 

if(isset($_COOKIE['LoggedIn']) && !empty($_COOKIE['LoggedIn'])) { 
    setcookie('LoggedIn', '', time()-3600, '/'); 
    header("Location: ../index.php"); 
} else { 
    echo "no"; 
} 
?> 

を持っていた私はそれを削除したくない理由は本当にわからないんだけどクッキー、私はあなたが私を助けることを願っています。

+0

1のクッキーを作成する必要があります:あなたはのvar_dumpをエコーする必要はありません。 2:Cookieの設定を解除するコードはありません。 – MikeVelazco

+0

@MikeVelazcoすべてのstackoverflowの投稿私は過去のクッキーを設定するように言ったが、それを解除する –

答えて

1

クッキーを削除する場合は、削除することはできません。 あなたは...過去に

<?php 
 
// set the expiration date to one hour ago 
 
setcookie("TestCookie", "", time() - 3600); 
 
setcookie("TestCookie", "", time() - 3600, "/~rasmus/", "example.com", 1); 
 
?>

+0

私は、あなたがかなりのスキルを持っている将来のための有用な情報をありがとう! –

-1
$past = time() - 3600; 
    setcookie("LoggedIn", gone, $past); 
    header("Location: index.php"); exit(); 
関連する問題