1
我创建了一个包含电子邮件ID /用户名,密码和记住我复选框的登录页面。如果我第一次检查记住我复选框,它工作正常。如果我尝试通过其他电子邮件地址或密码登录并取消勾选记住我的复选框,则会使用之前的电子邮件ID和密码登录。例如:我用[email protected]电子邮件ID登录并选择记住我复选框,然后登录工作正常。之后,我再次登录与另一个电子邮件ID假设[email protected]一个untick记住我然后它通过以前的电子邮件ID是[email protected]登录我。记住我使用cookie的功能不允许通过其他登录信息登录php
我不明白为什么会发生这种情况。
这里是我的代码:
HTML:
<div class="row form-row">
<div class="col-md-12"><div class="input-with-icon right">
<input type="text" placeholder="<?php echo _('Email Id/Username'); ?>" class="form-control" title="<?php echo _('Enter your Email Id/Username'); ?>" name="email_id" value="<?php
if (isset($_COOKIE['email_id'])) {
echo $_COOKIE['email_id'];
}
?>"/>
</div>
</div>
</div>
<div class="row form-row">
<div class="col-md-12">
<div class="input-with-icon right">
<input name="password" type="password" placeholder="<?php echo _('Password'); ?>" class="form-control" id="password" title="<?php echo _('Enter your password'); ?>" value="<?php
if (isset($_COOKIE['password'])) {
echo $_COOKIE['password'];
}
?>"/>
</div>
</div>
</div>
<br/>
<div class="row">
<div class="col-md-6 Heading-text">
<div class="checkbox2">
<label><input type="checkbox" name="remember" <?php echo isset($_COOKIE['remember_me']) ? "checked='checked'" : "";?> id="remember"><span style="color:black;"><?php echo _('Remember Me'); ?></span></label>
</div>
</div>
</div>
<br/>
<div class="input-group center-block text-right">
<button class="btn btn-info btn-cons center-block center-text " type="submit" name="user_login"><?php echo _('Login'); ?></button>
</div>
这是我的PHP代码:
if(isset($_REQUEST['user_login'])
{
$data = $_REQUEST;
$email_id = $data['email_id'];
$password = $data['password'];
$sql = "SELECT userid,username FROM users WHERE password = '" . $password."' AND (email_id = '" . $email_id . "' OR username = '".mysqli_real_escape_string($this->getConnection(),$email_id)."')";
if ($this->checkRecordExists($sql)) {
$result = $this->getRecords($sql);
if (isset($data['remember']) && $data['remember'] == 'on')
{
/*
* Set Cookie from here for one hour
*/
setcookie("email_id", $data['email_id'], time() + (3600 * 24 * 30));
setcookie("password", $data['password'], time() + (3600 * 24 * 30)); /* expire in 1 hour */
setcookie("remember_me", 1, time() + (3600 * 24 * 30));
} else
{
/**
* Following code will unset the cookie
* it set cookie 1 sec back to current Unix time
* so that it will invalid
*/
setcookie("email_id", $data['email_id'], time()-1);
setcookie("password", $data['password'], time()-1);
setcookie("remember_me", 1, time()-1);
}
$_SESSION['user_info']['username'] = stripcslashes(urldecode($result[0]['username']));
$_SESSION['user_info']['userid'] = $result[0]['userid'];
}
}
请帮助我在哪里,我错了。