Autor Zpráva
MichaelaRendy
Profil
Ahoj!
Omlouvám se, že ruším ve vánočním čase, ale nevím si s něčím rady..
Vytvořila jsem webovky- www.neu.cckopava.cz (nejsou ještě dotažené do konce) a zasekla jsem se u funkce include().. Nechce ani zaboha fungovat..
Jde mi o vkládání obsahu, v souboru index.php mám napsané toto:
<?php
        
                 
             if (isset($_GET['page'])){        // pokud byl 

odeslán ?page= ...
                $soubor=$_GET['page'];
                $soubor2= dirname($_SERVER

['SCRIPT_FILENAME'])."/".$soubor.".php";
                if(file_exists($soubor2)){      //pokud 

soubor existuje, načteme ho do středu
                   if(substr_count($soubor,"../")>0){ // 

pokud je v parametru alespoň 1x ../ neumožíme soubor načíst
                       echo "<h3>Upozornění</h3>Nelze 

nahrát soubor v nadřazeném adresáři!";
                       }elseif($soubor=="index" or 

$soubor=="/index"){
                        echo 

"<h3>Upozornění</h3>Index nemůže načíst sám sebe!";        
                    }else{
                       include $soubor2;
                   }
                }else{                //pokud soubor 

neexistuje, zavoláme error404.php
                   include "error404.php";
                }
              }else{                  // Pokud nebyl 

paramentr page volaný, načteme uvod.php
                include "uvod.php";
              }
        ?>

Stejný kód máme na starém webu (www.cckopava.cz) a zde funguje bez problémů, teď se mi zobrazí pouze úvodní stránka (uvod.php) a když kliknu na "menu" (také vede na uvod.php), tak se úvod znovu nezobrazí... A netuším, kde je chyba..
Děkuji za každý názor a přeji klidné a pohodové vánoční svátky..
Michaela
Rellik
Profil
MichaelaRendy:
a když kliknu na "menu" (také vede na uvod.php) - vždyť to funguje správně, protože odkaz menu vede na uvod.php ale tam přípona .php nemá co dělat... ;) http://neu.cckopava.cz/index.php?page=uvod
Tori
Profil
MichaelaRendy:
Na ř.14 by stačilo strpos - nechcete přece vědět kolikrát přesně tam lomítko je, ale jestli tam je aspoň jednou. Anebo na ř.7 použijte: $soubor = basename($_GET['page']); - pak nemusíte kontrolovat existenci lomítek vůbec, protože basename ponechá jen název souboru. (I když možná by se v tom případě mohlo kontrolovat, jestli se liší GET[page] a basename(GET[page]) a pokud ano, tak přesměrovat na tu správnou adresu, aby nevznikaly duplicity (stejný obsah na ?page=uvod a ?page=/cesta/kamsi/uvod).
MichaelaRendy
Profil
Rellik, děkuju moc za pomoc! :)
A Tori - zkusím to a uvidím, každopádně díky za námět... :)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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