我有这些代码,当我运行这些代码时,它会在选中复选框和未选中时设置cookie。 在两种情况下,它都会设置Cookie
$("#login_submit").click(function(){
var login_username=$('input[name=login_username]').val();
var login_password=$('input[name=login_password]').val();
var remember=$("#remember").is(':checked');
$.ajax({
url:'includes/login.php',
type:'POST',
data:{login_username,login_password,remember},
success:function(data){
location.href='controlpanel.php';
},
});
});
<form onsubmit="return false" class="login-form" action="" method="post">
<div class="login-container">
<input type="text" class="modal-login" placeholder="username" name="login_username">
<input type="password" class="modal-login" placeholder="password" name="login_password" style="margin-bottom:3px">
<div class="remember-div">
<input type="checkbox" name="remember" id="remember">
<label for="remember">remember me</label>
</div>
<button type="submit" class="login" name="login_submit" id="login_submit">login</button>
</div>
</form>
和php代码
require_once '../config/config.php';
$login_username=$_POST['login_username'];
$login_password=md5($_POST['login_password']);
$login_check=mysqli_query($db,"select * from users where username='$login_username' and password='$login_password'");
$username_id=mysqli_fetch_array($login_check)['id'];
if(mysqli_num_rows($login_check)>0){
$_SESSION['login'] = $username_id;
$remember=$_POST['remember'];
if($remember){
setcookie('login',$username_id,time()+60*60*24*30,'/');
}
echo "ok";
}else{
echo 'ko';
}
在两种情况下,它都会在其被选中和未选中时设置cookie
答案 0 :(得分:0)
我想给你一个建议。
当用户单击“记住我”复选框时,设置cookie。 Cookie将仅在下次尝试登录时用于显示凭据。这样他们就可以下次轻松登录。
如果他们未点击/选中“记住我”复选框,则不要保存Cookie。
对于登录和用户面板管理,请使用会话。在他们登录时设置会话,并在他们退出时销毁会话。
如果您需要更多信息,请问我。
答案 1 :(得分:0)
您的代码中有
$remember=$_POST['remember'];
if($remember){
setcookie('login',$username_id,time()+60*60*24*30,'/');
}
'if($ remember)'将始终为true,因为它只是在检查一个值,而不是该值是否实际上为'true',而是一个值存在,即使该值为'false'。
有几种方法可以解决此问题,但一种方法是:
在HTML中将值添加到复选框
<input type="checkbox" name="remember" id="remember" value="remember">
在您的脚本更改中
var remember=$("#remember").is(':checked');
到
var remember= $('#remember:checked').val();
然后在您的PHP中
if ($_POST['remember'] == 'remember') { // your code