Работа с cookies

Статус
В этой теме нельзя размещать новые ответы.

coolaj

Создатель
Регистрация
9 Дек 2008
Сообщения
46
Реакции
12
Пытаюсь кое-что сделать в PHP на тему cookies.

Что мне нужно: мне нужно, чтобы информация запоминалась в cookies на компе пользователя. Чтобы когда он снова заходил на сайт, то он автоматически ауторизовался на сайте

Что я смог сделал: пока я смог сделать только так: если у меня открыты несколько окон броузера, то если я закрываю и открываю сайт, тогда я авторизуюсь. Но когда я закрываю все броузеры, то вся информация теряется.

Помогите, кто знает как.
 
Выставлять время жизни куки.
В мануале достаточно примеров.
 
PHP:
setcookie ("name", "name", time()+3600*24); // записываем cookies на сутки
setcookie ("name", "name", time()+3600*24*365); // записываем cookies на год
 
Огромное спасибо, я почему-то просто напутал cookies с session

Было:
PHP:
session_start();
if ($userid && $password)
{
	// если пользователь как раз пытается зарегистрироваться
	if ($userid=="***" and $password=="***")
	{
		// если пользователь найден в базе данных,
		// зарегистрировать его идентификатор
		$valid_user = $userid;
		session_register("valid_user") ;
	}
}

Стало:

PHP:
session_start();
if (!isset($_COOKIE["userid"]) or !isset($_COOKIE["password"]) or ($_COOKIE["userid"] <> "" and $_COOKIE["password"] <> ""))
{
	// если пользователь как раз пытается зарегистрироваться
	if ($userid=="***" and $password=="***")
	{
		// если пользователь найден в базе данных,
		// зарегистрировать его идентификатор
		setcookie("userid", $userid, time()+3600*24*14);
		setcookie("password", $password, time()+3600*24*14);
		$valid_user = $userid;
		session_register("valid_user") ;
	}
}
 
какой ужас! ты же хранишь логин и пароль прямо в куках в чистом виде! :eek:

храни все переменные авторизации только в сессии, таким образом в куках у пользователя будет только ID сессии; а в начале каждой страницы проверяй наличие $_SESSION['userid'] и $_SESSION['password'], а не $_COOKIE

время жизни сессионной куки установи через функцию session_set_cookie_params
 
Забудь про session_register() - это каменный век.
Используй $_SESSION = .
 
с $_SESSION тоже не мало проблем.
если к такому скрипту:
PHP:
<?php
if(isset($_SESSION['id'])){
  echo $_SESSION['id'];
}
?>
обратиться через запрос script.php?_SESSION[id]=1
то выведется единица. Тот же результат при проверке _SESSION[userid] и _SESSION[password]
 
с $_SESSION тоже не мало проблем.
Проблемы есть со всем, если маны не читать и учится не хочется: session_register - устаревший вариант и убирается из языка.
А что ты хотел показать своим примером, я не осилил.
 
Каюсь, не учел некоторые условия для удачной эксплуатации.. =/
 
с $_SESSION тоже не мало проблем.
если к такому скрипту:
PHP:
<?php
if(isset($_SESSION['id'])){
  echo $_SESSION['id'];
}
?>
обратиться через запрос script.php?_SESSION[id]=1
то выведется единица. Тот же результат при проверке _SESSION[userid] и _SESSION[password]
А если включить session_start();?
В твоем случае это помоему не сессия
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху