Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > перемменые в сессииях


Автор: bazzjr 5.5.2008, 23:06
Всем уважаемым Экспертам день добрый.
У меня ряд теоретических вопросов относительно использования сессий и переменных в них.

1. Если сайт построен полностью на сессиях, с частым использованием переменных в сессиях и их большим количеством (до 100 переменных за сессию в сессии), ПЛОХО ли это, и чем грозит?

2. Сколько оптимально можно использовать ПЕРЕМЕННЫХ в сессиях???
     2.1. При ИХ постоянном присутствии в сессии?
            2.2.  А так же непостоянном (т.е. присутствуют на одну страницу сайта, а затем удаляются)?

3. Каковы нагрузки на сервер при использовании сессий и переменных в них (хотя-бы теоретически)?

4. Другими словами, можно ли использовать сессии на сайте, как основа основ?

Заранее благодарен, всем кто откликнется!

Автор: Feldmarschall 5.5.2008, 23:11
Можно, но обычно если сайт "построен полностью на сессиях", это означает либо пробелы в образовании, либо просчеты в проектировании.
Для чего понадобилось столько переменных в сессии? И как можно построить на них весь сайт, если функциональность сессий весьма ограничена?

Автор: bazzjr 5.5.2008, 23:16
Цитата(Feldmarschall @ 5.5.2008,  23:11)
Для чего понадобилось столько переменных в сессии? И как можно построить на них весь сайт, если функциональность сессий весьма ограничена?

Ну под "весь сайт" это очень образно сказанно конечно.
А вообще это работа юзера, регистрация, авторизация, и некоторый функционал сайта.

возможно ли это реализовать на  сессиях?

Добавлено через 1 минуту и 39 секунд
Цитата(Feldmarschall @ 5.5.2008,  23:11)
если функциональность сессий весьма ограничена?

И если можно небольшой примерчик,  smile  где сессии бессильны?

Автор: Feldmarschall 5.5.2008, 23:43
Боже ты мой, сессии бессильны при выводе новостей. 

Цитата(bazzjr @  5.5.2008,  23:16 Найти цитируемый пост)
работа юзера, регистрация, авторизация, и некоторый функционал сайта.

регистрация - это один раз. авторизация - это две переменные.
а "работа юзера" и "некоторый функционал" - я как раз и спрашивал, что имеется в виду.

Автор: awers 6.5.2008, 00:24
как будет мало - читай про мемкеш... или оптимизируй скрипт (имхо 100 переменных в сессии - это проблема с проектированием)

Добавлено через 38 секунд
блин ) не прочитал первый пост Feldmarschall`a

Автор: bazzjr 6.5.2008, 07:55
Уточню... вопросы чисто теоретические! я спрашиваю у вас, потому что негде в инете ответа насчет массового использования сессий не нашел.

Цитата

а "работа юзера" и "некоторый функционал" - я как раз и спрашивал, что имеется в виду.

Ну, это возможность добавлять-удалять объявления, редактировать, доступы к разным видам статистики, доступы к разным частям сайта, проверка на "вшивость" юзера и т.д.

И я так понял, что здесь теорию не обсуждают совсем??? конкретно вопрос-конкретно ответ?

Автор: Sanchezzz 6.5.2008, 09:08
1 сто это нормально но желательно по меньше если под твою задачу нужно столько переменных ,  то заноси просто когда тебе не нужно значение очищай.
допустим тебе нужно массив запихнуть в сессию то его удобнее сделать это все в одну стоку и задать разделители чтоб потом можно было быстро одним циклом разложить. обратно в массив.
2 количество переменных в сессии ограничено но оно велико в тыщях..
3 нагрузки практически нет так как все сессии хранятся в файлах и при запуске механизма сессий читаются если нет такой то создается.


Автор: Feldmarschall 6.5.2008, 09:30
bazzjr, теорию здесь обсуждают.
Но даже теоретический вопрос  должен быть осмысленным
Твои же вопросы - не теория, а ковыряние в носу. 

Цитата(bazzjr @  6.5.2008,  07:55 Найти цитируемый пост)
возможность добавлять-удалять объявления, редактировать, доступы к разным видам статистики, доступы к разным частям сайта

При чем здесь сессии? у него в сессии, что ли, объявления и статистика хранятся?

В общем, все понятно с твоими вопросами. Хватит тебе сессий на все твои переменные. Которых, как и у всех, будет немного


Автор: bazzjr 6.5.2008, 10:06
Sanchezzz Выражаю тебе Огромную благодарность,  в моём лице и в лице моих знакомых, которым эти вопросы были интересны!!!  smile   smile   smile 
Спасибо за четкие и конкретные ответы на мои вопросы, а не разсусоливание и развозюкивание, как у некоторых товарищей.  smile  

Возможность была бы, поставил 5 плюсикоФф! 

Цитата

допустим тебе нужно массив запихнуть в сессию то его удобнее сделать это все в одну стоку и задать разделители чтоб потом можно было быстро одним циклом разложить. обратно в массив.

Кстати очень мощный способ реализации! сейчас сам юзаю!  smile

Добавлено через 4 минуты и 5 секунд
Цитата

При чем здесь сессии? у него в сессии, что ли, объявления и статистика хранятся?


В сессиях храняться привелегии пользователя, его статусы, и категории. Отсюда в конечном итоге и вытекает возможность просмотра РАЗНЫХ видов статистики, РАЗНЫЕ виды подачи объявлений а также их РАЗНЫЕ виды редактирования, и т.д. и т.п.

Админь!

Автор: Kudzu 6.5.2008, 10:48
Кстати, не забываем кешировать, ибо хранение на диске не самый оптимальный вариант.

Автор: krundetz 6.5.2008, 15:44
ИМХО.
3. Все упирается в железо сервера. Посещаемость сайта. И есть ли распараллеливание.

4. Если говорить о PHP то сессии то я не припомню ни одного движка где бы они не использовались. Отсюда вытикает что можно.

1. Если тебе нужны эти 100 переменных каждый раз при посещение определенным пользователем любой страницы сайта то да так можно. Но если у тебя на одной странице используется 10 переменных на другой тоже 10 но уже других и т.д. то так делать не стоит. Попробуй выделить те которые тебе нужны всегда а остальные подгружать из базы по мере необходимости. Лично у меня храниться всего 10 премненных в сесии при том что количество различных категорий пользователей неограничено.

Автор: bazzjr 6.5.2008, 16:26
Да, пока использую сессии только около 10-ти переменных... Но кто знает, может прийдется разширять это количество.  smile вот и спрашиваю...

Автор: Fortop 6.5.2008, 17:35
Цитата(Sanchezzz @  6.5.2008,  09:08 Найти цитируемый пост)
допустим тебе нужно массив запихнуть в сессию то его удобнее сделать это все в одну стоку и задать разделители чтоб потом можно было быстро одним циклом разложить. обратно в массив.

А зачем эти танцы с бубном?

Вы файл сессии внутри когда нибудь смотрели?

Код

$_SESSION['my_array'] = array('something', 'b' => 1, 'for nothing', 'd' => '/14/', 3);


Автор: Feldmarschall 6.5.2008, 20:21
Fortop, это бесполезно =)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)