MaxHub
Полезности по Maxsite CMS

Использование сессии MaxSite моим скриптом

Вопросы-ответы / 27 декабря 2014

Привет сообществу героев!

Я тут на своем сайте начал делать такой себе "костыль", а именно: пишу свои скрипты и вызываю их через "ушки" на страницы блога. Почти все работает smile

Сейчас понадобилась сессия, посмотрел коды ЦМС-ки, но не понял - могу ли я использовать сессию оттуда?

Прошу помочь - если возможно получение доступа к сессии - как это выполнить?

Под "доступом" я понимаю - записать свои значения в сессию (с моими именами) и прочитать их в нужном месте.

я админ и автор указанного сайта

Сайт

Комментариев: 9
  1. Владимир, не понял что вы имеете в виду под словами «использовать сессию»? В кукисах - это один тип «сессии». А есть ещё getinfo('session'); (точнее $MSO->data['session']; ).

    Если вам нужны были «данные сессии», тогда достаточно сделать в вашем скрипте вызов:

    global $MSO;

    А потом обращаться к ключам. Чтобы посмотреть все доступные ключи сделайте

    pr($MSO);

    Если нужно хранить в сессии свои переменные, то просто посмотрите какие есть в $MSO и задавайте свои так, чтобы не повредить системные.

  2. Спасибо за ответ!

    пока ответа не было, начал использовать $_SESSION...

    Это не противоречит? Или все же лучше $MSO?

  3. Владимир, я не знаю целиком вашей задачи, поэтому и не могу дать исчерпывающий ответ. Подозреваю, что вам просто нужно передавать какие-то значения между разными вызовами ушки. Если задача в этом, то, в принципе, можно использовать любую глобальную php-переменную. Можно использовать и $_SESSION, но очень не желательно, т.к. она системная. Лучше уж тогда на свой страх и риск использовать $MSO, которая принадлежит уровню приложения (движку, а не php интерпретатору).

  4. Да, верно - задача - передавать значения.

    Понял.

    Странно, везде в учебниках в примерах именно $_SESSION... я думал, что она для того и предназначена... Но это другая тема. Перепишу на $MSO.

    Спасибо!

  5. Илья, немного выше Вы написали "Чтобы посмотреть все доступные ключи сделайте"

    pr($MSO);
    "

    Очевидно Вы имели в виду - занятые ключи?

  6. Владимир, что касается моего высказывания по поводу $_SESSION, то оно вызвано неясностью стоящей перед вами задачей. Если у вас стоит задача сохранять и передавать некие значения между ушками в рамках обработки одного запроса, то моё высказывание верно, т.к. использование $_SESSION - избыточно. Если вам нужно передавать некие значения между обработкой разных запросов (при переходе посетителя со страницы на страницу), то конечно использовать $_SESSION - это самый приемлемый вариант.

    Про «доступные ключи», да, конечно же в контексте вашей задачи более уместно использовать слово «занятые ключи».

  7. Илья, спасибо за ответ!

    Общение - необходимая вещь - постепенно все разъясняется!

    Да, мне нужно при переходах по страницам.

    А вот это: "сохранять и передавать некие значения между ушками в рамках обработки одного запроса", если не трудно, пожалуйста разъясните немного подробнее: как это вообще возможно передать значения при обработке одного запроса? Как-то вообще себе этого не представляю.

  8. А вот это: "сохранять и передавать некие значения между ушками в рамках обработки одного запроса", если не трудно, пожалуйста разъясните немного подробнее: как это вообще возможно передать значения при обработке одного запроса? Как-то вообще себе этого не представляю.

    «Один запрос» - это обращение посетителя к сайту открыть определённую страницу. Запрос поступает веб-серверу, а он для обработки запускает движок сайта. Движок, в свою очередь, подгружает разные php-файлы со своими процедурами и функциями - в результате получается, что выполняется как бы одна большая программа. Теперь нужно вспомнить понятие «область видимости переменной». Каждый раз, когда выполняется ваша ушка, по сути происходит вызов функции, у которой своя область видимости. Чтобы сохранить или передать какое-то значение из этой функции «наружу» нужно обратиться к глобальной переменной. Надеюсь, что смог ответить на ваш вопрос, Владимир.

  9. Да, смогли!

    Большое спасибо!

    Я понял это так: если я использую на странице больше чем одну ушку, то данные, которые нужны в разных фрагментах кода, можно легко передать от кода (ушка), запускаемого ранее, в последующий код - именно посредством $MSO.

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Вход / регистрация или войти без комментирования
  Имя и сайт используются только при регистрации

Авторизация MaxSiteAuth. Войти через loginza

(обязательно)