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

Статус
В этой теме нельзя размещать новые ответы.

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']);

Вопрос в следующем. Какими тегами (операторами) реализуется (переход) загрузка другой страницы.
 
Читайте про формы и передачу данных. Будет что-то типа

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>';
		}
 
Спасибо за содержательный и оперативный ответ.
Я уже пытался реализовать переход с помощью
header('Location: page_to_redirect.htm');
Но все время вылазит следующая ошибка
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\myform\test.php:14) in Z:\home\localhost\www\myform\test.php on line 24
В 24 строке как раз и стоит
header('Location: page_to_redirect.htm');
Что означает эта ошибка?
 
Это значит, что заголовок ответа уже был отправлен в браузер :)
Делай через JS, вообщем ;)
 
  • Заблокирован
  • #5
В 24 строке как раз и стоит
header('Location: page_to_redirect.htm');
Что означает эта ошибка?

просто header можно передавать только в самом начале всего, до любого текста.
Мне сейчас нравится пользоваться не JS, а
вот
PHP:
print '<meta http-equiv="refresh" content="0;url=index.php">';
 
Всем спасибо.
А то я что-то зациклился на реализации данной задачи на 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>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху