никогда раньше не применял куки, и у меня возникли некоторые проблемы.Если пользователь установит флажок «запомнить меня» и войдет в систему, закроет браузер, а затем снова откроет его, он останется в системе, как и должен.Но если пользователь снимает флажок «запомнить меня», входит в систему, закрывает браузер, а затем снова открывает его, он все равно входит в систему. Я перепробовал все, что мог придумать!
<?php
define('INCLUDE_CHECK',true);
require 'connection.php';
session_name('ppLogin');
session_set_cookie_params(2*7*24*60*60);
session_start();
if($_SESSION['id'] && !isset($_COOKIE['ppRemember']) && !$_SESSION['rememberMe'])
{
$_SESSION = array();
session_destroy();
}
if(isset($_GET['logoff']))
{
$_SESSION = array();
session_destroy();
header("Location: index.php");
exit;
}
if($_POST['submit']=='Login')
{
$err = array();
if(!$_POST['username'] || !$_POST['password'])
$err[] = 'All the fields must be filled in!';
if(!count($err))
{
$_POST['username'] = mysql_real_escape_string($_POST['username']);
$_POST['password'] = mysql_real_escape_string($_POST['password']);
$_POST['rememberMe'] = (int)$_POST['rememberMe'];
$row = mysql_fetch_assoc(mysql_query("SELECT id,username FROM client WHERE username='".$_POST['username']."' AND password='".$_POST['password']."'"));
if($row['username'])
{
$_SESSION['username']=$row['username'];
$_SESSION['id'] = $row['id'];
$_SESSION['rememberMe'] = $_POST['rememberMe'];
setcookie('ppRemember',$_POST['rememberMe']);
} else {
$err[]='Wrong username and/or password!';
}
}
if($err){
$_SESSION['msg']['login-err'] = implode('<br />',$err);
} else {
echo "sent";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link type="text/css" href="css/custom-theme/jquery-ui-1.8.16.custom.css" rel="Stylesheet" />
<link type="text/css" href="css/style.css" rel="Stylesheet" />
<link type="text/css" href="css/login.css" rel="Stylesheet" />
<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.16.custom.min.js"></script>
<script type="text/javascript" src="js/validate-login.js"></script>
</head>
<body>
<div id="wrap">
<div id="header">
</div>
<div id="menus">
<div id="account">
<a href="register.php" class="ui-corner-all"> REGISTER </a>
<a href="login.php" class="ui-corner-all"> LOG IN </a>
</div>
<div id="navigation-menu">
<a href="register.php" class="ui-corner-all"> CONTACT US </a>
</div>
</div>
<?php
if(!$_SESSION['id']):
?>
<div id="login">
<form id="login-form" action="do-login.php" style="autocomplete:off" method="post">
<div id="form-part-1" class="l-form">
<h1>Account details</h1>
<p>Please enter your username and password in the boxes provided below</p>
<label for="username">Username
<span class="small"><label id="error_1"></label></span>
</label>
<input type="text" name="username" id="username" maxlength='15'/>
<label for="password">Password
<span class="small"><label id="error_2"></label></span>
</label>
<input type="password" name="password" id="password" maxlength='15' />
<label for ="rememberMe"> Remember me</label>
<input name="rememberMe" id="rememberMe" type="checkbox" checked="checked" value="1" />
<div class="button" style="float:right;">
<input value="Login" type="submit" name="submit" id="button_1" />
</div>
<div class="spacer"></div>
</div>
</form>
</div>
<?php
else:
?>
<div id="already-logged-in">
<h1>You are already logged into your account</h1>
<h2>To go to your account: <a href="my-account.php" class="ui-corner-all"> My Account </a></h2>
<h3>Or log out: <a href="destroy.php" class="ui-corner-all"> Log out of My Account </a></h3>
</div>
<?php
endif;
?>
<div id = "footer">
</div>
</div>
</body>
</html>
Спасибо!