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
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Убрать ошибку Use of undefined constant [2]
Покинул форум
Сообщений всего: 75
Дата рег-ции: Сент. 2013
Помог: 1 раз(а)
caballero пишет:
в сессии могут хранится данные никак не связанные с авторизацией а PHPSESSID придет всегда если сессии не отключены вообще на сервере
откуда PHPSESSID возьмется? вы считаете сервер сам его ставит безо всяких на то оснований со стороны PHP?
caballero
Отправлено: 06 Января, 2014 - 20:04:27
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
поэтому к чему ваш бессмысленный пост я хз.
а какая информативность вашего поста?
Цитата:
откуда PHPSESSID возьмется? вы считаете сервер сам его ставит безо всяких на то оснований со стороны PHP?
основания - включенный механизм сессий в PHP. Если он включен и вы им пользуетесь хотя бы на одной странице - PHP уже пошлет куку с идентификатором и она будет приходить пока не закроете браузер или явно ее не удалите.
Еще раз - есть стандартный механизм поддержки сессий и нечего туда лезть. Разрабу предоставляется $_SESSION с которым и полагается работать.
Покинул форум
Сообщений всего: 75
Дата рег-ции: Сент. 2013
Помог: 1 раз(а)
caballero пишет:
Цитата:
поэтому к чему ваш бессмысленный пост я хз.
а какая информативность вашего поста?
Цитата:
откуда PHPSESSID возьмется? вы считаете сервер сам его ставит безо всяких на то оснований со стороны PHP?
основания - включенный механизм сессий в PHP. Если он включен и вы им пользуетесь хотя бы на одной странице - PHP уже пошлет куку с идентификатором и она будет приходить пока не закроете браузер или явно ее не удалите.
Еще раз - есть стандартный механизм поддержки сессий и нечего туда лезть. Разрабу предоставляется $_SESSION с которым и полагается работать.
Юзер сделал какие-то действия, например авторизовался. За это он получает куку PHPSSID.
Далее на других страницах сайта идет проверка наличия PHPSSID, если есть, то продолжаем сессию: session_start();
Если PHPSSID у юзера отсутствует, следовательно он не авторизовывался ранее. Так зачем мне для каждого такого неавторизованного запускать сессию и в ней уже делать проверки переменных сессии? Зачем мне впустую напрягать сервер? Если проще изначально проверить наличие PHPSSID.
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
не, ну вообще-то не лишено смысла, чтобы не стартовать сессию, если она не нужна.
В php5.4 даже функцию ввели session_status
там же, в комментах, кстати, есть универсальная функция проверки "стартанутости" сессии
----- Чем больше узнаю, тем больше я не знаю.
caballero
Отправлено: 06 Января, 2014 - 22:53:28
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
если в каком то файле сессионные данные не используются тогда просто не вызывается session_start
куки с идентификатором в любом случае никто не проверяет
Функция session_status() возвращает состояние текущей сессии а не соcтояние куки с PHPSESSID
кстати в принятой ныне архитектуре с единой точкой входа сессия запускается всегда.
На сайтах написанных еще "по-дедовски" такое можно было практиковать
Покинул форум
Сообщений всего: 75
Дата рег-ции: Сент. 2013
Помог: 1 раз(а)
caballero пишет:
Цитата:
Юзер сделал какие-то действия, например авторизовался. За это он получает куку PHPSSID
.
PHPSSID не имеет никакого отношения к авторизации и иметь не может.
ты и правда такой, скажем так, "интелектуал" ?
Про авторизацию было написано для примера, чтобы вам было проще понять.
Я конечно не гуру php, но по-моему нет причин чтобы не использовать сессии и PHPSSID в авторизациях. Если это совершенно неправильно, то буду рад услышать ваши доводы.
caballero пишет:
(Добавление)
Цитата:
Зачем мне впустую напрягать сервер?
чем напрягать?
Вы что, не знаете механизма работы сессий? Так я вам расскажу
При старте сессии для каждого юзера апач создает временный файл в папке temp с идентификатором PHPSSID.
Теперь представьте какая работа предстоит серверу по созданию/удалению этих файлов если юзеров будет 100,200к,1кк
И только не надо кричать, что это все не правильно и нужно делать по другому. В данной ситуации задача поставлена именно так, как есть.
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
При старте сессии для каждого юзера апач создает временный файл в папке temp с идентификатором PHPSSID.
не обязательно, может быть использован мемкеш, например или какая нибудь быстрая БД типа редиса.
Цитата:
Теперь представьте какая работа предстоит серверу по созданию/удалению этих файлов если юзеров будет 100,200к,1кк
так работают все сервера. На твоем быдлосайте может и не нужны сесии. но сервера с такой нагрузкой без сессий не работают. Просто не обходятся.
Цитата:
В данной ситуации задача поставлена именно так, как есть.
задача бессмысленная и поставлена по идиотски. Можно использовать или неиспользовать сессии но сессионную куку никто не проверяет.
Те кто так пытаются делать (не будем тыкать пальцами) приходят на форум с дебильными вопросами почему не работает.
Судя по манере общения, быдло здесь только одно, и это точно не я.
Мелкий
Отправлено: 07 Января, 2014 - 11:38:47
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
bestbios пишет:
нелогичности продолжения сессии с помощью
0) как правило, сессии работают через куки. А куки по-умолчанию в $_REQUEST не попадают.
1) упомянутый выше http://www.php.net/manual/en/fun...ssion-status.php
2) в старых версиях isset($_COOKIE[session_name()]
----- PostgreSQL DBA
caballero
Отправлено: 07 Января, 2014 - 11:50:12
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
Я так и не услышал рационального объяснения нелогичности продолжения сессии с помощью
потому что постановка задачи нелогична и нерациональна. и эта логика перестанет работать как только сессия понадобится для чего то еще кроме авторизации и ее придется юзать даже для неавторизованых пользователей как бывает в подавляющем количестве сайтов которые чуть сложнее визитки. Когда попробуешь писть реальный проект увидишь - ты не первое упрямое школоло здесь которому люди с опытом програмирования безуспешно пытаются втолковать прописные истины.
Мелкий
Почему то казалось что $_REQUEST это сборная $_GET,$_POST и $_COOKIE
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.