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

    +193

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    /**
     * Посылает команду удалённой машине
     * перейти по указанному адресу.
     * Рекомендуется использовать вместо Header('Location: ...');
     */
    function GO( $address)
    {
         Header('Location: '.$address);
    }

    Запостил: Мартин, 06 Ноября 2010

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

    • Новое слово в уэб-разработке!
      Ответить
    • комменты жгут )
      «Посылает команду удалённой машине»

      бугага)
      Ответить
    • >>Посылает команду удалённой машине
      Круто... Feel the power of PHP, bitches!
      Ответить
    • Вротмненоги! govnokod.ru посылает команды моей машине! Посоны, чё делать?
      http://www.tfo.net.ru/uploads4/2007_11_09_17_28_13_plan.gif
      Ответить
    • Рекомендуется использовать вместо Header два раза в день: утром после утреннеого стула, и вечером -- за 20 минут до сна
      Ответить
    • * Рекомендуется использовать вместо Header('Location: ...');

      о да. и function kill() { die('простите я облажался');} вместо die('упс');
      Ответить
    • Команду удаленной машине? А можно ассемблерную вставку использовать?
      Ответить
    • это типа GOTO такое...
      Ответить
    • угу, а вы, RPC, SOAP.... header!
      Ответить
    • Тут более правильная реализация: http://govnokod.ru/4360
      Ответить
    • Да, комментарий действительно попахивает.
      А функция ничего себе и очень даже полезная на начальном этапе разработки. В дальнейшем тут может быть добавлена обработка переданного url. Например для внедрения ЧПУ.
      Ответить
      • чем функция лучше ее содержания? пишите header и будет вам счастье
        Ответить
        • буков меньше.
          Ответить
        • Данный код, конечно, не мой, но у меня используется аналогичная функция под названием redirect(). На начальных этапах разработки ее содержимое было 1 в 1 с указанным выше примером, за исключением того, что в конце еще был exit.
          Так вот, еще при проектировании приложения стало известно, что этих header-ов может быть весьма не мало. А также было сразу предусмотрено расширение функционала и гибкости приложения.
          Да, долгое время redirect выполнял такую простую функцию, но в последствии в нее были добавлены дополнительные параметры, позволяющие динамически формировать url из переданных в нее аргументов.
          Ответить
          • это, опять же, вопрос проектирования. Если тело функции есть вызов к системной функции с такими же параметрами, зачем же каждый чих обертывать? а вот когда, как у вас, чих подрос, ну это же святое дело вынести в функцию...
            Я пытаюсь доказать, что не стоит запасаться обертками на будущее, которое еще и не наступит
            Ответить
          • > но в последствии в нее были добавлены дополнительные параметры, позволяющие динамически формировать url из переданных в нее аргументов.
            лол, дайте скопипастить!
            <?php
            echo http_build_url("http://[email protected]/pub/index.php?a=b#files",
                array(
                    "scheme" => "ftp",
                    "host" => "ftp.example.com",
                    "path" => "files/current/",
                    "query" => "a=c"
                ),
                HTTP_URL_STRIP_AUTH | HTTP_URL_JOIN_PATH | HTTP_URL_JOIN_QUERY | HTTP_URL_STRIP_FRAGMENT
            );
            ?>

            интринсик ,типа
            Ответить
            • bugmenot, не то. Та функция применима именно к логике конкретного приложения.

              /**
               * @param string $query_string И так понятно
               * @param string $module Модуль, в который перенаправляем
               * @param bool $absolute Абсолютный или относительный
               * @param bool $furl ЧПУ или обычный
               */
              function redirect($query_string='', $module=null, $absolute=null, $furl=null){
              
              // тут формируем url
              
              header('Location: '/* готовый url */);
              exit;
              }
              Редирект осуществляется в пределах скрипта index.php.
              Ответить

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