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

    +163

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    <form id="form1" name="form1" method="post" action="2.php">
    ...
    </form>
    <?php session_start ();
    ?>
      <?php 
    
    $_SESSION['dataa'] = $_POST['dataa'];
    $_SESSION['datab'] = $_POST['datab'];
    $_SESSION['datac'] = $_POST['datac'];
    $_SESSION['datad'] = $_POST['datad'];
    $_SESSION['datae'] = $_POST['datae'];
    $_SESSION['dataf'] = $_POST['dataf'];
    $_SESSION['datag'] = $_POST['datag'];
    $_SESSION['datah'] = $_POST['datah'];
    $_SESSION['datak'] = $_POST['datak'];
    $_SESSION['datal'] = $_POST['datal'];
    if ($_SESSION['dataa'] == "1") { include 'data/data1.php';};
    if ($_SESSION['datab'] == "1") { include 'data/data2.php';};
    if ($_SESSION['datac'] == "1") { include 'data/data3.php';};
    if ($_SESSION['datad'] == "1") { include 'data/data4.php';};
    if ($_SESSION['datae'] == "1") { include 'data/data5.php';};
    if ($_SESSION['dataf'] == "1") { include 'data/data6.php';};
    if ($_SESSION['datag'] == "1") { include 'data/data7.php';};
    if ($_SESSION['datah'] == "1") { include 'data/data8.php';};
    if ($_SESSION['datak'] == "1") { include 'data/data9.php';};
    if ($_SESSION['datal'] == "1") { include 'data/data10.php';};
    
    
    print_r ($_SESSION);
    ?>
    
    <?php //if ($_SESSION['dataa'] == "1") { include 'data/data1.php';};?>
    
    
    
    
    <p> </p>
    <p> </p>

    http://www.php.ru/forum/viewtopic.php?p=258218

    Полный и безнадежный долбоебизм

    Запостил: Devzirom, 15 Января 2011

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

    • главный долбоебизм в том, что в пхп до сих пор вручную сессиями управляют
      в 21м веке
      Ответить
      • показать все, что скрытои ничего страшного на си вон до сих пор память в ручную выделяют и освобождают.
        Ответить
        • Си столько лет, что ему не стыдно. Он используется в жёстких условиях, где другие языки не выживают, поэтому там это нормально.
          Если бы в Си добавили эту возможность, то и он бы там не выжил.
          Пришлось бы на ассемблере писать...
          Ответить
        • херня. есть своеобразные библиотеки манагеры памяти :)
          Ответить
        • Вы путаете божий дар с яичницой.
          Ручное выделение памяти -- фишка си, с помощью которой можно решать сложные задачи. Иногда память НАДО выделять вручную. Представьте себе модуль ядра (драйвер например) , пологающийся на GC, и сразу станет все понятно.

          Ручное управление сессиями -- не нужно никому и никогда. От него только ненужный бойлерплейт и тупые ошибки новичков (которым непонятно куда воткнуть сешн старт). Потому в нормальных платформах сессиями управляет контейнер (или сервер)
          Ответить
          • ручное управление сессией фишка php. ИМХО удобно нужна сессия включил не нужна выключил. Все просто и элегантно. Можно различные наймспейсы для сессий задавать это тоже в ручную. очень удобно.
            Ответить
            • а пример-то можно?
              когда это удобно)
              Ответить
              • Мне более интересно когда это НЕ удобно. ИМХО удобно всегда.
                Ответить
                • удобно что?
                  каждый раз писать session_start($_COOKIE['sess']); ?

                  Вам платят за строчки кода?
                  Ответить
                  • неет не так. Изучите синтаксис языка к которому у вас столь пренебрежительное отношение но это лирика. По существу.

                    Имена сессий удобно задавать если например проект пишет пара прогеров один пишет модуль А другой модуль B так переменные в сессии находятся в глобальной зоне видимости может случится так что оба прогера запишут в сессию переменную с одним именем и может так случится ,что искать причину глюков они будут ох как долго. Поэтому заводится для каждого модуля имя сессии и все довольны и счастливы. Обмен между данными модулями происходит только чрез определенный интерфейс. И все ни какого говна.
                    Ответить
                    • 1) что я не так написал?

                      2) ага)))) потому надо иметь 10 сессий и десять кук.
                      эта задача решается через неймспейсы. Есть такое понятие, лет 30 назад изобрели. Вроде бы в последних версиях PHP оно тоже появлется. С учетом того, что новинки доходят до мира ПХП в течение 30 лет, то можно думать что к 2030му году управление сессиями в пхп так же станет автоматическим, как в джаве или дотнете например
                      Ответить
                      • 1. session_start не принимает параметров
                        session_name устанавливает получае имя сессии

                        и кстати в пыхе можно автоматом включать сессии.

                        надо только php.ini поправить по умолчнию авто сессии отключены.

                        ну нету в похапе нейм спейсов были вот но разрабы сказали что отменят их. ИМХО сессия это то глобальная зона неймспейсы там не действуют но может я и ошибаюсь.
                        Ответить
                        • 1) да) session_id надо вызывать.
                          глобальные функции в действии. причем не ресурс передают (как в нормальном процедурном стиле) а просто глобально изменяют ID. Прекрасный пример того, что API PHP -- говно даже по меркам 1976го года.


                          в Вашем примере с двумя разработчиками -- каждый должен вызвать session_id -- это будет ад) особенно, если вдруг случайнов пхп введут многопоточность

                          2) неймспейсы можно иметь у имен переменных в сессии
                          Ответить
                    • казнить нельзя помиловать
                      когда ты уже вырастешь???
                      Ответить
                      • ай бида у меня с запятыми. Ну не как не пойму куда их вставлять.
                        Ответить
                        • и не только с запятыми, неужели сам ни разу не читал свою писанину ???
                          Ответить
      • вручную это session_start? не так то уж много писанины
        Ответить
        • программист не должен вручную управлять сессиями
          это бессмыслено
          это все равно, как явно передавать два перевода строки после заголовков перед телом (см спецификацию http). Так делали в perl/cgi в 97м году
          Ответить
          • мыло отправляю так и делаю.
            Ответить
            • переводы строки делаете вручную?:)
              надеюсь, MIME тоже руками реализовано?
              а smtp?

              Ответить
              • да собираю заголовки и тело письма. Все в ручную.
                Ответить
                • а Вам приходилось например слать письмо с тремя MIME вложениями?
                  html, картинка и текст (для тех, кто html не понима) ?
                  Ответить

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