Autor Zpráva
Joan
Profil
Hezký večer,
už mi pokusná ukázka se dvěma parametry funguje přesně, jak chci, jen bych velmi ocenila další vylepšení.
Pro svůj lepší přehled bych chtěla, aby se související stránky includovaly ze samostatných složek. Podle výše uvedeného příkladu bych měla složku ovoce a složku zelenina, ve kterých by byly patřičné soubory. Ve skutečnosti těch složek bude o dost víc.
Tento skript šlape, pokud jsou veškeré soubory nahňácané v jediné složce s názvem "pokus":
<?php    
if (isset($_GET['str']) && preg_match('/^[a-z0-9_-]+$/', $_GET['str']))  {
    include file_exists("../pokus/{$_GET['str']}.php") == true ?  
    dirname(__FILE__)."/{$_GET['str']}.php" :
    dirname(__FILE__)."/404.php";
    } else  {
    include dirname(__FILE__)."/uvod.php";
    } 

if(isset($_GET['vyber']))  { 
$vloz = array ('jablka', 'hrusky', 'banany', 'mrkev', 'kvetak');
    if (in_array($_GET['vyber'], $vloz))    {
    include dirname(__FILE__)."/{$_GET['vyber']}.php";
       }
  }
?>


Moje snaha použít pole adresářů nevykazuje žádnou viditelnou chybu, leč soubor se nenatáhne (oba parametry v adrese vidět jsou -vyber je ten druhý):
if(isset($_GET['vyber']))  { 
$vloz = array ('jablka', 'hrusky', 'banany', 'mrkev', 'kvetak');
    $slozky = array ('zelenina');
    if ((in_array($_GET['vyber'], $vloz)) && (in_array($_GET['vyber'], $slozky)))   {
    include dirname(__FILE__)."../pokus/{$_GET['vyber']}.php";
       }
  }


Takže mám špatně cestu. Žádná úprava v
  include dirname(__FILE__)."../pokus/{$_GET['vyber']}.php";
nepomáhá, takže mám dojem, že tento řádek je nepoužitelný.

1) Jak prosím nastavit, aby PHP lovilo stránky z pole adresářů?
2) Proč mi první skript bere pouze označení nadřazeného adresáře (řádek 3), když všechno je ve složce "pokus", což je tento adresář
3) Proč na témže řádku musí být
{$_GET['str']}
ve složených závorkách?

Moc děkuji předem za odpověď na moje otázky, nejraději na tu první :-)
Kcko
Profil
Ta podmínka

    if ((in_array($_GET['vyber'], $vloz)) && (in_array($_GET['vyber'], $slozky)))   {


nikdy nevyhoví, jelikož by daná hodnota musela být obsažena v obou polích.

Nebo pak nechápu, pokud je jedno soubor a to druhé adresář, proč obě ověření probíhají přes jeden GET pametr , tj vyber.

Máš v tom pěkný maglajz co?
Joan
Profil
Kcko:
"nikdy nevyhoví, jelikož by daná hodnota musela být obsažena v obou polích."
Tak jak bys oddělil soubor od složky? Mám k tomu přidat třetí parametr?

"Máš v tom pěkný maglajz co? "
Promiň, teprve se to po večerech samostudiem učím...

EDIT: Voilá!
if(isset($_GET['vyber']))  { 
    if (file_exists('zelenina/'.$_GET['vyber'].'.php'))   {
    include ('/zelenina/'.$_GET['vyber'].'.php');
       }
       if (file_exists('ovoce/'.$_GET['vyber'].'.php'))  {
       include ('/ovoce/'.$_GET['vyber'].'.php');
       } 
          else  {
          echo "Špatně!";
                }
  }


a funguje :-). Jen jsem myslela, že to půjde elegantněji (patrně switchem, že).
Pěkný večer.

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:

0