'Remember me not working in login form, cookie is getting created but not showing the value
I was trying to implement remember me functionality with the cookie method but it doesn't seem to work, cookie is getting created in network tab with the validity I want but after logout not showing on my input tags. Below is my php code for login and login form .
<?php
require('autoload.php');
if($_SERVER['REQUEST_METHOD']=="POST"){
$email=trim($_POST['login_email']);
$password = trim($_POST['login_password']);
$sql = "SELECT * FROM `users` where `user_email` = ? LIMIT 1";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s",$email);
$stmt->execute();
$result = $stmt->get_result();
$exist = $result->num_rows;
if($exist == 0 ){
echo "invalid credentials";
exit();
}else{
$row = $result->fetch_array(MYSQLI_ASSOC);
if (!password_verify($password, $row['user_password'])){
echo "invalid credentials";
exit();
}else{
if(isset($_POST['remember_me'])){
setcookie('email',$email,time()+60*60*24);
setcookie('password',$password,time()+60*60*24);
}else{
setcookie('email',"");
setcookie('password',"");
}
$_SESSION['USERNAME'] = $row['user_name'];
$_SESSION['URL'] = $row['url_address'];
echo "valid credentials";
exit();
}
}
}
$stmt->close();
}
$conn->close();
?>
so this is my login script and below is my HTML login form.
<div class="login-form">
<form action="" method="post" id="login-form" autocomplete="off">
<div class="input-container">
<input type="email" name="login_email" id="login_email" class="form-control" placeholder="Email*" value="<?php if(isset($_COOKIE['email'])){ echo $_COOKIE['email'];}?>" required>
<i class="fa-solid fa-check" id="login_email_correct_mark"></i>
<i class="fa-solid fa-exclamation" id="login_email_wrong_mark"></i>
<span class="error_form" id="login_email_error_message"></span>
</div>
<div class="input-container">
<input type="password" name="login_password" id="login_password" class="form-control" placeholder="Password*" value="<?php if(isset($_COOKIE['password'])){ echo $_COOKIE['password'];}?>" required>
<i class="fa-solid fa-check" id="login_password_correct_mark"></i>
<i class="fa-solid fa-exclamation" id="login_password_wrong_mark"></i>
<span class="error_form" id="login_password_error_message"></span>
</div>
<div class="checkbox">
<input type="checkbox" id="remember_me" name="remember_me" <?php if(isset($_COOKIE[ 'email'])){?> checked
<?php }?>> Remember me
<a href="forgot-password.php">Forgot Password?</a>
</div>
<input type="submit" name="login_submit" id="login_submit" class="submit-btn" value="Login">
</form>
<p>Dont have an Account? <a href="javascript: showRegisterForm();">Register Here</a></p>
<span id="success-msg">
</span>
<span id="failed-msg">
</span>
</div>
the request to the login page is sent by ajax and jquery.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
