[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка при редиректе на главную
razoramus
Добры вечер! Есть условие на вывод контент (if,elseif,else) через гет естественно. Хочу сделать так, чтобы если старнича не существует, то бишь человек введёт в адресной строке что-то своё в самой переменно (в моём случае это "page"), то ему не показывало сообщение о том что страница не найдена а перебрасывало на главную.

Сейчас стоит так

<?php

else {
echo 'Страница не найдена';
}

?>


А надо чтоб перебрасывало. Пишу так

else {
header("Location: http://site.ru/");
}

и он показывает ошибку. В манах указано именно так, но всё ровно ошибка. Кто в курсе как сделать?
-Stepan-
Сделай в конфиге ключ а также в .htaccess напиши
ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
Options -Indexes


и оформи их как тебе надо

и вставляй ключ в каждую страницу
-Stepan-
Если о том что страница не найдена то это ErrorDocument 404 /404.html
Valick
Цитата
В манах указано именно так, но всё ровно ошибка.

А в манах не написано что до использования header() не должно быть никакого вывода в браузер? Выводом считается любой символ, даже пробел или служебный символ.
Если кодировка скрипта utf-8 то сохранять надо без BOM.

_____________
Стимулятор ~yoomoney - 41001303250491
razoramus
Это понятно, это я знаю что в htaccess прописывать свои страницы ошибок, это я сделал. Мне надо сделать, чтобы при выводе контента, в условии на вывод, если страницы такой не существует, то было перенаправление на главную. Не понятно?
razoramus
Пример:

http://site.ru/index.php?page=about
То выводиться об авторе

http://site.ru/index.php?page=news
То выводятся новости

А если человек сам написал в переменную что-то своё, типо
http://site.ru/index.php?page=kjdvjkdfnvk
То было бы перенаправление на главную страницу сайта
razoramus
Блин что никак сделать нельзя?!
Valick
razoramus, я вам уже ответил, или вы тему не читаете?
а для выбора блоков которые надо приинклюдить, используйте оператор switch
<?php
switch ($_GET[page]) {
case news:
include('news.php');
break;
case about:
include('about.php');
break;

default:
header("Location: http://site.ru/");
}
?>


_____________
Стимулятор ~yoomoney - 41001303250491
razoramus
Valick Тему то я как раз читал, в том то и дело что выше было написано что header работает до вывода контента или же любого другого html кода. А условие стоит в теле.
Valick
Цитата
А условие стоит в теле.

а я тут при чем?
учитесь писать правильно код, отделяя логику от представления
___
есть конечно ob_start()


_____________
Стимулятор ~yoomoney - 41001303250491
razoramus
Ok, поставил перед доктайпом и записал выводы в переменные и в теле вывел что надо.
Быстрый ответ:

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