mysite.ru/index.php?s=zakazreklam&pr=small
Как сделать чтобы если допустим вбить в адресную строку не существующий урл mysite.ru/index.php?s=zakazreklam&pr=small№";%№ то отдавал 404ую а не страницу zakazreklam?
Делаю так:
<?php
if(isset($_GET["pr"])){$pr = $_GET["pr"];}else{$pr = "index.php?s=zakazreklam";}
switch($pr)
{
case('dynamica'): include('rek/dinami.php'); break;
case('paket'): include('rek/paket.php'); break;
case('cat'): include('rek/catads.php'); break;
case('begstroka'): include('rek/aeads.php'); break;
case('small'): include('rek/mini.php'); break;
case('pisma'): include('rek/mail_adspisma.php'); break;
case('textreklama'): include('rek/text.php'); break;
default: include('str/404.php'); break;
}
?>
Но за вместо того чтобы выдать 404 выдаёт страницу zakazreklam
А zakazreklam в головном индексе обрабатываеться так:
<?php
if(isset($_GET["s"])){$s = $_GET["s"];}else{$s = "index";}
switch ($s) {
case('index'): include('str/index.php'); break;
case('zakazreklam'): include('str/zakazreklam.php'); break;
default: include('str/404.php'); break;
}
?>
Спустя 43 минуты, 46 секунд (19.03.2011 - 00:48) silius написал(а):
$pr = isset($_GET['pr'])?$_GET['pr']:NULL;
switch($pr)
{
case 'dynamica': include './rek/dinami.php'; break;
case 'paket': include './rek/paket.php'; break;
case 'cat': include './rek/catads.php'; break;
case 'begstroka': include './rek/aeads.php'; break;
case 'small': include './rek/mini.php'; break;
case 'pisma': include './rek/mail_adspisma.php'; break;
case 'textreklama': include './rek/text.php'; break;
default: include './str/404.php';
}
а нельзя switch объединить? у тебя в любом случае вначале обрабатывается и выходит zakazreklam
ставь NULL если переменной не существует
Спустя 4 минуты, 34 секунды (19.03.2011 - 00:53) silius написал(а):
ааа, гоню, поздно уже, подумаю, напишу
Спустя 2 минуты, 30 секунд (19.03.2011 - 00:55) VELIK505 написал(а):
с делал как вы сказали но при заходе на страницу zakazreklam выдаёт 404 сразу=)
Спустя 5 минут, 38 секунд (19.03.2011 - 01:01) VELIK505 написал(а):
Короче вот код:
Надо чтобы на 404 кидал если кто то добавляет чёто в адресную строку
<?php
if(isset($_GET["pr"])){$pr = $_GET["pr"];}else{$pr = "index.php?s=zakazreklam";}
switch ($pr) {
case('dyn'): include('rekwminc/adv.php'); break;
case('paket'): include('rekwminc/addpaket.php'); break;
case('cat'): include('rekwminc/addcatads.php'); break;
case('stat'): include('rekwminc/addstatlink.php'); break;
case('banner'): include('rekwminc/addbanner.php'); break;
case('banner100x100'): include('rekwminc/addbanner100x100.php'); break;
case('frame'): include('rekwminc/addframeads.php'); break;
case('psevdo'): include('rekwminc/addpsevdo.php'); break;
case('begstroka'): include('rekwminc/addrlineads.php'); break;
case('small'): include('rekwminc/advmini.php'); break;
case('pisma'): include('rekwminc/mail_ads.php'); break;
case('textreklama'): include('rekwminc/addtextads.php'); break;
}
?>
Надо чтобы на 404 кидал если кто то добавляет чёто в адресную строку
Спустя 6 часов, 50 минут, 21 секунда (19.03.2011 - 07:51) inpost написал(а):
Вообщем, если я правильно понял, то тебе надо следующее:
switch ($lvl1)
{
case('textreklama'):
$lvl1 = 'rek/text.php';
break;
default:
$error[] = 'LEVEL 1 ERROR';
break;
}
switch ($lvl2)
{
case('textreklama'):
$lvl2 = 'rek/text.php';
break;
default:
$error[] = 'LEVEL 2 ERROR';
break;
}
if(count($error))
{
echo implode(' ',$error).'<br />';
include './str/404.php';
exit();
}
include $lvl1;
include $lvl2;
Спустя 3 часа, 43 минуты, 52 секунды (19.03.2011 - 11:35) Trianon написал(а):
Очевидно, саму страницу 404.php отдать мало.
Следует помимо всего прочего выдать 404 статус.
Учитывая, что строка include './str/404.php'; идет после echo - сделать это в самом скрипте 404.php уже не выйдет.
Следует помимо всего прочего выдать 404 статус.
Учитывая, что строка include './str/404.php'; идет после echo - сделать это в самом скрипте 404.php уже не выйдет.
Спустя 4 часа, 14 минут, 42 секунды (19.03.2011 - 15:50) VELIK505 написал(а):
хм. да нет. Просто не могу до не сти до вас чё надо. Вот смотрите все страницы сайта идут через инклюд таким образом собираються все в индексе корневом так:
Вот тут мы видим что идёт свич обработка и если линка не существует то отдаём 404ую.
всё ок. И мы видим что тут есть страница zakazreklam
а в саму страницу zakazreklam инклюдяться ещё страницы таким образом:
И линк (url) получаеться уже как бы через 2ой инклюд так
mysite.ru/index.php?s=zakazreklam&pr=stat
Так вот как код который на странице zakazreklam обработать?
<?php
if(isset($_GET["s"])){$s = $_GET["s"];}else{$s = "index";}
switch ($s) {
case('index'): include('stran/index.php'); break;
case('niceserf'): include('stran/niceserf.php'); break;
case('novosti'): include('stran/news.php'); break;
case('zakazreklam'): include('stran/zakazreklam.php'); break;
default: include('stran/404.php'); break;
}
?>
Вот тут мы видим что идёт свич обработка и если линка не существует то отдаём 404ую.
всё ок. И мы видим что тут есть страница zakazreklam
а в саму страницу zakazreklam инклюдяться ещё страницы таким образом:
<?php
if(isset($_GET["pr"])){$pr = $_GET["pr"];}else{$pr = "zakazreklam";}
switch ($pr) {
case('dyn'): include('rekwminc/adv.php'); break;
case('paket'): include('rekwminc/addpaket.php'); break;
case('cat'): include('rekwminc/addcatads.php'); break;
case('stat'): include('rekwminc/addstatlink.php'); break;
case('banner'): include('rekwminc/addbanner.php'); break;
case('banner100x100'): include('rekwminc/addbanner100x100.php'); break;
case('frame'): include('rekwminc/addframeads.php'); break;
case('psevdo'): include('rekwminc/addpsevdo.php'); break;
case('begstroka'): include('rekwminc/addrlineads.php'); break;
case('small'): include('rekwminc/advmini.php'); break;
case('pisma'): include('rekwminc/mail_ads.php'); break;
case('textreklama'): include('rekwminc/addtextads.php'); break;
}
?>
И линк (url) получаеться уже как бы через 2ой инклюд так
mysite.ru/index.php?s=zakazreklam&pr=stat
Так вот как код который на странице zakazreklam обработать?