переход на другую страницу

Тема в разделе "PHP", создана пользователем wilder, 26 май 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. wilder

    wilder Постоялец

    Регистр.:
    12 янв 2008
    Сообщения:
    134
    Симпатии:
    24
    Доброго времени суток .
    Проблема в следующем. Возникла необходимость установки капчи на форму. Так-как в php знаний практически нет.
    Воспользовался готовым решением с captcha .ru (не сочтите за рекламу)
    PHP:
    if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] == $_POST['keystring'])
    {

    ////////Перейти на страницу messagesent.htm////////

    }else{
    //////// Перейти на страницу wrongcode.htm///////
    }
    unset(
    $_SESSION['captcha_keystring']);
    Вопрос в следующем. Какими тегами (операторами) реализуется (переход) загрузка другой страницы.
     
  2. Jeurey

    Jeurey

    Регистр.:
    13 сен 2006
    Сообщения:
    419
    Симпатии:
    576
    Читайте про формы и передачу данных. Будет что-то типа

    PHP:
    <?php
     
    echo '<form action="POST" action="?страница&куда=шлём&данные">
    <input type="text" id="keystring" name="keystring" value=""/>
    <input type="submit"  value="Send data"/>'
    ;
    ?>
    при клике на кнопку данные отправятся на страницу указанную в action. А там уж смотрим и сравниваем по SECRET_KEY ;)

    Дальше можно пойти двумя путями
    1. Если до этого кода в браузер еще не отдавались данные - можно через
    PHP:
    header('Location: page_to_redirect.htm'); 
    2. Если отдавались - то нужно идти через редирект по JS
    PHP:
    function redirect($to$time)    
            {    echo 
    '<script language="javascript">
                        function Redirect()
                        {    document.location.href = "'
    .$to.'"
                        }
                        setTimeout("Redirect()",'
    .$time.')
                      </script>'
    ;
            }
     
    wilder нравится это.
  3. wilder

    wilder Постоялец

    Регистр.:
    12 янв 2008
    Сообщения:
    134
    Симпатии:
    24
    Спасибо за содержательный и оперативный ответ.
    Я уже пытался реализовать переход с помощью
    header('Location: page_to_redirect.htm');
    Но все время вылазит следующая ошибка
    В 24 строке как раз и стоит
    header('Location: page_to_redirect.htm');
    Что означает эта ошибка?
     
  4. Jeurey

    Jeurey

    Регистр.:
    13 сен 2006
    Сообщения:
    419
    Симпатии:
    576
    Это значит, что заголовок ответа уже был отправлен в браузер :)
    Делай через JS, вообщем ;)
     
  5. Tretiy

    Tretiy Постоялец

    Заблокирован
    Регистр.:
    10 дек 2007
    Сообщения:
    81
    Симпатии:
    9
    просто header можно передавать только в самом начале всего, до любого текста.
    Мне сейчас нравится пользоваться не JS, а
    вот
    PHP:
    print '<meta http-equiv="refresh" content="0;url=index.php">';
     
    wilder нравится это.
  6. wilder

    wilder Постоялец

    Регистр.:
    12 янв 2008
    Сообщения:
    134
    Симпатии:
    24
    Всем спасибо.
    А то я что-то зациклился на реализации данной задачи на php
    В конечном итоге,для подстраховки, остановился на таком варианте
    PHP:
    <script type="text/javascript">
    setTimeout('location.replace("http://www.xxxxxxxx.com")'3000);
    </script>

    <noscript>
    <meta http-equiv="refresh" content="1; url=http://www.xxxxxxxx.com">
    </noscript>
     
  7. Tretiy

    Tretiy Постоялец

    Заблокирован
    Регистр.:
    10 дек 2007
    Сообщения:
    81
    Симпатии:
    9
    Только я не понял зачем ты это сделал?
    разве не мог просто?
    Код:
    location.href="http://www.xxxxxxxx.com";
     
Статус темы:
Закрыта.