Autor | Zpráva | ||
---|---|---|---|
slovakCZ Profil |
#1 · Zasláno: 3. 12. 2009, 20:45:54
Zdravim Vas,
resim maly problem, a to ten, jak udelat presmerovani na chybovou stranku, kdyz dana stranka neni nalezena... samozrejme ze to jde resit pres htaccess, ale v tomto pripade bohuzel ne. muj priklad je nasledujici: index.php: <?php include "header.php"; echo "<div class=\"obsah\">"; include "odkazy.php"; echo "</div>"; ?> odkazy.php vypadaji takto: <?php if (isset($_GET['page'])) { // pokud byl odeslán ?page= ... $page = $_GET['page']; $page2 = dirname($_SERVER['SCRIPT_FILENAME'])."/page/".$page.".php"; if (file_exists($page2)) { //pokud page existuje, načteme ho do středu if (substr_count($page, "../") > 0) { // pokud je v parametru alespoň 1x ../ neumožíme page načíst echo "<h3>Upozornění</h3>Nelze nahrát page v nadřazeném adresáři!"; } elseif ($page == "index" or $page == "/index") { // index načíst nepovolíme, vznikl by nekonečný cyklus echo "<h3>Upozornění</h3>Index nemůže načíst sám sebe!"; } else { include $page2; } } else { //pokud page neexistuje, zavoláme error404.php include "page/error404.php"; } } else { // Pokud nebyl paramentr page volaný, načteme domu.php include "page/domu.php"; } ?> jednotlive stranky se tedy volaji takto: http://mujweb.cz/index.php?page=nazev-stranky jak jiste vidite na 27. radku v pripade, ze nazev-stranky.php ve slozce pages neexistuje, tak se nacte error404.php. coz je spravne, vse funguje jak ma.. ale. stranku error404.php mi to vypisuje tim padem do divu: <?php include "header.php"; echo "<div class=\"obsah\">"; //zde bude prave stranka error404.php echo "</div>"; ?> coz se mi 2x nelibi, chtel bych, aby se pri nenalezene strance nenacitala error404.php do obsahu stranky, ale aby se nacitala jako nova stranka (tedy nejak takto: http://mujweb.cz/error404.php). Zkousel jsem presmerovani pres header ("location:") ovsem to samozrejme nejde, jelikoz mam na strance jiz nejaky vystup (hlavicka, html deklarace....) je nejake reseni jak pri nenalezeni stranky presmerovat uplne na jinou pri takoveto strukture webu? |
||
ninja Profil |
#2 · Zasláno: 3. 12. 2009, 21:05:23 · Upravil/a: ninja
Místo include pužijte funkci header a přesměrujte.
|
||
slovakCZ Profil |
#3 · Zasláno: 3. 12. 2009, 21:32:13
no to jsem psal... pozil jsem header a presmeroval jem.. ovsem vypsalo mi to chybu.. jelikoz header muzu pouzit pouze, kdyz na strance pred tim neni zadny vystup.. coz v tomto pripade prave je... =o/
|
||
Taps Profil |
#4 · Zasláno: 3. 12. 2009, 21:36:45
ninja:
Čti trošku pečlivěji Zkousel jsem presmerovani pres header ("location:") ovsem to samozrejme nejde, jelikoz mam na strance jiz nejaky vystup (hlavicka, html deklarace....) je nejake reseni jak pri nenalezeni stranky presmerovat uplne na jinou pri takoveto strukture webu? |
||
Taps Profil |
#5 · Zasláno: 3. 12. 2009, 21:43:36
slovakCZ:
Před tu hlavičku zkus vložit tento kod if (isset($_GET['page'])){ if(!file_exists(dirname($_SERVER['SCRIPT_FILENAME'])."/page/".$_GET['page'].".php")){ header("location:error404.php"); } } |
||
slovakCZ Profil |
#6 · Zasláno: 3. 12. 2009, 22:10:48
neco podobneho jsem zkousel, ale s predavanim parametru a pak jsem si uvedomil ze to je blbost :) toto me nenapadlo, dik moc, vyzkousim v pozdnich hodinach a dam vedet.
|
||
slovakCZ Profil |
#7 · Zasláno: 4. 12. 2009, 00:59:48
funguje to presne tak jak ma, dekuju moc
|
||
Časová prodleva: 14 let
|
0