Bluebeans Skrevet 7. januar 2004 Del Skrevet 7. januar 2004 Jeg bruker dette include scriptet <?php $IncludeDir = "./inc"; $DefaultPath = "./inc/index.inc"; $FileExtension = ".inc"; if (isset($page)) { $page = stripslashes(strip_tags($page)); $Forbidden1 = ereg("\.\./", $page); $Forbidden2 = ereg("/", $page); $IncludePath = $IncludeDir . "/" . $page . $FileExtension; if ($Forbidden1 OR $Forbidden2) { echo "<h1>Advarsel</h1>\n"; echo "<p>Forespørsler på tvers av definerte \n"; echo "områder er ikke tillatt.</p>\n"; } else { if (@fopen("$IncludePath", "r")) { include ("$IncludePath"); } elseif (!(@fopen("$IncludePath", "r"))) { echo "<h1>404</h1>\n"; echo "<p>Cannot find the page.</p>\n"; } } } else { include("$DefaultPath"); } ?> I inc mappa har jeg veldig mange .inc filer. Det blir veldig rotete. Jeg vil sortere dem i mapper. Går dette ann? Isåfall, how? Lenke til kommentar
???????? Skrevet 8. januar 2004 Del Skrevet 8. januar 2004 Du kan f.eks. legge til $mappe ($_GET['mappe']) NB: husk å legge til en kontroll for mappenavnet. Du sjekker variablen $page med ereg for å sjekke at det ikke er noen skumle tegn der - men du sjekker ikke etter alle skumle tegn. Hvis $page kun får inneholde bokstaver kan du f.eks. eregi("^[a-zæøå]+$", $page (eventuelt ereg - avhengig av om du vil godta store og små bokstaver, nb det kan også legge til i forventede tegn) Lenke til kommentar
magikern Skrevet 8. januar 2004 Del Skrevet 8. januar 2004 (endret) prøv dette scriptet dynamic.php --> error_reporting(E_ALL ^ E_NOTICE); $basepath = '/etc/httpd/htdocs'; function fixpath($file) { $file = preg_replace('/\.{2,}/', '', $file); return $file; } function dynamic($inc_dir='', $inc_ext='', $var_name='', $default_page, $error_msg='') { global $basepath; if (!empty($_POST[$var_name])) { $var = fixpath($_POST[$var_name]); } elseif (!empty($_GET[$var_name])) { $var = fixpath($_GET[$var_name]); //}elseif (!empty($_SERVER['QUERY_STRING'])) { // $var = fixpath($_SERVER['QUERY_STRING']); } else { $var = $default_page; } $sub = basename($_REQUEST['sect']) . '/'; if (!empty($sub) && is_dir($basepath."/".$inc_dir.$sub)) $inc_dir .= $sub; $file = $basepath."/".$inc_dir.$var.$inc_ext; //echo "<h2>$file</h2>"; if (file_exists($file)) { $dateen = date('Y-m-d', filemtime("$file")); $dateno = date('H:i:s d-m-Y', filemtime("$file")); if (!include_once($file)) { echo $error_msg; } } else { $dateen = ""; $dateno = ""; echo $error_msg; } } index.php --> echo("<div class=\"news\">"); dynamic('files/', '.php', 'page', 'home', 'Filen finnes ikke!'); /* files/ = hovedmappenavnet, page = variabel som du kaller siden med home = default_page filen finnes ikke! = error_msg */ echo("</div>"); så lager du en hovedmappe for filene som du kaller files og inni denne deler du opp akkurat som du vil i undermapper, da blir linken f.eks: ?sect=about&page=about "?sect=about" --> her bestemmer vi hvilken undermappe vi leter i &page=about --> her bestemmer vi hvilken fil vi skal finne i undermappen du kan også skrive linken sånn ?page=about hvis about.php ligger rett i /files/... Endret 8. januar 2004 av magikern Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå