Есть такая форма. Хотел по клику "Запомнить меня: " установить сессию на 24 часа, а иначе сессия живет до закрытия браузера.
<fieldset>
<legend>Вход: </legend>
<form method="POST">
<p>Введите логин: </p><input type="text" name="login" value="">
<p>Введите пароль: </p><input type="password" name="password" value="">
<p>Запомнить меня: <input type="checkbox" name="remember" value="yes"></p>
<p></p><input type="submit" value="Войти" name="submit">
</form>
<p><a href="reg.php">Зарегистрироваться</a></p>
</fieldset>
Вот php скрипт, место с проблемой (наверное) указал в комментах. В чём дело ?
if(isset($_POST['login'], $_POST['password'], $_POST['submit'])) {
$qwe=isset($_POST['remember']);
//var_dump($_POST['login'], $_POST['password'], $_POST['remember'], $_POST['submit']);
if($_POST['login']=="" || $_POST['password']=="")
echo "Не все поля заполнены! Повторите попытку...";
else {
if(!mysql_connect("localhost", "root", ""))
("Error ".mysql_errno()." ".mysql_error()."\n");
mysql_select_db("vk");
mysql_set_charset("utf8");
$sql_login="SELECT * FROM `user` WHERE `user`.`login`=\"".$_POST['login']."\"";
$sql_password="SELECT * FROM `user` WHERE `user`.`password`=\"".md5($_POST['password'])."\"";
$q=mysql_query("$sql_login")
or die("Error ".mysql_errno()." ".mysql_error()."\n");
$q1=mysql_query("$sql_password")
or die("Error ".mysql_errno()." ".mysql_error()."\n");
if(mysql_num_rows($q)!=0 && mysql_num_rows($q1)!=0) {
/* Определяем session_id */
/* Установка cookie */
/* ТУТ И ВЫХОДИТ БЕДА. УСТАНАВЛИВАЕТ НЕ НА 24 часа КОГДА ЭТО НУЖНО */
if($qwe)
session_set_cookie_params(3600*24); // 24 часа - время жизни кукки
if(!$qwe)
session_set_cookie_params(0); // до закрытия браузера- время жизни кукки
session_start(); // session_id() - возвращает id текущей сессии
$_SESSION['login']=$_POST['login']; // элементы массива $_SESSION доступны везде для текущей сессии
header( "Location: profile.php?id=".$_SESSION['login']);
} else
echo "Неверный логин или пароль! Повторите попытку...";
}
}
P.S. И ещё бы хотелось узнать, как полностью оборвать сессию заранее ?