[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Header() и перенаправление
sebastjan
Есть три страницы.
Первая страница подгружает модули, но так же содержит и нтмл код.

<? session_start();
header("Content-Type: text/html; charset=utf-8");
echo "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";//VIVOD DO PODLJUCENIJA MODULJA
include('mh1.php');// PODKLJUCENI MODULJA V SEREDINE STRANICI
?>

Вторая страница непосредственно модуль с формой
Где по условию запускаеться Header()
<?
if(isset($_POST['reg']))
{
header("Location: h2.php");
}
echo "<form action='h1.php' method='post'>
<input type='submit' value='weiter' name='reg'>
</form>"
;

Ну и тренья страница куда перенаправление ..
<? session_start(); 
echo "H2-H2-H2";?>

По мануалу понимаю что перед Header() не должно быть выводы в броузер.
А так как на первой страницы перед подключением модуля есть текст, то естественно не работает.
Подскажите есть ли такая возможность сделать переадрисацию не смотря на то что
модуль с НЕАДЕР вставленн в середине страницы?
Есть один нюанс, на локалке+ДЕнвер работает а на сервере нет.



Спустя 14 минут, 55 секунд (7.03.2011 - 13:35) m4a1fox написал(а):
sebastjan
Ээээээ. а так
[b]echo "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";[/b]
нельзя. Надо
echo "<b>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</b>";

Спустя 2 минуты, 33 секунды (7.03.2011 - 13:38) sebastjan написал(а):
Цитата (m4a1fox @ 7.03.2011 - 10:35)
sebastjan
Ээээээ. а так
[b]echo "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";[/b]
нельзя. Надо
echo "<b>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</b>";


Это опечатка, хотел выделить чтоб понятней было.

Спустя 1 минута, 26 секунд (7.03.2011 - 13:39) m4a1fox написал(а):
sebastjan
А. Ну тогда все норм.

Спустя 5 минут, 12 секунд (7.03.2011 - 13:44) m4a1fox написал(а):
sebastjan
Есть ведь и другой способ автоматической переадресации....

Спустя 3 минуты, 36 секунд (7.03.2011 - 13:48) sebastjan написал(а):
Цитата (m4a1fox @ 7.03.2011 - 10:44)
sebastjan
Есть ведь и другой способ автоматической переадресации....

Подскажите какой другой способ ?

Спустя 4 минуты, 36 секунд (7.03.2011 - 13:53) m4a1fox написал(а):
sebastjan
Так. Смотри. Попробуй вот этим
<HTML><HEAD>
<META
HTTP-EQUIV='Refresh' CONTENT='1; URL=page.php'>
</HEAD></HTML>
. Но я бы не рекомендовал.

Спустя 4 минуты, 38 секунд (7.03.2011 - 13:57) sebastjan написал(а):
Проблемму решил, указал чтоб обраьбатывалось в форме а не в первом файле где подлючаеться модуль с формой.
<? if(isset($_POST['reg']))
{
header("Location: h2.php");
}
echo "<form action='h2.php' method='post'>
<input type='submit' value='weiter' name='reg'>
</form>"
;

Спустя 1 минута, 14 секунд (7.03.2011 - 13:58) m4a1fox написал(а):
sebastjan
Молодец.

Спустя 3 минуты, 52 секунды (7.03.2011 - 14:02) sebastjan написал(а):
Спасибо за поддержку!

Спустя 10 минут, 50 секунд (7.03.2011 - 14:13) sebastjan написал(а):
Цитата (Dron19 @ 7.03.2011 - 11:03)
если тебя интересует как это реализовать на РНР? То да, так можно сделать
Вот пример

<?php
echo 'test';
if( !ini_get( 'output_buffering' ) ) {

ini_set( 'output_buffering', 1 );
header("Location: index.php");
ini_set( 'output_buffering', 0 );
exit;

}
?>

Это пока что для меня сложновать,
вопрос вот ещё в чём, в заголовке ХТМЛ поставил чтб не кешировалась страница,
но всё же при повторном заходе посещённые линки светяться.
<meta http-equiv="Cache-Control" content="no-cache">



Спустя 5 минут, 16 секунд (7.03.2011 - 14:18) sebastjan написал(а):
Про кеширование нашол, только не понятно про дату в первой строке
------------------------------------------------------------------------------------
Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); //Дата в прошлом 
Header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
Header("Pragma: no-cache"); // HTTP/1.1
Header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT");


может туда всунуть функция date();???????

Спустя 41 минута, 7 секунд (7.03.2011 - 14:59) Dron19 написал(а):
clearstatcache(); - используй в конце страницы. Просто так и напиши и кэш сотрется

Спустя 2 часа, 12 минут, 12 секунд (7.03.2011 - 17:12) inpost написал(а):
JS: <script>window.location="url";</script>
HTML написали выше, но он тоже должен распологаться в теге <HEAD>, а тот вариант, что показали другие авторы - неправильный, хоть и на некоторых браузерах и работает, но не на всех! Я уже 100 раз им говорил, что так нельзя, всё равно повторяют одно и то же.
Структура HTML такая:
<html>
<head>

ТУТ РЕДИРЕКТ ДОПУСТИМ
</head>
<body>

Тут ни <head>. ни <html>, ни редирект недопустим. Их место закончилось ранее по содержанию
</body>
</html>


А теперь по теме, можно конечно использовать JS для переадресации, но тебе надо изменить логику вывода полностью. Сначала ПХП работа, потом HTML код. Загляни ко мне в подпись и посмотри тему про F5 и переадресацию! Там показано на примере форм как правильно распределять на странице HTML & PHP.
Любые существенные обработки необходимо делать ещё до вывода любой информации на экран!

Спустя 5 минут, 37 секунд (7.03.2011 - 17:17) inpost написал(а):
Есть вариант, чтобы было всё без проблем в середине, тогда нужно использовать буферизацию.

Спустя 5 часов, 42 минуты, 15 секунд (7.03.2011 - 23:00) sebastjan написал(а):
Цитата (inpost @ 7.03.2011 - 14:17)
Есть вариант, чтобы было всё без проблем в середине, тогда нужно использовать буферизацию.

Заранее благодарен,
подскажите про тему F5 и переадресация не могу найти.

Спустя 1 час, 57 минут, 44 секунды (8.03.2011 - 00:57) sebastjan написал(а):
Цитата (inpost @ 7.03.2011 - 14:17)
Есть вариант, чтобы было всё без проблем в середине, тогда нужно использовать буферизацию.

Спасибо, мне как начинающему это очень пригодилось про формы и построение логики
Всё переделал у себя.
Стало всё понятней и читабельней.

Спустя 36 минут, 24 секунды (8.03.2011 - 01:34) inpost написал(а):
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.