Автор Тема: Не понял (сессии)  (Прочитано 8694 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kensay

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 29
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Не понял (сессии)
« : 19 Мая 2003, 16:34:44 »
На http://www.php.spb.ru прочитал статью про сессии. Там был пример:
default.php:
   unset($s);
   session_start();
   session_register("s");
?>
index.php:
   include("default.php");
   if (!isset($s[\'start\'])) {
      $s[\'start\']=time();
      echo "Добро пожаловать на наш сайт!";
   }
   else {
      echo "Вы впервые пришли на наш сайт ".(time()-$s[\'start\'])." секунд назад";
   }
?>
В первый раз заходишь-пишет "Добро пожаловать", второй раз-пишет время с моменьа первого посещения. У меня же в всегда пишет "Добро пожаловать". Где может быть ошибка? Может настройки сессии в php.ini?
Заранее благодарен.

Оффлайн FILA

  • кендер
  • Постоялец
  • ***
  • Сообщений: 111
  • +0/-0
  • 2
    • Просмотр профиля
Не понял (сессии)
« Ответ #1 : 19 Мая 2003, 16:55:05 »
kensay
не знаю, у меня работает, что естественно....

может, у тебя авто старт сессии в тру стоит, хотя я в этом не большой специалист?
И вечный бой, покой нам только снится...

Оффлайн kensay

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 29
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Не понял (сессии)
« Ответ #2 : 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

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
Не понял (сессии)
« Ответ #3 : 19 Мая 2003, 18:46:25 »
kensay
гы :)
дедушкины грабли
в php.ini пропиши параметр session.save_path до существующей директории...
AS IS...

Оффлайн kensay

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 29
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Не понял (сессии)
« Ответ #4 : 19 Мая 2003, 21:16:48 »
спасибо, что помог непутевому :)

Оффлайн kensay

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 29
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Не понял (сессии)
« Ответ #5 : 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 значение не изменяется, вроде даже и не получает. Как правильно сделать?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Не понял (сессии)
« Ответ #6 : 20 Мая 2003, 02:03:49 »
не проверял, вроде так :
<?
session_start();
if (
$nickname){
$s[\'nick\']=$nickname;
}
header("Location: index.php?".SID);
?>
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн kensay

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 29
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Не понял (сессии)
« Ответ #7 : 20 Мая 2003, 08:30:04 »
Макс, спасибо, еще одну ошибку заметил:
if (!$nickname){
$s[\'nick\']=$nickname;
}
:)

Оффлайн kensay

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 29
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Не понял (сессии)
« Ответ #8 : 20 Мая 2003, 10:08:54 »
Хочу добить тему и наконец разобраться.
Все выше снаписанное работало у меня дома.
Перетащил на работу и тут пошли глюки.
теперь идентификатор появляется при каждом запуске session_start() и таким образом не получается обращаться к одной сессии.
"дедушкины грабли" на работе исправил(в php.ini прописал параметр session.save_path до существующей директории. в ней и образуются несколько файлов, хотя нужен один)

Как правильно сделать?

Оффлайн kensay

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 29
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Не понял (сессии)
« Ответ #9 : 20 Мая 2003, 13:01:49 »
Из дома приащил php.ini
Все равно делает несколько фаилов.
Неужели никто с таким не встречался? :(

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Не понял (сессии)
« Ответ #10 : 20 Мая 2003, 13:14:19 »
никто не сталкивался.
потому, что ты какой-то фигней страдаешь
SIDFORM какой-то придумал....

Ты можешь написать ПРОСТО:

<? 
session_start(); 
if (!isset(
$_SESSION[\'counter\'])) $_SESSION[\'counter\']=0;
echo "Вы обновили эту страницу ".$_SESSION[\'counter\']++." 
раз.
<a href=".$_SERVER[\'PHP_SELF\'].">обновить"; 
?>


Это у тебя работает?
Если не работает - виноваты настройки сессий. Хотя это вряд ли.

Если работает - то значит ты намудрил в своем коде.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Не понял (сессии)
« Ответ #11 : 20 Мая 2003, 13:23:56 »
попробуй почитать вот это про сессии.
http://phpclub.net/talk/showthread.php?s=&threadid=32270

Может, поможет.

Оффлайн kensay

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 29
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Не понял (сессии)
« Ответ #12 : 20 Мая 2003, 13:31:34 »
RomikChef , спасибо за столь откровенное обьяснение. Все заработало :).

При закрытии браузера, сессии удаляются, а необходимо, что бы в другой раз сервер вспоминал посетителя. Как я понял, надо использовать куки? А если куки отключены, то посетителю придется опять логиниться?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Не понял (сессии)
« Ответ #13 : 20 Мая 2003, 13:39:30 »
конечно.
так устроен, к примеру, этот форум.

Оффлайн kensay

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 29
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Не понял (сессии)
« Ответ #14 : 20 Мая 2003, 13:52:22 »
СПАСИБО!

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28