1. PHP / Говнокод #3624

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    ini_set('session.use_cookies','0');
    ini_set('session.use_trans_sid','0');
    
    ...
    
    session_start();

    :D

    Запостил: DmitryDick, 02 Июля 2010

    Комментарии (32) RSS

    • И в чем прикол, а если предварительно прицепить свой хендлер сессий, то без проблем все будет работать. По коду этого не видно.
      Ответить
      • в коде есть то, что есть, не более, вот в этом и прикол)
        Ответить
        • то есть сессия не работает? только если ручками цеплять
          Ответить
          • ну а как она тут заработает?)
            Ответить
            • ручками давать сессид и заголовки
              Ответить
              • и ручками сериализацию, угу
                проктология такая проктология
                Ответить
                • serialize\unserialize есть чуть что
                  Ответить
                • Не нужно уж так критиковать...Если ручки шаловливые, то им это нравится. Их выбор... ;)
                  Ответить
                  • а где там критика?
                    пусть клепают свои гостевухи, хоть с извратами хоть без
                    Ответить
                • им просто нужно самим сессию передавать.
                  хотя зачем оно, если есть куки?

                  а транс=сид это правда параша: PHP будет сам дописывать "?phpsessid=12231234" к каждой ссылке)
                  Ответить
    • какие-то вы тут серьезные) я код посмеяться дал, а вы обсуждаете, как свой механизм сессий сделать ><
      Ответить
    • Свой механизм пишется максимум за пару часов и работает не хуже чем родной и в этом случае опции не используются. Нафига что-то куда-то писать, так же куку можно создать. Просто чтобы лишней куки не было, опция сброшена.
      Ответить
    • кстати, со своим механизмом (пробовал в базу пхать) не пашет regenerate _session_id()
      Ответить
    • Опа. Чувствую себя куском говнокодера...
      Ребята, а так норм?:
      ini_set('session.use_trans_sid', false);
      ini_set('session.use_only_cookies', true);
      ^_^ Помидорами не кидать
      Ответить
      • зачем помидоры, когда есть отборнейшее дерьмо?

        а так уже лучше, намного. думаю, куки с оригинального сайта никто не вырубает
        Ответить
        • Сорри, написал не туда.
          Т.е. я не сговнокодил?
          Ответить
          • работать будет, а вот вообще конфигить сервак в рантайме, по-моему, не очень хорошо
            Ответить
            • Т_Т а что оставалось делать?!) не оставлять же по дефолту? или оставлять
              Ответить
              • оставить как есть и трясти админа, что бы адекватно сконфигил сервак
                Ответить
                • Та не...*перешел на шопот* я тут говнокмс ваяю)))одна из концепций которой - установка "из коробки"...тут как бы она должна работать на всех хостингах. ну где Php>=5.3) а перед ini_set я @ поставил, так что если заблочена функция, паники не будет...
                  Ответить
                  • если у вас кругом такие подпорки - поверьте, когда-нибудь цмс ляжет под их тяжестью. Мой вам совет - стандартный - сделайте инсталляшку и первым шагом проверьте системные требования, а уж в них ставьте проверки на конфигу (права доступа, наличие свежих модулей вроде mysqli,gd,mbstring,curl, достаточность выделенной памяти и времени выполнения скрипта, возможность исходящих соединений и пр.) - туда же и подобные ини-настройки. Если что-то не так - не пускайте к след. шагу, и давайте подробные подсказки, что делать с проблемой.

                    почему не трогать ini_set?
                    1. действие временно
                    2. не все конфиги изменяемы
                    3. или 2, или сами забудете, и рискуете получить ситуацию, схожую с сабжем
                    4. лишний код, лишний ход

                    лично я для себя инклужу файл на время разработки, где инисетами ставлю, наоборот, худшую конфигу (что бы не трогать другие скрипты) - максимальный error_reporting и что бы ошибки писал в лог, а не на экран (иначе броузер в случае, скажем, с нотисом в цикле, захлебнется).
                    Ответить
                    • Собственно такие распорки стоят только на тех функциях которые могут не сработать. Причем не из-за меня, а из-за сервера. Поэтому @ - штоб ошибки не лезли. Насчет инсталляшки - эта мысль есть тру (надо же сообщать что у хоста что-то не очень настроено), но пока так - инклюжу файл с настройками, отключение маг.кавычек,глобалсов и прочее (и пока с полным еррор репортингом).
                      И все таки от ини_сет я думаю не очень отказываться. Да, 10 лишних строк, да, действие временное, конфиги если не изменяемые - то в инсталляшке напоминалка будет, а до ситуации сходной с топиком я думаю не дойду - все таки помню какая опция что делает и собсна ради чего я ее меняю)))
                      А вообще, по-моему, убирание "плохих"(ну эт лично по моему мнению) возможностей - это не подпорка)
                      Ответить
                      • какие у вас конкретно там ини_сет стоят?
                        Ответить
                        • error_reporting(E_ALL);
                          @ini_set('session.use_trans_sid', false);
                          @ini_set('session.use_only_cookies', true);
                          @ini_set('magic_quotes_gpc', false);
                          @ini_set('register_globals', false);
                          @session_set_cookie_params(0, '/', '', false, true);
                          Ответить
                          • ini_set('register_globals', false);
                            кошерно
                            Ответить
                            • жD мало ли)))) ну так шо, бяка и какашка?
                              Ответить
                              • ну более корректно все же 0
                                Ответить
                                • О_О опа... а разве ж ему есть разница? первый раз такое слышу...
                                  Ответить
                                  • а фиг его знает...
                                    Ответить
                                    • ^^ а, тада ясно) спасибо за подсказку про вывод пользователю подсказок о настройках)
                                      Ответить
                                      • да-да. чем понятнее, тем лучше. Лучше стараться писать такие, что бы понял юзер по-неграмотнее, не только программист.
                                        Ответить
    • т.е. я не сговнокодил?)
      Ответить

    Добавить комментарий