Autor Zpráva
asseN
Profil
Dobrý večer,
mám problém s načítáním souborů ze složky (while) aby se zapsala do webu ($_GET).
Soubory ve složce hlavni_stranka / novinky.php / kontakt.php ... chtěl bych aby to na webu bylo index.php?id=novinky .. index.php?id=kontakt
Zapisovaní ručně mi funguje, ale chtěl bych to mít automatické, na internetu jsem hledal a nic nenašel.
<?php
if ($folder = opendir('stranky/hlavni_stranka/')) {
  while (false !== ($soubor = readdir($folder))) {
if ($soubor != "." && $soubor != "..") {
}
}
switch ($_GET["id"])
{
 case "$soubor":
   include ('stranky/hlavni_stranka/'.$soubor.'');
 break;
}
}
?> 

Děkuji za pomoc
Alutom
Profil
Moc nechápu, na co tam máš ten cyklus while. Takhle to nefunguje?

<?php
  include 'stranky/hlavni_stranka/'.$_GET['id'];
?>
BuGeR
Profil
Ten cyklus tam má, aby věděl, že ten soubor existuje a nemohl tam nikdo zadat nějaké jinačí stránky, než z té složky.
Myslím, že by stačilo toto:
if(isset($_GET["id"])) {
   $stranka = $_GET["id"];
   $slozka = "stranky/hlavni_stranka/";
   if(file_exists($slozka.$stranka)) {
      include $slozka.$stranka;
   } else {
      echo "Soubor neexistuje.";
   }
}
asseN
Profil
Alutom:

Zkoušel jsem, ale neincludovalo mi to novinky.php, jen novinky. Na webu se nic nezobrazí.

BuGeR:

Když dám na webu index.php?id=novinky píše to Soubor neexistuje, i když ten soubor je ve složce.
Jak to mám vyřešit?

Děkuji za odpověď
BuGeR
Profil
asseN:
Tak zkus to změnit ještě na toto:
if(isset($_GET["id"])) {
   $stranka = $_GET["id"].".php";
   $slozka = "stranky/hlavni_stranka/";
   if(file_exists($slozka.$stranka)) {
      include $slozka.$stranka;
   } else {
      echo "Soubor neexistuje.";
   }
}
To už ale bude počítat s tím, že ?id=novinky bude vždy php soubor - tudíž nepůjdou includovat html stránky apod.
asseN
Profil
BuGeR:
Díky moc, funguje to! Já jsem práve chtěl at to includuje jen PHP soubory.
Ještě bych se chtěl zeptat jde do toho kódu nějak přidat když někdo dá www.domena.cz/index.php ať naběhne nastavený default soubor?
Kdysi jsem to měl takhle
default:
   include ('text/hlavnistranka/uvod.php');
 break;



Kdyby to nešlo, tak to můžu vyřešit přesměrovaní.
Se musí asi nastavit, nějaká podmínka pokud je jen index.php tak to naincludeje ('text/hlavnistranka/uvod.php');
S PHP začínám, pročetl jsem si různé manuály, ale praxe je prexe. Díky ;)
BuGeR
Profil
asseN:
if(isset($_GET["id"])) {
   $stranka = $_GET["id"].".php";
   $slozka = "stranky/hlavni_stranka/";
   if(file_exists($slozka.$stranka)) {
      include $slozka.$stranka;
   } else {
      echo "Soubor neexistuje.";
   }
} else {
   include "uvod.php"; // Kdyžtak doplň stranky/hlavni_stranka/
}
Ta poslední else část, se spustí, když zadáš index.php - pokud vlastně nedefinuješ $_GET["id"].
asseN
Profil
Děkuji mockrát, už to začínám trošku více chápat, jak to funguje.. ;)

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: