2016-05-24 3 views
0

Я работаю с функцией «Запомнить» в Модальной форме. Я попытался установить cookie только тогда, когда я отправляю чековую книжку, при регистрации. Но всякий раз, когда я выхожу из своей учетной записи, cookie все еще существует каждый раз. Кроме того, когда я печатаю массив $ _COOKIE [], я нахожу SESSION_ID. Помогите мне разобраться с ошибкой.Cookie не уничтожается после выхода из системы

Модальные Форма

<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"; 
    } 
+1

Подождите, вы настраиваете имя пользователя и пароль к файлам cookie? Боюсь, это не то, как вы внедряете систему входа в систему. –

+0

@JonStirling Я нашел этот способ установить cookie из другого места в Интернете. Если вы знаете правильный путь, то направляйте меня. Любые идеи приветствуются! –

+1

Два основных. 1) Вы не храните текстовые пароли в базе данных (см. PHP [пароль API] (http://php.net/password)). 2) Вы не храните учетные данные пользователя в браузере пользователей. –

ответ

0

Следующий код будет полностью уничтожить сессию. Использовать в функции выхода.

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

Теперь я поймал ошибку actula При нажатии кнопки «Войти» значение флажка выбрано самостоятельно. Вот почему я столкнулся с этой ошибкой –

0

Вы не разрушают печенье, как это:

SetCookie ("имя", "");

Если вы хотите уничтожить печенье установить время, которое уже прошло, как:

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

все еще сталкивается с ошибкой ..после выхода из системы, когда i echo $ _COOKIE, он показывает Array ([имя пользователя] => ******* [pass] => ***** [PHPSESSID] => ieh7lti1j6t7p2ijn2jsspp7d7) –

+0

Теперь я поймал actula ошибка При нажатии кнопки «Войти» значение флажка выбрано самостоятельно. Вот почему я столкнулся с этой ошибкой –

+0

Они могут быть установлены позже. Попробуйте распечатать массив $ _COOKIE сразу после удаления файлов cookie –

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

Я думаю, что это хорошо поможет вам

+0

Теперь я поймал ошибку actula При нажатии кнопки «Войти» значение флажка выбрано самостоятельно. Вот почему я столкнулся с этой ошибкой –

Смежные вопросы