Arve Systad Skrevet 3. november 2003 Del 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... Lenke til kommentar
DanielP Skrevet 3. november 2003 Del 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 Lenke til kommentar
Arve Systad Skrevet 3. november 2003 Forfatter Del 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... Lenke til kommentar
Gjest Slettet-8fx0y6VV Skrevet 3. november 2003 Del 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] Lenke til kommentar
magikern Skrevet 3. november 2003 Del 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); } ?> Lenke til kommentar
Arve Systad Skrevet 3. november 2003 Forfatter Del 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? Lenke til kommentar
Arve Systad Skrevet 3. november 2003 Forfatter Del Skrevet 3. november 2003 Magikern: ka blir linkane vist eg bruker den nederste kodegreia du kom med? index.php?path/side ?? Lenke til kommentar
magikern Skrevet 3. november 2003 Del 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... Lenke til kommentar
Arve Systad Skrevet 3. november 2003 Forfatter Del 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? 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å