include("default.php"); if (!isset($s[\'start\'])) { $s[\'start\']=time(); echo "Добро пожаловать на наш сайт!"; } else { echo "Вы впервые пришли на наш сайт ".(time()-$s[\'start\'])." секунд назад"; } ?> В первый раз заходишь-пишет "Добро пожаловать", второй раз-пишет время с моменьа первого посещения. У меня же в всегда пишет "Добро пожаловать". Где может быть ошибка? Может настройки сессии в php.ini? Заранее благодарен.
Название: Не понял (сессии)
Отправлено: FILA от 19 Мая 2003, 16:55:05
kensay не знаю, у меня работает, что естественно....
может, у тебя авто старт сессии в тру стоит, хотя я в этом не большой специалист?
Название: Не понял (сессии)
Отправлено: kensay от 19 Мая 2003, 18:22:21
Возможно у меня не считывается сессия, пишет варнинг: Warning: session_start() [function.session-start]: open(/tmp\\sess_f578ccd4ecc166b831d200c08efc54a0, O_RDWR) failed: No such file or directory (2) in F:\\internet\\www\\test_php\\default.php on line 3
Как настроить?
Название: Не понял (сессии)
Отправлено: ThE0ReTiC от 19 Мая 2003, 18:46:25
kensay гы :) дедушкины грабли в php.ini пропиши параметр session.save_path до существующей директории...
Название: Не понял (сессии)
Отправлено: kensay от 19 Мая 2003, 21:16:48
спасибо, что помог непутевому :)
Название: Не понял (сессии)
Отправлено: kensay от 20 Мая 2003, 01:37:45
Впзник еще вопрос. Как передать на другую страницу параметры сессии, чтобы в ней менять их? Пример, 2 файла: index.php:
unset($s); session_start(); define ("SIDFORM",""); session_register("s"); if (!isset($s[\'nick\'])) { echo "Добро пожаловать на наш сайт!"; } else { echo "Hello, ".$s[\'nick\']."!"; }
?>
!!!!!!!
login.php:
if (!$nickname){ $s[\'nick\']=$nickname; } header("Location: index.php"); ?>
В login.pnp значение не изменяется, вроде даже и не получает. Как правильно сделать?
Название: Не понял (сессии)
Отправлено: Макс от 20 Мая 2003, 02:03:49
не проверял, вроде так :
session_start(); if ($nickname){ $s[\'nick\']=$nickname; } header("Location: index.php?".SID); ?>
Название: Не понял (сессии)
Отправлено: kensay от 20 Мая 2003, 08:30:04
Макс, спасибо, еще одну ошибку заметил: if (!$nickname){ $s[\'nick\']=$nickname; } :)
Название: Не понял (сессии)
Отправлено: kensay от 20 Мая 2003, 10:08:54
Хочу добить тему и наконец разобраться. Все выше снаписанное работало у меня дома. Перетащил на работу и тут пошли глюки. теперь идентификатор появляется при каждом запуске session_start() и таким образом не получается обращаться к одной сессии. "дедушкины грабли" на работе исправил(в php.ini прописал параметр session.save_path до существующей директории. в ней и образуются несколько файлов, хотя нужен один)
Как правильно сделать?
Название: Не понял (сессии)
Отправлено: kensay от 20 Мая 2003, 13:01:49
Из дома приащил php.ini Все равно делает несколько фаилов. Неужели никто с таким не встречался? :(
Название: Не понял (сессии)
Отправлено: Меняздесьдавнонет от 20 Мая 2003, 13:14:19
никто не сталкивался. потому, что ты какой-то фигней страдаешь SIDFORM какой-то придумал....
Ты можешь написать ПРОСТО:
session_start(); if (!isset($_SESSION[\'counter\'])) $_SESSION[\'counter\']=0; echo "Вы обновили эту страницу ".$_SESSION[\'counter\']++." раз. обновить"; ?>
Название: Не понял (сессии)
Отправлено: Меняздесьдавнонет от 20 Мая 2003, 13:23:56
попробуй почитать вот это про сессии. http://phpclub.net/talk/showthread.php?s=&threadid=32270
Может, поможет.
Название: Не понял (сессии)
Отправлено: kensay от 20 Мая 2003, 13:31:34
RomikChef , спасибо за столь откровенное обьяснение. Все заработало :).
При закрытии браузера, сессии удаляются, а необходимо, что бы в другой раз сервер вспоминал посетителя. Как я понял, надо использовать куки? А если куки отключены, то посетителю придется опять логиниться?
Название: Не понял (сессии)
Отправлено: Меняздесьдавнонет от 20 Мая 2003, 13:39:30
конечно. так устроен, к примеру, этот форум.
Название: Не понял (сессии)
Отправлено: kensay от 20 Мая 2003, 13:52:22
СПАСИБО!
Название: Не понял (сессии)
Отправлено: D13@ от 21 Мая 2003, 21:18:13
А можно сделать чтоб сессия хранилась после закрытия окна браузера???
Название: Не понял (сессии)
Отправлено: Меняздесьдавнонет от 21 Мая 2003, 21:40:03
Можно, но не нужно. Это неправильно.
Название: Не понял (сессии)
Отправлено: kensay от 21 Мая 2003, 21:42:00
Нет, но можно испльзовать куки. например: setcookie("player", $s[\'nick\'], time()+36000); setcookie("player_email", $s[\'email\'], time()+36000);
После повторного вхождения проверяй на наличие $player и $player_email. У меня так работает.
Название: Не понял (сессии)
Отправлено: Меняздесьдавнонет от 21 Мая 2003, 21:43:18
у тебя не сервер бо бо, а голова бо бо.
а если у меня следующая сессия будет с другого компьютера?
а если после того, как я поработал, сидя в интернет-кафе, кто-то зашел после меня и влез в мою сессию?
Как же я задолбался объяснять примитивные ыещи, которые любой может сообразить, если только даст себе труд немного подумать, а не приставать ко всем - расскажите! Покажите!
Название: Не понял (сессии)
Отправлено: Меняздесьдавнонет от 21 Мая 2003, 21:49:39
Цитировать
Можно, но не нужно.
причем можно относится к случаю, когда куки работают. когда они не работают ответ - нельзя.
Название: Не понял (сессии)
Отправлено: D13@ от 21 Мая 2003, 22:49:10
RomikChef А ты уверен что мне это нужно для интернета!!! С головой у меня всё вопядке, не нравиться пост не пости тогда!
Название: Не понял (сессии)
Отправлено: Меняздесьдавнонет от 22 Мая 2003, 09:20:59
Да хоть для чего. Сессия - это пока не закрыли браузер. Ну я тебе два примера привел - могу еще тыщу привести. Дело не в примерах.
Ну я же объяснил прямо перед тобой, кенсаю - как делается, чтобы юзера запоминало между сессиями.
Впрочем, с какой стсти мне тебя уговаривать. Делай как хочешь - хоть трусы на голову надевай. потом у тебя начнутся проблемы, которых ты сейчас, из-за своего микроскопического кругозора не видишь.