PHP include spørsmål

Diskuter dine og andres prosjekter. Alt fra Widgets til programmer.

PHP include spørsmål

Innleggav dayladore » fre 24.08.2007 23:30

Hei på alle!

Jeg kan relativt lite PHP, kan litt, men ikke meget. Jeg holder på med en side nå, hvor jeg skal hente en php-fil fra en annen mappe, men får det da altså ikke til. Dere skjønner sikkert mere når dere ser koden fra index.php:

Kode: Merk alt
 error_reporting(0);
        $filnavn = $_GET['s'];
        $tillatt = array("news", "osv", "osv");
        $filendelse = '.php';
        if (in_array($filnavn, $tillatt))
        {
          include $filnavn . $filendelse;
        }
        else if (!$filnavn)
        {
          include 'news.php';
        }
        else
        {
          include '404.php';


Alle disse filene ligger i rotmappen sammen med index.php, slik at linken lyder: index.php?s=news
MEN, når jeg nå vil hente en fil som ligger i en annen mappe, så får jeg det rett og slett ikke til. Blir linken slik: index.php?s=mappe/mappe/fil og så putte det inn i index.php slik?:
Kode: Merk alt
error_reporting(0);
        $filnavn = $_GET['s'];
        $tillatt = array("news", "osv", "osv", "mappe/mappe/fil");
        $filendelse = '.php';
        if (in_array($filnavn, $tillatt))
        {
          include $filnavn . $filendelse;
        }
        else if (!$filnavn)
        {
          include 'news.php';
        }
        else
        {
          include '404.php';


Trenger sårt litt hjelp om det er noen der ut som kan dette bedre enn meg :)

Brukerens avatar
medlem i 218 måneder
 

Innleggav intramin » fre 24.08.2007 23:40

Et tips er å ta bort "error_reporting(0);", spesielt når du har problemer med et script. Den gjør at ingen feilmeldinger blir vist. Testet ikke koden din, men det ser ut som at du mangler en "}" helt på slutten

Brukerens avatar
medlem i 217 måneder
 

Innleggav dayladore » fre 24.08.2007 23:43

hei!

ja nei, det mangler ikke det, er bare jeg som har klipt, men spørsmål er HVORDAN jeg skal få hentet den fila som ligger i en annen mappe, slik at den vises inni index, om du forstår. hva skal jeg skrive lizm lizm lizm? :)

Brukerens avatar
medlem i 218 måneder
 

Innleggav Wackhy » fre 24.08.2007 23:44

kommer an på hvor den ligger. Men f.eks. include 'mappe/fil.php';

Moderator
Brukerens avatar
medlem i 227 måneder
 

Innleggav hansek » fre 24.08.2007 23:55

Vet ikke om jeg forstod problemstilligen helt, men denne burde funke rimelig bra.

Kode: Merk alt


/*
   Inkluderer valgte fil hvis den eksisterer og er definert i $allowed,
   hvis ikke blir "content/front.php" inkludert.
*/

# Mappen hvor filene ligger
$dir = 'content/';
# Tillate filer
$allowed = array('news', 'osv', 'osv');
# Filending
$ext = '.php';

# ?s=side
$file = trim($_GET['s']);

/*
   Ikke endre dette
*/

$path = $dir . $file . $ext;

if (file_exists($path) && in_array($file, $allowed)) {
   
   include_once($path);
   
}

else {

   include_once($dir . 'front.php');

}

   

Brukerens avatar
medlem i 210 måneder
 

Innleggav dayladore » lør 25.08.2007 1:12

ahh! kool!
men ka jeg ha flere $dir? feks:
Kode: Merk alt
$dir = 'content/';
$dir = 'content/annen mappe';
# Tillate filer
$allowed = array('news', 'osv', 'osv');
# Filending
$ext = '.php';

# ?s=side
$file = trim($_GET['s']);

/*
   Ikke endre dette
*/

$path = $dir . $file . $ext;

if (file_exists($path) && in_array($file, $allowed)) {
   
   include_once($path);
   
}

else {

   include_once($dir . 'front.php');

}



Greia er den, at alle filene ligger i den samme mappa, utenom en fil, som må ligge der den ligger for den ligger i ett system bla bla. :)

Brukerens avatar
medlem i 218 måneder
 

Innleggav Wackhy » lør 25.08.2007 8:33

det går ikke. Da må du i så fall kalle den $dir2.

Moderator
Brukerens avatar
medlem i 227 måneder
 


Returner til Utvikling på Mac



Hvem er i Forumene

Registrerte brukere: Google [Bot]



cron