Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Сессия
Форумы портала PHP.SU » PHP » Программирование на PHP » Сессия

Страниц (1): [1]
 

1. jfr - 24 Марта, 2010 - 19:01:57 - перейти к сообщению
странно, но почему всегда у меня выполняется условие !isset($f['start']), даже после повторного входа на страницу index.php, тоесть результат всегда "Добро пожаловать на наш сайт!" ?
index.php
------------
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. include("d.php");
  4.    if (!isset($f['start'])) {
  5.    $f['start']=time();
  6.       echo "Добро пожаловать на наш сайт!";
  7.    }
  8.    else {
  9.      echo "Вы впервые пришли на наш сайт ".(time()-$f['start'])." секунд назад";
  10.      }
  11.   ?>
  12.  



d.php
----------
2. kroks - 24 Марта, 2010 - 19:05:58 - перейти к сообщению

может
PHP:
скопировать код в буфер обмена
  1.  $f['start']=time();

(Добавление)
и мне кажется что d.php должен выглядеть как
PHP:
скопировать код в буфер обмена
3. jfr - 24 Марта, 2010 - 19:15:06 - перейти к сообщению
Так тоже не работает, странно!
index.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. include("d.php");
  3.    if (!isset($f)) {
  4.    $f=time();
  5.       echo "Добро пожаловать на наш сайт!";
  6.    }
  7.    else {
  8.      echo "Вы впервые пришли на наш сайт ".(time()-$f)." секунд назад";
  9.      }
  10.   ?>


d.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3.    unset($f);
  4.  
  5.  
  6.    session_register("f");
  7.  
  8. ?>
4. kroks - 24 Марта, 2010 - 19:18:46 - перейти к сообщению
Я бы на твоем месте проще сделал
PHP:
скопировать код в буфер обмена
  1. if (!isset($_SESSION['start'])) {
  2.         $_SESSION['start']=time();
  3.         echo "Добро пожаловать на наш сайт!";
  4. }
  5. else {
  6.         echo "Вы впервые пришли на наш сайт ".($_SESSION['start']-time())." секунд назад";
  7. }
5. jfr - 24 Марта, 2010 - 19:29:48 - перейти к сообщению
Kroks, впринципе мой скрипт тоже должен работать, почему не работает? твой скрипт постоянно показывает время Улыбка , тоесть сразу показывает 'вы пришли 0 секунд назад'
6. kroks - 24 Марта, 2010 - 19:33:02 - перейти к сообщению
да? странно. Ты сесси не забывай удалять. Я оперу юзаю, там F12>настройки для сайта>cookies и соответственно удалить PHPSESSID
7. jfr - 24 Марта, 2010 - 19:42:00 - перейти к сообщению
Kroks, скрипт работает твой, но мой скрипт с использованием session_register и include как-то не работает...
8. Stierus - 25 Марта, 2010 - 09:36:05 - перейти к сообщению
Цитата:
Kroks, скрипт работает твой, но мой скрипт с использованием session_register и include как-то не работает...
так он и не должен работать.
1. session_register("f"); создает переменную $_SESSION['f'] , причем пустую ... если уж и полез ты в эти архивы древности, использовал бы session_is_registered для проверки, почему ты смотришь if (!isset($f['start'])) - мне вообще не понятно, откуда ты это взял ?

2. Не используй session_register, в php5 ее оставили лишь для совместимости с php4, в следующих версиях этой функции уже не будет, учись сразу писать нормально - используй $_SESSION
9. JustUserR - 25 Марта, 2010 - 14:48:27 - перейти к сообщению
Stierus пишет:
session_register("f"); создает переменную $_SESSION['f']
Вроде бы эта устаревшая функция создает переменную прямо в глобальной области видимости
10. jfr - 26 Марта, 2010 - 20:02:55 - перейти к сообщению
какая бы она устаревшая бы ни была, она ошибку не выдает, только неправильный результат выводит, а почему так?
11. JustUserR - 27 Марта, 2010 - 12:39:04 - перейти к сообщению
jfr пишет:
Какая бы она устаревшая бы ни была, она ошибку не выдает, только неправильный результат выводит, а почему так?
Вообще устаревшие функции ошибок не выдают иначе бы их убрали - но они могут работаь не совсем аналогично новой функции (И выдавать предупрежнеия но только при определенных условиях Улыбка
Чтоб работал ваш вариант в PHP5 необходимо включить regsiter_globals или на обработчик включения сессии поставить функцию которая будет связаывать переменные сесии с соответствующими глобальными переменными

 

Powered by ExBB FM 1.0 RC1