Скажите как сделать,чтоб если пользователь неправильно ввёл ссылку в браузере его пренаправило на страницу http://sitik.ru/videolessons/1.php?page=1
У меня в коде есть такая проверка.
if(empty($page)){
die('<p style="color:red; font-size:24px;">Ошибка! Неверный URL адресс!</p>');
}
но это выводит текст ошибки, а мне нужно чтоб не выводило текст ошибки, а чтоб переадресовывало на страницу именно:
http://sitik.ru/videolessons/1.php?page=1
если не правильно набрана ссылка в браузере.
Пробую так:
<?php
$page = $_GET['page'];
if(empty($page)){
$URL='../videolessons/1.php?page'>
header("Location:$URL");
exit();
}
Выдаёт ошибку что не определённая переменная.Как правильно написать?
Notice: Undefined variable: URL in z:\home\sitik.ru\www\blocks\kontent.php on line 14
[Денвер: показать возможную причину ошибки]
Warning: Cannot modify header information - headers already sent by (output started at z:\home\sitik.ru\www\videolessons\1.php:16) in z:\home\sitik.ru\www\blocks\kontent.php on line 14
Спустя 41 минута, 24 секунды (26.09.2010 - 22:36) Rand написал(а):
Цитата |
Warning: Cannot modify header information - headers already sent by (output started at z:\home\sitik.ru\www\videolessons\1.php:16) in z:\home\sitik.ru\www\blocks\kontent.php on line 14 |
Это ошибка означает, что был вывод в браузер; Перед тем как отсылать заголовок, никакого вывода в браузер быть не должно, поставь эту проверку в начало скрипта, до того как что-то выводишь на экран.
Спустя 5 минут, 38 секунд (26.09.2010 - 22:42) inpost написал(а):
Golovastik
http://php.su/functions/?header
Когда вставляешь переменную, делай либо так:
А теперь сама ошибка: HEADER - это заголовок страницы, он должен идти до любой информации выведённой в браузере.
http://php.su/functions/?header
header("Location: http://www.example.com" );
Когда вставляешь переменную, делай либо так:
echo "ТУТ переменная:".$text;или так:
echo "ТУТ переменная {$text}";
А теперь сама ошибка: HEADER - это заголовок страницы, он должен идти до любой информации выведённой в браузере.
Спустя 2 минуты, 16 секунд (26.09.2010 - 22:44) Rand написал(а):
И вообще конкретно по этому коду, зачем здесь редирект, может лучше написать
?
if(empty($page)) {
$page = 1;
}
?
Спустя 25 минут, 33 секунды (26.09.2010 - 23:09) Golovastik написал(а):
Точно тьак работает,если ввести http://sitik.ru/videolessons/1
перключится на http://sitik.ru/videolessons/1.php?page=1
только выдаст ещё кроме моей навигации ошибку сверху, как убрать её,чтоб не выдавло при неправильном наборе адреа ЮРЛ?
Notice: Undefined index: page in z:\home\sitik.ru\www\blocks\kontent.php on line 11
[Денвер: показать возможную причину ошибки]1
перключится на http://sitik.ru/videolessons/1.php?page=1
только выдаст ещё кроме моей навигации ошибку сверху, как убрать её,чтоб не выдавло при неправильном наборе адреа ЮРЛ?
Notice: Undefined index: page in z:\home\sitik.ru\www\blocks\kontent.php on line 11
[Денвер: показать возможную причину ошибки]1
Спустя 11 минут, 14 секунд (26.09.2010 - 23:21) Golovastik написал(а):
Ещё вопрос, как написать, просто когда пользователь вводит в адресной строке:
http://sitik.ru/papka/
он попадает каталог файлов, как сделать чтоб не попадал, не могу понять как написать,чтоб перебросило его на /videolessons/1.php?page=1'>
http://sitik.ru/papka/
он попадает каталог файлов, как сделать чтоб не попадал, не могу понять как написать,чтоб перебросило его на /videolessons/1.php?page=1'>
Спустя 8 минут, 57 секунд (26.09.2010 - 23:30) Ice написал(а):
Цитата (Golovastik @ 27.09.2010 - 00:09) |
как убрать её,чтоб не выдавло при неправильном наборе адреа ЮРЛ? |
$page = isset( $_GET['page'] ) && ! empty( $_GET['page'] ) ? (int) $_GET['page'] : 1;
Спустя 4 минуты, 57 секунд (26.09.2010 - 23:35) Golovastik написал(а):
empty( $_GET['page'] ) ? (int) $_GET['page'] : 1;
Если в глобальном массиве гет не существует индекса page тогда этот индекс приравнять к целому типу иначе присвоить 1.
Скажите а что это за такая проверка?
Спустя 29 минут, 14 секунд (27.09.2010 - 00:04) Golovastik написал(а):
Как сделать пере направление с каталога на страницу, чтоб пользователь не попадал на каталог мой,не получается.
Я имею ввиду чтоб не попадал на http://sitik.ru/videolessons
а попадал на http://sitik.ru/videolessons/1.php?page=1
Я имею ввиду чтоб не попадал на http://sitik.ru/videolessons
а попадал на http://sitik.ru/videolessons/1.php?page=1
Спустя 14 минут, 3 секунды (27.09.2010 - 00:18) Ice написал(а):
$page = isset( $_GET['page'] ) && // если переменная существует И
! empty( $_GET['page'] ) ? // она не пуста, то...
(int) $_GET['page'] : 1;
В познавательных целях для работы с тернарным опепратором:
// вот это
$page = isset( $_GET['page'] ) && ! empty( $_GET['page'] ) ? (int) $_GET['page'] : 1;
// и вот это
$page = isset( $_GET['page'] ) ? ! empty( $_GET['page'] ) ? (int) $_GET['page'] : 1 : 1;
одно и то же. Просто первый вариант короче. Хотелось показать, что тернарные операторы могут быть и вложенными
Спустя 9 часов, 17 минут, 11 секунд (27.09.2010 - 09:35) Nord написал(а):
Цитата (Ice) |
$page = isset( $_GET['page'] ) && // если переменная существует И |
Достаточно одной проверки на !empty()