Начал изучать php, изучал тему сессии и куки и застопорился. Перечитал php.net, смотрел разные скрипты авторизации и никак не могу понять принцип работы связки сессия+кука.
Учусь по видео-урокам (inpost - school-php(*)com), что очень удобно и понятно, там по урокам по ходу изучения языка пишеться свой-первый учебный сайт, и в домашних заданиях есть такие вот задачки по типу: сделать авто-авторизацию (работа с куками). Как я уже не крутил ни черта не могу понять как же правильно сделать.
Вот есть код контроллера(обработчика) - auth.php
Код auth.php
<?php
if(isset($_POST['login'],$_POST['password'])) {
$res=q("
SELECT * FROM `users`
WHERE `login`='".es($_POST['login'])."'
AND `password`='".myHash($_POST['password'])."'
AND `active`=1
LIMIT 1
");
if(mysqli_num_rows($res)) {
$_SESSION['user']=mysqli_fetch_assoc($res);
$status = "OK";
/*
$login=$_SESSION['user']['login'];
$access=$_SESSION['user']['access'];
//
setcookie('login','',time()+3600*24,'/');
setcookie('access','',time()+3600*24,'/');
$_COOKIE['login']=$_SESSION['user']['login'];
$_COOKIE['access']=$_SESSION['user']['access'];
*/
header('location: index.php');
} else {
$error='Wrong login or password';
}
}
?>
И вид, view - auth.tpl
Код auth.tpl
<div style="padding:100px;">
<?php if(!isset($status) || $status !='OK') { echo @$error ?>
<form action="" method="post">
Login: <input type="text" name="login"><br>
Pass: <input type="password" name="password"><br>
<input type="radio" name="rem">Запомнить меня</input><br>
<input type="Submit" name="Submit" value="Enter">
</form>
<?php } else { ?>
Wrong pass or login
<?php } ?>
</div>
Все мои потуги безуспешны, хотя ничего сложного вроде здесь нет, *setcookie -создает,редактирует,удаляет куку у клиента), а вот с глобальной $_COOKIE['ключ'] - уже проблема, этой переменной я так понимаю присваивается название или значение - от setcookie?
Пробовал работать только с сессиями, но после закрытия браузера сессия сразу умирает. Как-то ковырялся с куками, вродь сделал, но после открытия браузера кука считывалась а вот сессия мертва была...
В общем если можете, помогите разобраться, хочу понять какой же принцип работы.