注销后Cookie不会破坏

时间:2016-05-24 11:46:14

标签: javascript php cookies

我正在和#34;记住" Modal形式的功能。 我只在我发送支票簿值时才尝试设置cookie。但每当我从我的帐户退出时,cookie每次都会存在。 此外,当我打印$ _COOKIE []数组时,我发现了一些SESSION_ID。 帮我找出错误。

模态表格

<form role="form" method="post" id="login_Modal_checks">
  <div class="form-group has-error">
     <label for="username"><span class="glyphicon glyphicon-user">    </span>Username</label>

    <input type="text" class="form-control" name="loginUsername"  id="loginUsername" placeholder="Enter username"
       value="<?php if(isset($_COOKIE['username'])) 
           {echo $_COOKIE['username'];} ?>" >
     </div>

<div class="form-group has-error">
    <label for="psw"><span class="glyphicon glyphicon-pencil"></span>    Password
</label>

<input type="password" class="form-control" name="loginPassword" id="loginPassword" placeholder="Enter password"
value="<?php if(isset($_COOKIE['pass'])) {echo $_COOKIE['pass'];} ?>"       >
 <i style="cursor: pointer" id="seePass" title="Click here to see password" class="glyphicon glyphicon-eye-open">
</i>

   </div>
    <div class="checkbox">
   <label><input type="checkbox" id="remember" <?php if(isset($_COOKIE['username'])) { ?> checked <?php } ?>>
                    Remember me
    </label>
     </div>

<a id="login_Modal"  class="btn btn-success btn-block"><span class="glyphicon glyphicon-off"></span> Login</a>

</form>

Javascript代码

$('#login_Modal').click(function (e){
    e.preventDefault();
    var remember = $('#remember').val();
                $.ajax({
        url: "form_login_process.php",
        type: 'POST',
        data:{'Username':username,'Password':password,'Remember' : remember},
        success: function (data)
        { //alert(data);}
});

form_login_process.php

    $Remember = $_POST['Remember'];
  $sql = "select * from signup where username = '$Username' and password = '$Password'";
  $result = mysqli_query($link, $sql);

  if(mysqli_num_rows($result)>0)

  {
    if(!empty($_POST['Remember']))
    {
        setcookie("username", $Username,time()+ (10 * 365 * 24 * 60 * 60));
        setcookie("pass", $Password,time()+ (10 * 365 * 24 * 60 * 60));

    }
    else
    {
        //if without clicked on checkbox the cookie still exist then destroy it 
        if(isset($_POST['Username']))
        {
            setcookie("username","");
        }

        if(isset($_POST['Password']))
        {
            setcookie("pass","");
        }

        }

      echo 'true';
      $_SESSION['username'] = $Username;
  }
  else
  {
      echo "false";
  }

3 个答案:

答案 0 :(得分:0)

以下代码将完全破坏会话。用于注销功能。

session_destroy();
unset($_SESSION);
session_regenerate_id(true);

答案 1 :(得分:0)

你不会破坏这样的cookie:

  

的setcookie( “用户名”, “”);

如果你想破坏cookie设置一个已经过去的时间,如:

setcookie("username", "", time()-3600);

答案 2 :(得分:0)

setcookie("username", "",time()- (10 * 365 * 24 * 60 * 60));
setcookie("pass", "",time()- (10 * 365 * 24 * 60 * 60));

我认为这很有帮助

相关问题