[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Неправильный ввод в адресной строке браузера
Golovastik
У меня есть пункт меню который ссылается на страницу http://sitik.ru/videolessons/1.php?page=1
Скажите как сделать,чтоб если пользователь неправильно ввёл ссылку в браузере его пренаправило на страницу 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("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

Спустя 11 минут, 14 секунд (26.09.2010 - 23:21) Golovastik написал(а):
Ещё вопрос, как написать, просто когда пользователь вводит в адресной строке:

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

Спустя 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( $_GET['page'] ) ? // она не пуста, то...       
        (int) $_GET['page'] : 1;


Достаточно одной проверки на !empty()
Быстрый ответ:

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