Gå til innhold

problem med require_once()


Anbefalte innlegg


Er det ingen måte å dynamisk ender på filnavnet man ønsker å inkludere?

 

Slik

 

sett at linken er index.php?page=settinn.php

 

require_once('../inc/side/$_GET


');

 

får bare feilmeldingen

Warning: main(../inc/side/echo $_GET


;) [function.main]: failed to open stream: No such file or directory in C:\w3docs\elkjop\main\index.php on line 51

 

som jo er fordi variabelen ikke blir innholdet, men faktisk bare selve koden.

Lenke til kommentar
Videoannonse
Annonse

Kan vel i samme åndedrag sleng inn et spørsmål til...

 

Er det en god ide med et design slik som skissert nedenfor.

 

Jeg har bygd opp siden med flere divver som deler designet opp og inni den ene divven har jeg en if som tester på hva slags paramter som kommer med index.php?page= .. deretter includerer jeg siden med filnavnet som kommer med page verdien.

 

Noen betenkeligheter med dette?

Driver å eksprimenterer med å bruke kun CSS i stedet for frames og sånn, så da tenkte jeg at dette kunne være ei god løsning.

Lenke til kommentar
Å inkludere direkte fra $_GET[] eller $_POST[] er ikke noe lurt i det hele tatt. Man kan da styre filpekeren nesten hvor man vil, og i værste fall kjøre uvedkommende filer.

 

link

Jeg bruker file_exists som sjekker om filen ligger lagret på serveren FØR den inkluderer den. Hvis filen ikke finnes kommer bare error 404.

Endret av simenss
Lenke til kommentar

Du bør nok bruke if-statements, og i stedet bruke f.eks. index.php?page=forum, eller skrive noe solid kode som sjekker at filen du kommer til å inkludere er en lovlig fil.

 

Eksempel:

 

if($_GET["page"] == "brukere") {

require(blabla);

}

else {

echo 'nothing to do';

}

 

MVH Audun

Lenke til kommentar

Det letteste og mest ryddige i det tilfelle man vil ha en begrenset mengde verdier i inkluderingsvariabelen er en switch, ja, men det var ikke det jeg mente. De aller fleste bruker includes til å erstatte frames, og da er ikke hverken switch eller if/ifelse/else et alternativ. ;)

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...