nobody Ты писал такой код:
$user_name = $name;
$user_phone = $phone;
session_register("user_name");
session_register("user_phone");
Header("Location: step2.php");
exit;
Сделаю несколько поправок.
1.ИМХО лучше все данные для сессии загонять в массив:
$sess=array();
$sess[\'user_name\']=$name;
$sess[\'user_phone\']=$phone;
2. Лучше в файле step2.php сначало сделать
unset($sess);
session_start();
А то если твой скрипт вызовут так
step2.php?user_name=name&user_phone=02
будут у тебя проблемы с безопасностью
После авторизации я пишу в базу данных этому пользователю время и дату авторизации, после чего при переходе от страници к страници я проверяю существует ли пользователь в базе если нет ганю его в шею, если существует то проверяю не слишком ли много времени прошло с момента авторизации, если нет то перезаписываю время.
По поводу авторизации.
Я делаю так. Проверяю логин/пароль если все правильно то в сессию запиисываю "признак авторизации":
$sess[\'auth\']=1;
В последующих страницах просто проверяю эту переменную. Если она равна 1 значит пользователь прошел авторизацию.
То есть в моем методе не нужно делать лишний запрос к БД.
Что касается старых сессий то насколько я знаю PHP их сам удляет. В переменной
gc_maxlifetime - через сколько после последнего обращения нужно удалить эту сессию.