За последние 24 часа нас посетили 18138 программистов и 1609 роботов. Сейчас ищут 1396 программистов ...

Общее понятие пользователей и связи с ними

Тема в разделе "PHP для новичков", создана пользователем Ares, 26 янв 2008.

  1. Ares

    Ares Активный пользователь

    С нами с:
    5 окт 2007
    Сообщения:
    25
    Симпатии:
    0
    Когда пользователи логинятся на сайт, насколько я понимаю, ихние IP адреса добавляются в список онлайновых.
    Вопрос №1: какой это должен быть тогда список? таблица в БД или список каких-то открытых соединений с компьютерами пользователей?
    №2: в принципе есть ли вобще такое явление соединений в интернете?
    №3: как должен мой сайт определять которые из пользователей всё ещо онлайн, если пользователи "не выходят"? по времени последнего действия пользователя? либо есть какая-то возможность получить информацию о том что связь с пользователем не осуществяется? либо ещё какие-то методы???

    Буду благодарен за представления решения следущей небольшой задачки:
    If пользователь онлайн then
    {echo $имя} else
    {echo "гость"} ;
     
  2. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Ares
    Своя система сессий нужна или отдельная система исключительно для определения зверьков онлайн. У меня своя система сессий, сессии PHP не использую.
     
  3. Ares

    Ares Активный пользователь

    С нами с:
    5 окт 2007
    Сообщения:
    25
    Симпатии:
    0
    Hight
    Тоесть общепринятой эфективной методики нет?
     
  4. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Что за бред, моя методика не эффективна и не общепринята чтоли. =) Этот форум по той же "методике" устроен, просто реализация разная.
     
  5. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Обычно на форуме стоит тайм-аут в 15 минут. То есть, когда человек заходит на форум, то он заносится в бд с временной меткой. Когда заходит следующий - берутся данные из этой таблицы (устаревшие записи удаляются) и пользователю показываются юзеры "онлайн".
     
  6. Anonymous

    Anonymous Guest

    Т.е. единственно-доступный метод - эвристический.
     
  7. Ares

    Ares Активный пользователь

    С нами с:
    5 окт 2007
    Сообщения:
    25
    Симпатии:
    0
    Для создания системы сессий на динамических страницах сайта (в начале страниц) необходимо включать сессию?
    Как лучше генерировать имена сессий юзерам $a?
     
  8. Ares

    Ares Активный пользователь

    С нами с:
    5 окт 2007
    Сообщения:
    25
    Симпатии:
    0
    И вопрос по передаче переменных. Для передачи переменные записываются в суперглобальные масивы. Эти масивы записаны на хост сервере? Если да то они являются одинаковыми для всех... Не сказывается ли тогда это на персональных даных(не "перемешиваются" ли они) если они передаются по одинаковым переменным?
     
  9. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    > как должен мой сайт определять которые из пользователей всё ещё онлайн

    никак. это невозможно определить средствами http1.1
     
  10. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Угу, но можно проверять активность пользователя, "уникально" опознать зверька можно. Если ~5 минут не было активности значит ушёл.
    =) php умный, он такого не допустит
     
  11. Anonymous

    Anonymous Guest

    угу. Связка *AMP вообще на порядки умнее 90% тех, кто пытается с ней работать...
     
  12. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    > Если ~5 минут не было активности значит ушёл.

    значит читает/думает/пишет ответ.
     
  13. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Apache + PHP + MySQL.
    и не говори =(
     
  14. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Ну или так,,, а может в туалет побежал или покурить, кто его знает.
     
  15. Anonymous

    Anonymous Guest

    Или в туалет покурить.
     
  16. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    или покурить в туалете с ноутбуком на коленях :)
     
  17. Adil

    Adil Активный пользователь

    С нами с:
    21 сен 2006
    Сообщения:
    280
    Симпатии:
    0
    dark-demon
    это что пример вложенных функций? =)
     
  18. Ares

    Ares Активный пользователь

    С нами с:
    5 окт 2007
    Сообщения:
    25
    Симпатии:
    0
    Я с сессиями не разобрался. Для роботы юзера в режиме сесии что мне нужно зделать?
    преобразовать ссылки по сайту следущим образом?
    и добавлять в код страниц:
    ?
    Но если у юзера включены куки => SID не генерируется(как я вычитал). <= тут непонятка. Создавать условие? Как через куки я вобще не нашол примеров(

    По моим соображениям, SID нужен для того чтобы идентифицировать сесии. Как происходит процес ведения сессий? опишите плз.
    Составлю по своему пониманию, а вы меня исправте если не так:
    1. Юзер конектится с сайтом и ему присваивается SID. Если включены куки тогда что?
    2. Соответственно SID влечот за собой создание файла переменных для работы с пользователем. Этой сессии можно задать имя функцией session_name ("Session") для удобства.
    3. При движении юзера по сайту все переменные, определённые в функции session_register("var1, var2"), автоматически сохраняются в файл сессии. И при дальнейшей работе переменные сохраняют своё значение на всех страницах где они зарегестрированы тойже функцией session_register $var1, $var2.
    4. Сессия удаляется по истечении времени заданому в функции session_handler_gs(int $maxtime).

    Как можно вывести список сессий и определить существование определённой сессии(по параметру в ней $user_name)?

    Задаю вопросы скопом ибо долго жду ответов. Простите уж :roll:
     
  19. Anonymous

    Anonymous Guest

    Ares, в начале страницы делаешь session_start();
    потом, что что хочешь сохранить в сессию, кладешь в массив $_SESSION
    все, что хочешь прочитать из сессии, читаешь из массива $_SESSION
    Все.
    После каждого session_start(); сохраняй в базу пару session_id(); и time(); - потом выборкой по time() смодешь узнать нужное кол-во.
     
  20. Ares

    Ares Активный пользователь

    С нами с:
    5 окт 2007
    Сообщения:
    25
    Симпатии:
    0
    Горбунов Олег
    А сессии для каждого юзера будут уникальными? По умолчанию имена сессий ведь PHPSESID. Это в моем сомнительном самоучебнике написано что переменные перемешаются если не задавать перед session_start(); session_name();
    session_id(); - это SID?
    Хм. И очищать базу от "долгонеактивных" в этой же выборке?
     
  21. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    :evil: какие нах учебники, в топку это всё. Мануал читать надо.
     
  22. Anonymous

    Anonymous Guest

    ВЫКИНЬ ЭТОТ УЧЕБНИК. o_O
    Да. Это функция возвращает SID.
    Если бы они были не уникальными, они были бы нахрен не нужны.
    Например. Или модернезировать таблицу, и тогда можно будет хранить для статистики например... но это уже все depends to you.
     
  23. Ares

    Ares Активный пользователь

    С нами с:
    5 окт 2007
    Сообщения:
    25
    Симпатии:
    0
    Трудно переводить и вьезжять одновременно) Переведьённый мануал я прочёл)

    Вроде всё понял. Спс всем
     
  24. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    к чему такие извращения? достаточно лишь прописать в .htaccess хранить сессии в sqlite базе, а с ней уж делайте что хотите :)
     
  25. Ares

    Ares Активный пользователь

    С нами с:
    5 окт 2007
    Сообщения:
    25
    Симпатии:
    0
    Всётаки с передачей не разобрался :(
    Элементарный пример. Из одной сраници передаём значение переменной в другую:
    Результат нажатия кнопки "go!":