Arve Systad Skrevet 3. november 2003 Skrevet 3. november 2003 Har ei gjestebok på sida mi, som er .php, resten er .htm, men includescriptet (som eg fikk av Mikka) tar berre .htm filer, så eg får 404 når eg prøver å include gjesteboka... <?php $sjekk_side = isset($side); if ($sjekk_side == 1) { if (@fopen("sider/$side.htm", "r")) { include ("sider/$side.htm"); } if (!(@fopen("sider/$side.htm", "r"))) { include("sider/404/404.htm"); } } if ($sjekk_side <> 1) { include("sider/index2.htm"); } ?> her blir altså url til sidene index.php?side=path/side .. men funker altså ikkje med php filer, noken som kan komme med et bedre script, evt. forandre dette scriptet til å "takle" php filer også?? /me har NULL peiling...
DanielP Skrevet 3. november 2003 Skrevet 3. november 2003 Prøv med denne <?php if(IsSet($_GET['section']) && file_exists($_GET['section']."_include.php")) { include($_GET['section']."_include.php"); } else { include("main_include.php"); } ?> så linkene lager du <a href="index.php?section=dinside">Her</a> Og sidene dine kaller du for dinside_include.php Si ifra hvis det var noe du ikke forstod, eller trenger hjelp med. DanielP
Arve Systad Skrevet 3. november 2003 Forfatter Skrevet 3. november 2003 ønsker helst å måtte unngå å lage alle på nytt med navn side_include.php - må vere en lettare vei rundt.. har en del bilder nemlig, og det betyr at /me må forandre på alle sammen... døll...
Gjest Slettet-8fx0y6VV Skrevet 3. november 2003 Skrevet 3. november 2003 [quote name='arve87' date='03/11/2003 : 14:59'] Har ei gjestebok på sida mi, som er .php, resten er .htm, men includescriptet (som eg fikk av Mikka) tar berre .htm filer, så eg får 404 når eg prøver å include gjesteboka... [code] <?php $sjekk_side = isset($side); if ($sjekk_side == 1) { if (@fopen("sider/$side.htm", "r")) { include ("sider/$side.htm"); } if (!(@fopen("sider/$side.htm", "r"))) { include("sider/404/404.htm"); } } if ($sjekk_side <> 1) { include("sider/index2.htm"); } ?> [/code] her blir altså url til sidene index.php?side=path/side .. men funker altså ikkje med php filer, noken som kan komme med et bedre script, evt. forandre dette scriptet til å "takle" php filer også?? /me har NULL peiling... [/quote] Prøv denne : [code] <?php $sjekk_side = isset($side); if ($sjekk_side == 1) { if (@fopen("sider/$side.htm", "r")) { include ("sider/$side.htm"); } elseif (@fopen("sider/$side.php", "r")) { include ("sider/$side.php"); } if (!(@fopen("sider/$side.htm", "r")) && !(@fopen("sider/$side.php", "r"))) { include("sider/404/404.htm"); } } if ($sjekk_side <> 1) { include("sider/index2.htm"); } ?> [/code]
magikern Skrevet 3. november 2003 Skrevet 3. november 2003 <?php $sjekk_side = isset($side); if ($sjekk_side == 1) { if (@fopen("sider/$side.htm", "r")) { include ("sider/$side.htm"); } if (!(@fopen("sider/$side.htm", "r"))) { include("sider/404/404.htm"); } } if ($sjekk_side <> 1) { include("sider/index2.htm"); } ?> <?php $sjekk_side = isset($side); /* her legger vi inn litt mer gøy, velg selv hvilken extension du vil at koden skal lete etter */ $ext = ".php"; /*$ext kan også være et array så du kan bruke forskjellige extensions på forskjellige filer $ext = array(".htm", ".html", ".php"); isåfall bruker du $ext[$x] <--hvor$x <= 1, 1 tilsvarer første alternativ i array 2 andre osv... */ if ($sjekk_side == 1) { if (@fopen("sider/$side.$ext", "r")) { include ("sider/$side.$ext"); } if (!(@fopen("sider/$side.$ext", "r"))) { include("sider/404/404.htm"); } } if ($sjekk_side <> 1) { include("sider/index2.htm"); } ?> men du kan jo også prøve noe som dette: <?php $sub = basename($_REQUEST['dir']) . '/'; if (!empty($sub) && is_dir($includes_dir . $sub)) $includes_dir .= $sub; $includes_dir = '/'; // path to your inclusion files $includes_ext = '.php'; // extension name of your files $var_name = 'm'; // the variable name to be used in the query string $default_page = 'main'; // the default page to include $error_page = '404.html'; // redirects this page if the requested file is not found if (empty($var_name)) { $var = $_SERVER['QUERY_STRING']; } else { $var = $_REQUEST[$var_name]; } if (empty($var)) { $var = $default_page; } $file = $includes_dir.basename($var).$includes_ext; if (file_exists($file)) { include($file); } else { header('Location: '.$error_page); } ?>
Arve Systad Skrevet 3. november 2003 Forfatter Skrevet 3. november 2003 Takker! Trur den funka, men no er det noke trøbbel med sjølve gjesteboka.. Får denne meldinga: Warning: fopen("gb.dat", "w") - Permission denied in /mnt/home3/o/om/ompatut/public_html/sider/gjestebok/ardguest.php on line 52 Error !!Can't create data file. På linje 52 står det if ($f = fopen($data_file,"w")) fclose($f); "data_file" er der info. som er lagra i gjesteboka ligger, og denne fila er CHMODa til 777 (som readme.txt sa) forslag til løsninger, eller trenger dere heile koden til gjesteboka?
Arve Systad Skrevet 3. november 2003 Forfatter Skrevet 3. november 2003 Magikern: ka blir linkane vist eg bruker den nederste kodegreia du kom med? index.php?path/side ??
magikern Skrevet 3. november 2003 Skrevet 3. november 2003 Magikern: ka blir linkane vist eg bruker den nederste kodegreia du kom med? index.php?path/side ?? glem det scriptet jeg fant en nyere mye bedre version av det nå: index.php?page=/aboutme/photos/photo1.html <-- sånn skriver du da linken til fil i "subdir" index.php?about <-- den skal fungere også, men bare på enkelt inkludering, altså du kan ikke bruke flere sånne i samme script... bruker en fil for selve scriptet og så inkluderer du det i f.eks index fila di: dynamic.php <?php error_reporting(E_ALL ^ E_NOTICE); $basepath = '/apache2/htdocs/dynamic2/'; 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; } $file = $inc_dir.$var.$inc_ext; // echo "<h2>$file</h2>"; if (file_exists($file)) { if (!include_once($file)) { echo $error_msg; } } else { echo $error_msg; } } ?> nå kommer all koden i funksjoner så man kan inkludere flere ganger på denne måten kalles funksjon: dynamic([includes_dir], [includes_ext], [var_name], [default_page], [error_msg]); <?php include_once('dynamic.php'); ?> <html> <head> <title>Test Page</title> </head> <body> <div id="news"> <?php dynamic('news/', '.html', 'id', 'index', 'File does not exist!'); ?> </div> <div id="content"> <?php dynamic('files/', '.html', 'page', 'welcome', 'File does not exist!'); ?> </div> </body> </html> spør hvis du har noen spørsmål...
Arve Systad Skrevet 3. november 2003 Forfatter Skrevet 3. november 2003 EDIT : Fant ut at scriptet til Raptor funka allikevel, og at eg må fikse noke i sjølve gjesteboka for å få den til å funke.. Prøvde med ei anna php fil, det funka flott - men ikkje gjesteboka - då får eg trøbbel : Warning: fopen("innlegg.dat", "w") - Permission denied in /mnt/home3/o/om/ompatut/public_html/sider/gjestebok/ardguest.php on line 52Error !!Can't create data file. if (!file_exists($data_file)) { if ($f = fopen($data_file, "w")) fclose($f); else { echo "<B>Error !!</B>Can't create data file.<BR>"; exit; } Det er henholdsvis linje 51 52 og 53... noken som ser noken feil elns?
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å