Реализация автологина. Правильно ли?

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

Nicca

Новичок
Реализация автологина. Правильно ли?

Делаю автологин.

Подскажите правильный ли такой алгоритм:

Файл login.php
Если правильный логин и пароль и юзер существует, тогда регистрирую сессию и завожу куку:
PHP:
session_register("ses_username");
session_register("ses_usid");         // usid - идентификатор пользователя
$ses_username=$_POST['login'];
$ses_usid=выборка из базы идентификатора пользователя

setcookie("mas[user]", "username", time()+24*12*3600);
setcookie("mas[passmd5]", "passmd5", time()+24*12*3600);
Потом во всех остланых файлах в первой сторчке скрипта:

PHP:
if ( (!isset($ses_username)&&(!isset($ses_usid)) )
  {
    if ( (isset($_COOKIE['mas[user]'])) && (isset($_COOKIE('mas[passmd5]'))  )
      {
           // Запрос к базе на предмет пользователя. Если он есть, тогда регистрирую сессию и перерегистрирую куку.
      }
  }
-~{}~ 28.03.07 01:18:

Еще вопрос.
У меня есть кука со значениями mas[user] и 'mas[passmd5] Почему такой код не работает:
PHP:
 if ( (isset($_COOKIE['mas[user]'])) && (isset($_COOKIE['mas[passmd5]']))  ) 
{ echo "Данные о пользователе есть";}
При таком условии текст не выводится. Если же в условии написать
PHP:
  !isset(....
то тогда все пишет нормально??
 

Nicca

Новичок
Ну вроде бы работает нормально все..
Но не все)))
При выходе из системы не могу убить куку. Почему? пишу ведь вроде правильно:

PHP:
setcookie("mas[user]", time()-600);
setcookie("mas[passmd5]", time()-600);
Разлогиниться не получается.
После этого захожу в папку с куками и моя кука лежит там преспокойненько и в ней ничего не меняется.
 

Sokil.Dmytro

Новичок
// Запрос к базе на предмет пользователя. Если он есть, тогда регистрирую сессию и перерегистрирую куку.
а зачем постоянно базу мучить на предмет наличия юзера! установил сессию и проверяй в ней допустим наличие логина! сессию полаомать можно только при условии подбора ее идентификатора

добавлено позжее:
забей не досмотрел код
 

Nicca

Новичок
Автор оригинала: denver
Nicca

Присмотрись еще. Или найди пример удаления куки в мануале.
Я пробовал:
setcookie("mas[user]", time()-600);
и так
setcookie("mas[user]");

Почему-то кука не убивается
 

Sokil.Dmytro

Новичок
Пример 2. setcookie() delete example

<?php
// set the expiration date to one hour ago
setcookie ("TestCookie", "", time() - 3600);
setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", ".example.com", 1);
?>
 

Bitterman

Новичок
Nicca
Написали же: Присмотрись еще. Или найди пример удаления куки в мануале.
Из мануала:
bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure]]]]] )
 

Nicca

Новичок
Вот мой logout

PHP:
function logout($lng)
  {
    session_unregister("ses_username");
    session_unregister("ses_usid");
    session_destroy();
    setcookie("mas[user]", time()-800);
    setcookie("mas[passmd5]", time()-800);
    Header("Location: [url]http://www.site.com/[/url]");
  }
А вот то что пишу в каждом скрипте сначала:


PHP:
session_start();
if ( (!isset($ses_username))&&(!isset($ses_usid)) ) 
  { 
    if ( (empty($_COOKIE['mas[user]'])) && (empty($_COOKIE['mas[passmd5]']))  ) 
      { 
	$sql="select id from tbl where login='".$mas[user]."' and pass='".$mas[passmd5]."'";
	$res=db_select($sql);
	$ns=mysql_num_rows($res);
	if($ns>0)
	  {
	    while($row=mysql_fetch_array($res))
	      {
		$id=$row['id'];
		session_register("ses_username");
		session_register("ses_usid");
		$ses_username=$mas[user];
		$ses_usid=$id;		
		setcookie("mas[user]", "$mas[user]", time()+24*12*3600); 
		setcookie("mas[passmd5]", "$mas[passmd5]", time()+24*12*3600); 
	      }					
	}	
      } 
  }
Проверял если убрать все эти проверки, то разлогинится получается.
Значит проблема в проверке(второй блок кода). Может у меня что-то не правильно именно в нем? Но ошибку не могу найти. Совсем запутался. Может кто уидит????????
 

Sokil.Dmytro

Новичок
function logout($lng)
{
session_unregister("ses_username");
session_unregister("ses_usid");
session_destroy();
setcookie("user[0]", "", time()-800);
setcookie("user[1]", "", time()-800);
Header("Location: http://www.site.com/");
}

тебе ж уже нарисовали все:)
 

Nicca

Новичок
Я скопировал код не из нужного файла. на самом деле там
setcookie("mas[user]", time()-800);
setcookie("mas[passmd5]", time()-800);
 

Bitterman

Новичок
Чукча не читатель, чукча писатель? Попробуй почитать не только свои посты.
 

Nicca

Новичок
В чем моя ошибка в удалении куки? Нормально может кто-нибудь обьяснить?
 

StUV

Rotaredom
Тема закрыта.

Проблемы личного характера и бессмысленные споры между участниками не являются предметом обсуждения форума.
Обсуждайте их в привате.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху