Stránka 2 z 2

Re: Dynamické stránky vs SQL vs require

Napsal: pát 29. kvě 2009, 21:18
od arxeiss
Tak se ptej, mi je to jedno, jenom jsem tě nepochopil, ale pokud jsi myslel toto tak když chceš mít v adrese více jak 1 GET tak se to zapisuje index.php?prvniget=neco&druhyget=neco2 a jěště, ten index tam být nemusí, do adres piš jenom <a href="?p=new">... máš tam méně textu, a když potom budeš na jiné stránce a dáš odkaz na index.php tak pak se to bude dopisovat za něho.

Re: Dynamické stránky vs SQL vs require

Napsal: sob 30. kvě 2009, 10:47
od Balin.Tomas
Ne ne tohle jsem nemyslel, muj dotaz byla blbost a přišel jsem na to, ale tohle se mi také opravdu hodí.Takže ještě jednou a mockrát díky.Teď mám další problém, ale to nepatří do tohoto příspěvku.

Re: Dynamické stránky vs SQL vs require

Napsal: sob 30. kvě 2009, 13:25
od Balin.Tomas
Tak znova, asi tam mám někde chybku, ukaže prazdnou stranu(index ukaže,ale bez ty načtený stránky)

Kód: Vybrat vše

if (isset($_GET['page'])){
$soubor=$_GET['page'];
$soubor2= dirname($_SERVER['SCRIPT_FILENAME'])."/page/".$soubor.".php";
}elseif (isset($_GET['admin'])){
$soubor=$_GET['admin'];
$soubor2= dirname($_SERVER['SCRIPT_FILENAME'])."/admin/".$soubor.".php";
}elseif (isset($_GET['galery'])){
$soubor=$_GET['galery'];
$soubor2= dirname($_SERVER['SCRIPT_FILENAME'])."/galery/".$soubor.".php";
if(file_exists($soubor2)){
if(substr_count($soubor,"../")>0){
echo "<h3>Upozornění</h3>Nelze nahrát soubor v nadřazeném adresáři!";
}elseif($soubor=="index" or $soubor=="/index" or $soubor=="./index"){
echo "<h3>Upozornění</h3>Index nemůže načíst sám sebe!";
}else{
include $soubor2;
}
}else{
include "inc/404.php";
}
}else{
include "nabidka.php";
}

Re: Dynamické stránky vs SQL vs require

Napsal: sob 30. kvě 2009, 14:52
od arxeiss
Nauč se odsazovat třeba to co je v podmínce o 1 tabulátor atd... pak ti to bude jasnější, odsadil jsem ten tvůj script a když se na to podíváš tak najdeš chybu hned.

Kód: Vybrat vše

if (isset($_GET['page'])){
  $soubor=$_GET['page'];
  $soubor2= dirname($_SERVER['SCRIPT_FILENAME'])."/page/".$soubor.".php";
}elseif (isset($_GET['admin'])){
  $soubor=$_GET['admin'];
  $soubor2= dirname($_SERVER['SCRIPT_FILENAME'])."/admin/".$soubor.".php";
}elseif (isset($_GET['galery'])){
  $soubor=$_GET['galery'];
  $soubor2= dirname($_SERVER['SCRIPT_FILENAME'])."/galery/".$soubor.".php";
  if(file_exists($soubor2)){
    if(substr_count($soubor,"../")>0){
      echo "<h3>Upozornění</h3>Nelze nahrát soubor v nadřazeném adresáři!";
    }elseif($soubor=="index" or $soubor=="/index" or $soubor=="./index"){
      echo "<h3>Upozornění</h3>Index nemůže načíst sám sebe!";
    }else{
      include $soubor2;
    }
  }else{
    include "inc/404.php";
  }
}else{
  include "nabidka.php";
}
A pokud ne, tak tu podmínku jestli soubor existuje atd... máš jenom u toho třetího takže když máš $_GET['page'] tak se ti za $soubor2 dosadí cesta ale tím to končí, pak už to nekontroluje další podmínky takže zkončí...
Tu kontrolu dej za každou tu proměnnou, asi takto

Kód: Vybrat vše

if(isset($_GET['page'])){
  tady bude taky kontrola jestli stránka existuje
}elseif(isset($_GET['admin'])){
  tady bude kontrola jenom s jinou cestou
}elseif(isset($_GET['galerie'])){
  tady bude kontrola s cetou ke složce galerie
}else{
  if(!isset($_GET['page'] and !isset($_GET['admin'] and !isset($_GET['galery'])){
    include "uvod.php";
  }
}

Re: Dynamické stránky vs SQL vs require

Napsal: sob 30. kvě 2009, 15:04
od Balin.Tomas
Aha, ja jsem si myslel že elseif pokračuje dokud nenarazí že to má udělat a teprve potom provede i to ostatní.Doufám že chápeš jak to myslím. Každopádně to jdu předělat a budu odsazovat :)

Re: Dynamické stránky vs SQL vs require

Napsal: sob 30. kvě 2009, 15:21
od arxeiss
No moc jsem nepochopil jak to myslíš, ale hlavní je že chápeš jak to funguje, Prostě je if, pokud je pravda provede se co je mezi {} a pak jde až úplně na konec, pokud není pravda tak jde na další, a když tam je elseif tak to zkontroluje tu podmínku a pokud je pravda provede to co je mezi {} a zkočí zase na konec, obejde všechny elseify a else a zkočí za to

Kód: Vybrat vše

if(velká podmínka){
  if(něco){   //pokud je pravda provede první příkaz a pak jde až na konec, pokud ne zkočí a k další {
    první příkaz
  }elseif(něco){   //Tato podmínka se zkontroluje pozue pokud to nad tím není pravda
    druhý příkaz
  }else{  //Pokud není ani druhá podmínka pravda provede se toto, ať je tam cokoli
    cokoli
  }  // TADY je konec té podmínky if(něco)
} //Tady je konec podmínky if(velká podmínka)
Doufám že jsem tě nezamotal jěště více

Re: Dynamické stránky vs SQL vs require

Napsal: sob 30. kvě 2009, 15:41
od Balin.Tomas
arxeiss píše:Doufám že jsem tě nezamotal jěště více
Naopak, takhle krásně nakreslený :-D to perfekně chápu.

Re: Dynamické stránky vs SQL vs require

Napsal: sob 30. kvě 2009, 16:24
od Balin.Tomas
Takže jak jsi mi to vysvětlil to chápu, ale to dosazení je těžší.Byl by jsi tak hodný a ukazal mi jak tam dosadit ty kontroly.Děkuji tisíckrát

Re: Dynamické stránky vs SQL vs require

Napsal: sob 30. kvě 2009, 16:30
od arxeiss
Je to trochu delší ale je to tak:

Kód: Vybrat vše

if (isset($_GET['page'])){
  $soubor=$_GET['page'];
  $soubor2= dirname($_SERVER['SCRIPT_FILENAME'])."/page/".$soubor.".php";
}elseif (isset($_GET['admin'])){
  $soubor=$_GET['admin'];
  $soubor2= dirname($_SERVER['SCRIPT_FILENAME'])."/admin/".$soubor.".php";
}elseif (isset($_GET['galery'])){
  $soubor=$_GET['galery'];
  $soubor2= dirname($_SERVER['SCRIPT_FILENAME'])."/galery/".$soubor.".php";
}else{
  include "nabidka.php";
}
if($soubor!='' and file_exists($soubor2)){
    if(substr_count($soubor,"../")>0){
      echo "<h3>Upozornění</h3>Nelze nahrát soubor v nadřazeném adresáři!";
    }elseif($soubor=="index" or $soubor=="/index" or $soubor=="./index"){
      echo "<h3>Upozornění</h3>Index nemůže načíst sám sebe!";
    }else{
      include $soubor2;
    }
}else{
  include "inc/404.php";
}
A jěště taková poznámka, všude to kontroluje jestli jsi nezadal index ale myslím že je to trochu zbytečné, protože index bude v tom adresáři nadřazeném ne? Takže pokud jo, tak všude tu podmínku můžeš smazat a nechat tam jenom to substr_count a pak už ten include

Edit:\\ Úprava kódu, v tvojem případě jde použít i kratší varianta.

Re: Dynamické stránky vs SQL vs require

Napsal: sob 30. kvě 2009, 16:47
od Balin.Tomas
Huráááááá, nejenom že to funguje, ale ja to i chapu :-D :-D
Ja jsem myslel že velká podmínka je to první GET a podle toho jsem to tam dosazoval, to samozřejmě vůbec nešlo.
arxeiss tísíckrát ti děkuji,pomohl jsi mi i k tomu pochopení.Dík

Re: Dynamické stránky vs SQL vs require

Napsal: sob 30. kvě 2009, 16:51
od arxeiss
Aha, tak to co jsem dával jako příklad nemělo nic společného s tím tvojím, to jsem vymyslel na vysvětlení.
Jsem rád že ti to jede a že jsi to pochopil, a čekám na pokračování v tvojem dalším tématu o Session :wink:

Re: Dynamické stránky vs SQL vs require

Napsal: sob 30. kvě 2009, 18:31
od Balin.Tomas
arxeiss píše:Je to trochu delší ale je to tak:

Kód: Vybrat vše

if (isset($_GET['page'])){
  $soubor=$_GET['page'];
  $soubor2= dirname($_SERVER['SCRIPT_FILENAME'])."/page/".$soubor.".php";
}elseif (isset($_GET['admin'])){
  $soubor=$_GET['admin'];
  $soubor2= dirname($_SERVER['SCRIPT_FILENAME'])."/admin/".$soubor.".php";
}elseif (isset($_GET['galery'])){
  $soubor=$_GET['galery'];
  $soubor2= dirname($_SERVER['SCRIPT_FILENAME'])."/galery/".$soubor.".php";
}else{
  include "nabidka.php";
}
if($soubor!='' and file_exists($soubor2)){
    if(substr_count($soubor,"../")>0){
      echo "<h3>Upozornění</h3>Nelze nahrát soubor v nadřazeném adresáři!";
    }elseif($soubor=="index" or $soubor=="/index" or $soubor=="./index"){
      echo "<h3>Upozornění</h3>Index nemůže načíst sám sebe!";
    }else{
      include $soubor2;
    }
}else{
  include "inc/404.php";
}
A jěště taková poznámka, všude to kontroluje jestli jsi nezadal index ale myslím že je to trochu zbytečné, protože index bude v tom adresáři nadřazeném ne? Takže pokud jo, tak všude tu podmínku můžeš smazat a nechat tam jenom to substr_count a pak už ten include

Edit:\\ Úprava kódu, v tvojem případě jde použít i kratší varianta.
Když tam je tento kratší tak dolu do uvodu tu 404.php includuje společně s tím uvodem.

Re: Dynamické stránky vs SQL vs require

Napsal: sob 30. kvě 2009, 21:35
od arxeiss
To je tak když si to nemůžu vyzkoušet. Zkus toto, už by neměl být problém

Kód: Vybrat vše

if (isset($_GET['page'])){
  $soubor=$_GET['page'];
  $soubor2= dirname($_SERVER['SCRIPT_FILENAME'])."/page/".$soubor.".php";
}elseif (isset($_GET['admin'])){
  $soubor=$_GET['admin'];
  $soubor2= dirname($_SERVER['SCRIPT_FILENAME'])."/admin/".$soubor.".php";
}elseif (isset($_GET['galery'])){
  $soubor=$_GET['galery'];
  $soubor2= dirname($_SERVER['SCRIPT_FILENAME'])."/galery/".$soubor.".php";
}else{
  include "nabidka.php";
  $kont=1;
}
if($soubor!='' and file_exists($soubor2)){
    if(substr_count($soubor,"../")>0){
      echo "<h3>Upozornění</h3>Nelze nahrát soubor v nadřazeném adresáři!";
    }elseif($soubor=="index" or $soubor=="/index" or $soubor=="./index"){
      echo "<h3>Upozornění</h3>Index nemůže načíst sám sebe!";
    }else{
      include $soubor2;
    }
}elseif($kont!=1){
  include "inc/404.php";
}
A jěště příště si můžeš zkrátit tu citaci ať to není tak dlouhé. Jediná změna tam je že při té první kde se includuje nabidka.php jsem připsal $kont=1; a pak na konci místo else jsem dal elseif($kont!=1) jinak vše zůstalo