joenohr Skrevet 25. november 2004 Del Skrevet 25. november 2004 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
Loomy Skrevet 25. november 2004 Del Skrevet 25. november 2004 (endret) For å bruke variabler inni en string må du bruke " istedenfor ' Dvs. dette burde funke: require_once("../inc/side/$_GET['page']"); // Evt. denne: require_once("../inc/side/" . $_GET['page']); Endret 25. november 2004 av Loomy Lenke til kommentar
joenohr Skrevet 25. november 2004 Forfatter Del Skrevet 25. november 2004 Takk! It works like a charm! Lenke til kommentar
joenohr Skrevet 25. november 2004 Forfatter Del Skrevet 25. november 2004 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
KjetilV Skrevet 25. november 2004 Del Skrevet 25. november 2004 Jeg pleier å bruke den metoden. Man må bare passe på at ikke det går inn å inkludere "externe" linker. F.Eks index.php?page=http://forum.hardware.no Lenke til kommentar
jorgis Skrevet 25. november 2004 Del Skrevet 25. november 2004 Å 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 Lenke til kommentar
Torbjørn Skrevet 26. november 2004 Del Skrevet 26. november 2004 hvorfor står det echo der? Lenke til kommentar
simenss Skrevet 26. november 2004 Del Skrevet 26. november 2004 (endret) Å 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 26. november 2004 av simenss Lenke til kommentar
Torbjørn Skrevet 26. november 2004 Del Skrevet 26. november 2004 hva om jeg ber deg inkludere fila /etc/passwd, den vil gi "true" på file_exists og vil liste opp alle brukerne på systemet. Lenke til kommentar
audunr Skrevet 26. november 2004 Del Skrevet 26. november 2004 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
Lemkin Skrevet 26. november 2004 Del Skrevet 26. november 2004 eller switch switch ($_GET['page']) { case 'nyheter': include 'nyheter.php'; break; case 'login': include 'login.php'; break; } Lenke til kommentar
jorgis Skrevet 26. november 2004 Del Skrevet 26. november 2004 Da må man redigere hovedfilen (den som inkluderer) for hver eneste side man legger til. Da er det nemlig ikke dynamisk lenger. Lenke til kommentar
Lemkin Skrevet 26. november 2004 Del Skrevet 26. november 2004 Jo vet jo det, men om man bruker en if ($_GET['page'] == 'diitogdatt') {} så er det vel greiere med en switch Lenke til kommentar
jorgis Skrevet 27. november 2004 Del Skrevet 27. november 2004 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
KjetilV Skrevet 27. november 2004 Del Skrevet 27. november 2004 Man kan vel også lage en array med alle filnavna i, og så sjekke om $_GET[] er i arrayen. Litt kortere enn switch. Lenke til kommentar
Nervetattoo Skrevet 27. november 2004 Del Skrevet 27. november 2004 Eller man kan bare droppe include i det store og hele. Jeg tror nok at de fleste som går videre med php og lager litt større ting på et eller annet tidspunkt vil bytte ut includene sine med enten templates eller bare header()/footer() funksjoner. Include er ikke særlig fleksibelt. 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å