2016-05-24 16 views
0

私はModalフォームの "Remember"機能を使用しています。 ロッキング中に私が小切手の価値を送るときだけ、クッキーを設定しようとしました。しかし、私のアカウントからログアウトするたびに、毎回そのクッキーが存在します。 また、$ _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

待ちを助けると思いますクッキーへのパスワード私はこれがログインシステムをどのように実装するのではないかと思います。 –

+0

@JonStirling 私はインターネット上の他の場所からクッキーを設定するこの方法を見つけました。 あなたが正しい道を知っているなら、私を導きます。 アイデアは暖かく歓迎されています! –

+1

2つの主要なもの。 1)データベースにプレーンテキストのパスワードを保存しません(PHPの[password API](http://php.net/password)を参照)。2)ユーザーの資格情報をユーザーのブラウザに保存しません。 –

答えて

0

次のコードは完全にセッションを破棄します。ログアウト機能で使用します。

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

今、私はアクラのエラーを受けました ログインボタンを押すと、それ自身でチェックボックスの値が選択されました。だから私はこのエラーに直面している –

0

あなたはこのようにクッキーを破壊しない:

ますsetcookie( "ユーザ名を"、 "");

あなたはクッキーを破棄したい場合は、すでにのように渡された時間設定:

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

まだエラーに直面している..私が$ _COOKIEをエコーするとログアウトした後、 アレイ([ユーザ名] => ******* [pass] => ***** [PHPSESSID] => ieh7lti1j6t7p2ijn2jsspp7d7) –

+0

エラー ログインボタンを押すと、それ自身で選択されたチェックボックスの値が表示されます。だから私はこのエラーに直面しているのです –

+0

彼らは後で設定されるかもしれません。クッキーを削除した直後に$ _COOKIE配列を印刷してみてください –

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

を私はあなたがユーザ名を設定している、これはうまくあなたに

+0

今、私はアクラのエラーを受けた ログインボタンを押すと、それ自身で選択されたチェックボックスの値。だから私はこのエラーに直面している –

関連する問題