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

    +175

    1. 1
    2. 2
    sleep(10);
    header('Location: http://example.com');

    Называется "Редирект через 10 секунд".
    Собственно автору требовалось это: <meta http-equiv="refresh" content="10; url=index.php">.

    Запостил: Uchkuma, 23 Августа 2010

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

    • <meta http-equiv="refresh" content="10; url=index.php">

      Знаете ли вы, что мета-тег refresh - это тоже говнокод?
      Консорциум W3C уже довольно давно просит не использовать его в своих работах :)
      Ответить
      • это не весь консорциум, а их группа по accessibility, осуждают по довольно спорным причинам
        Ответить
        • как бы там ни было, но фича признана вредоносной и во многих броузерах есть опция игнорировать данную мету, а некоторые броузеры по умолчанию уже "моя твоя не понимай"
          это о чем то говорит
          Ответить
          • Фантазёр, однако... У них совсем не так по тексту.
            Ответить
    • header("Refresh: 10;index.php");
      Ответить
      • Говнокод рождается на говнокоде, забавно :)
        Никогда в жизни не использовал заголовок Refresh.
        Хорошим тоном будет сделать так:
        header('HTTP/1.1 301 Moved Permanently'); // За нужными вам HTTP-заголовками - в Википедию
        // Если заголовок не стоит, то при использовании локэйшена ответ 302 поставится сам
        header('Location: http://site.ru/new-page-of-site');

        Ну, это если сразу.
        А так - JavaScript'ом, батенька, JavaScript'ом!
        Но тут можно и поспорить, так что другие мнения возможны, я бы их послушал :)
        Ответить
        • сомневаюсь я насчет "хорошего тона", когда нам нужно обновить страницу, а не перенаправить. И то, не сразу.

          JavaScript'ом?ну тогда только не echo('<script>location.href="index.php"; </script>');
          Ответить
          • >Редирект через 10 секунд
            Нам как раз нужно перенаправить, внимательнее читать надо.

            И естественно JS внедряется в проект не так.
            Сейчас покажу, как надо.
            ob_start();
            echo("<script style="margin-left:393px; margin-top:170px;">location.href="index.php"; // Суперпуперперенаправлятор 2000 by CoolVasya</script>");
            $adm = ob_get_contents();
            ob_end_clean();
            $adm = "";
            Ответить
            • > Нам как раз нужно перенаправить
              врядли Moved Permanently - это ведь как бы значит, что старая страница "не нужна"

              за перенаправлятор +++ ))))
              Ответить
              • >врядли Moved Permanently - это ведь как бы значит, что старая страница "не нужна"
                Это значит, что это перенаправление стоит здесь навсегда.
                Ответить
                • а, как правило, перенаправление нужно не всегда, а условно, в зависимости от логики
                  Ответить
                  • ._.
                    Ты вообще о чем споришь помнишь?
                    Мы обсуждаем лучший способ перенаправить пользователя через 10 секунд на другую страницу.
                    Какая логика, какие условия?
                    Ответить
                    • подолью кислорода в огонь: через 10 сек после чего?
                      Ответить
                      • кстати да. сабж вообще не покажет страницу, а сделает видимость усердной работы и выдаст индекс.
                        А все остальные варианты таки покажут страницу, и только потом переместят на индекс
                        Ответить
        • OMG, педивикия! Лучше бы Гитлера упомянул для инвалидации аргументов :-D
          Ответить
      • Чорт, плюсанул, а потом вижу - кавычки двойные, синтаксис не соблюден, а заголовок ваще нестандартный
        Ответить
    • ой-ой, вообще забудьте о такой чуше
      Ответить
    • Тащемто это две разные вещи.
      сам ГК зависнет на 10 сек, потом сделает редирект (если бравзер не отвалицо по таймауту)
      Метатаг покажет страницу, и потом сделает редирект (уже со страницы)

      Первый случай не нужен никогда
      Второй -- почти никогда
      Ответить

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