Autor Zpráva
davef6
Profil
myslíte že mi tento kód může brzdit stránky? případně jak to udělat efektivněji. díky

                    if(isset($_GET["page"]))
                    {
					$pole = array("novinky","download","zebricky_mp3","zebricky_videoklipy", "zebricky_legracni_videa","napoveda","pravidla","prehrat_legracni_video","novinky_mp3","novinky_videoklipy","novinky_legracni_videa","kontakt","nahlaseni_chyb","prehrat_videoklip","oblibene_mp3","jak_na_rss","zapomenute_heslo","adresar","zebricek_mp3_pratelum","mapa_webu","zebricky_novinky","zebricky_novinky2","hledej","zebricky_novinky_tyden","zebricky_novinky_stazeno","oblibene","oblibene_videoklipy","zebricek_videoklipy_pratelum","zebricky_nejlepe_hodnocene","zebricky_nejlepe_hodnocene_legracni","oblibene_legracni_videa","zebricek_legracni_videa_pratelum","po_prihlaseni","zebricek_pratelum","bannery","zebricky_legracni_videa_tyden","zebricky_legracni_videa_stazeno","prani","statistika","objednat_vip","jak_na_playlist","prihlaseni","doporucte_web","co_vylepsit","navod_prehravac","reklama_nabidka","registrace_dokoncena","muj_profil","nastaveni_profilu","do_pratel","poslat_vzkaz","vzkazy","online_uzivatele","pratele","napsat_clanek","nastaveni_miniblog","nastaveni","statistiky","zebricky_miniblog","miniblog_novinky","miniblog_tyden","vypis_novinky","vypis_bloky","kategorie_img","vypis_img","zebricky_mp3_rozsirene2","registrace","doporucujeme");
					  foreach ($pole as $val)
					  {
                        if ($_GET[page] == $val)
                        {
                          $stranka = $val.".php";
                          if(file_exists($stranka)) require($stranka);
                          else echo"<p>Stránka nenalezena.</p>";
                        }
	                  }
                    }
Majkl578
Profil
proc to neudelat jednoduseji?
$sekce = array("novinky","download","zebricky_mp3","zebricky_videoklipy","zebricky_legracni_videa","napoveda","pravidla","prehrat_legracni_video","novinky_mp3","novinky_videoklipy","novinky_legracni_videa","kontakt","nahlaseni_chyb","prehrat_videoklip","oblibene_mp3","jak_na_rss","zapomenute_heslo","adresar","zebricek_mp3_pratelum","mapa_webu","zebricky_novinky","zebricky_novinky2","hledej","zebricky_novinky_tyden","zebricky_novinky_stazeno","oblibene","oblibene_videoklipy","zebricek_videoklipy_pratelum","zebricky_nejlepe_hodnocene","zebricky_nejlepe_hodnocene_legracni","oblibene_legracni_videa","zebricek_legracni_videa_pratelum","po_prihlaseni","zebricek_pratelum","bannery","zebricky_legracni_videa_tyden","zebricky_legracni_videa_stazeno","prani","statistika","objednat_vip","jak_na_playlist","prihlaseni","doporucte_web","co_vylepsit","navod_prehravac","reklama_nabidka","registrace_dokoncena","muj_profil","nastaveni_profilu","do_pratel","poslat_vzkaz","vzkazy","online_uzivatele","pratele","napsat_clanek","nastaveni_miniblog","nastaveni","statistiky","zebricky_miniblog","miniblog_novinky","miniblog_tyden","vypis_novinky","vypis_bloky","kategorie_img","vypis_img","zebricky_mp3_rozsirene2","registrace","doporucujeme");
if(!in_array($_GET['page'], $sekce) {
  echo 'wrong page';
}
if(!file_exists($_GET['page'] . '.php')) {
  echo"<p>Stránka nenalezena.</p>";
}
require $_GET['page'] . '.php';
Jan Tvrdík
Profil
davef6:
Brzdit určitě ne (myšleno výrazně), ale určitě to lze napsat lépe.
<?php
if (isset($_GET['page'])) {
	$povoleneStranky = array("novinky","download","zebricky_mp3","zebricky_videoklipy", "zebricky_legracni_videa","napoveda","pravidla","prehrat_legracni_video","novinky_mp3","novinky_videoklipy","novinky_legracni_videa","kontakt","nahlaseni_chyb","prehrat_videoklip","oblibene_mp3","jak_na_rss","zapomenute_heslo","adresar","zebricek_mp3_pratelum","mapa_webu","zebricky_novinky","zebricky_novinky2","hledej","zebricky_novinky_tyden","zebricky_novinky_stazeno","oblibene","oblibene_videoklipy","zebricek_videoklipy_pratelum","zebricky_nejlepe_hodnocene","zebricky_nejlepe_hodnocene_legracni","oblibene_legracni_videa","zebricek_legracni_videa_pratelum","po_prihlaseni","zebricek_pratelum","bannery","zebricky_legracni_videa_tyden","zebricky_legracni_videa_stazeno","prani","statistika","objednat_vip","jak_na_playlist","prihlaseni","doporucte_web","co_vylepsit","navod_prehravac","reklama_nabidka","registrace_dokoncena","muj_profil","nastaveni_profilu","do_pratel","poslat_vzkaz","vzkazy","online_uzivatele","pratele","napsat_clanek","nastaveni_miniblog","nastaveni","statistiky","zebricky_miniblog","miniblog_novinky","miniblog_tyden","vypis_novinky","vypis_bloky","kategorie_img","vypis_img","zebricky_mp3_rozsirene2","registrace","doporucujeme");
	
	if (in_array($_GET['page'], $povoleneStranky)) {
		$stranka = 	$_GET['page'] . '.php';
		
		if (file_exists($stranka)) {
			include $stranka;
		} else {
			echo "<p>Stránka nenalezena.</p>";
		}
	}
}
?>


EDIT: Majkl578 napsal něco podobného, akorát špatně, protože ten require volá pokaždé :)
davef6
Profil
ty jo díky:)
Majkl578
Profil
Jan Tvrdík
to neni pravda. k tomu require se to dostane jen v pripade, ze se splni ty 2 podminky pred nim. je to naprosto stejne, jen nemam rad skladani podminek do sebe (neni to prehledne)

schvalne, co je prehlednejsi? prvne vyloucit a pak provest, nebo skladat nekolik podminek do sebe a vsude samy else?
Mastodont
Profil
Majkl578
k tomu require se to dostane jen v pripade, ze se splni ty 2 podminky pred nim
Vážně? To bys tam musel mít die(), ne echo.
TomášK
Profil
Majkl578
Přehlednější se mi zdá tvoje varianta, a nejen mně:
http://www.majda.cz/vyuka/2006-2007/swi113/slajdy.html#slide-72
Majkl578
Profil
Mastodont
aha, uz na to koukam, psal jsem to s die, ale zkopiroval jsem tam to echo od davef6a. to se omlouvam

ale za prehlednosti si stojim
Nox
Profil
Fakt to skládání přehledné není, ale opravdu to k tomu requiru nedojde?
Pak by tam mělo být die nebo exit...problém pak ale je s tím, když je třeba provést
i kód po tomto násilném ukončení...ať už layout nebo další skript

Nebo to chápu špatně?

Napadá mě třeba
$valid = true;
if( !něco1 ){ $valid =  false; }
elseif( !něco2 ){ $valid = false; }

if($valid) require "neco.php";
Majkl578
Profil
Nox
je to tak, nebo jeste jednodusseji:

if(neco1 && neco2 && neco3) {
  tady se neco stane
}
TomášK
Profil
Nox
Uzavřel bych to do funkce. Můžu pak volat return na místě die.

function print_page($name) 
{
    if( !page_valid($name) ) return ERR_INVALID_PAGE;
    if( !page_exists($name) ) return ERR_PAGE_NOT_FOUND;

    require get_page_path($name);
}

function page_valid($name) ...
function page_exists($name) ...
function get_page_path($name) ...


V hlavní části bych pak jen zavolal funkci a ošetřil chybové stavy.

Majkl578
Na tvém řešení se mi nelíbí, že neumožňuje rozlišit chybové stavy - jestli stránka byla nenalezena nebo jestli není přístupná. Ale kdybys to nepotřeboval rozlišit, je to nejjednoduší možné.
Majkl578
Profil
TomášK
pokud mas na mysli to posledni, take se mi to moc nelibi, jen jsem znednodusil pripad v [#9]

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: