gungne Skrevet 12. mars 2003 Del Skrevet 12. mars 2003 Jeg har lagt følgende kommando som plukker menyer: <span class=menutxt2> <a href="index.php?Name=index">Hovedside</a><br> <br> Overskrift1<br> <a href="index.php?Name=side1">Side1</a><br> <a href="index.php?Name=side2">Side2</a><br> <br>Klubben<br> <a href="index.php?Name=side3">Side3</a><br> <br>Overskrift2<br><br> <a href="index.php?Name=side4">Side4</a><br> <br>Overskrift3<br> <a href="index.php?Name=side5">Side4</a><br> </td> </tr> <TD BGCOLOR=white width=610 border=0 valign=top> <?php include("$Name.inc"); ?> </TD> Dette er fila index.php. Men når jeg laster denne første gang kommer det opp feil om function main. Det er altså en meny til venstre, og hovedsiden, som er dynamisk, til høyre. Men hvordan får jeg den til å laste index.inc, slik at denne automatisk synes når siden lastes fra domenet? På forhånd takk for hjelpen : - D Lenke til kommentar
Scalpel Skrevet 12. mars 2003 Del Skrevet 12. mars 2003 <?php include("$Name.inc"); ?> Bort med $-tegnet. Lenke til kommentar
gungne Skrevet 12. mars 2003 Forfatter Del Skrevet 12. mars 2003 Det hjelper nok ikke. For det første vil jeg jo at den skal plukke forskjellige inc-filer. Og ved å ta bort $-tegnet finner den fremdeles ikke hovedsiden, samt at menyen heller ikke vil funke da. Jeg tror det er en eller annen kommando som må lastes inn, men vet ikke hva det er. Noe sånnt som <? if no inc-file then index.inc ?> - skjønner...? Lenke til kommentar
Gjest Slettet-rXRozPkg Skrevet 12. mars 2003 Del Skrevet 12. mars 2003 Hva med en switch case? switch ($Name) { case "side1": include "side1.inc"; break; case "side2": include "side2.inc"; break; case "side3": include "side3.inc"; break; case "index": include "index.inc"; break; default: include "index.inc"; } Hvis $Name inneholder noe annet enn det som står i casene, eller er tom, så kjøres bare default. Enkelt og greit. Denne typen koding er grei på små sider... men kan føre til mye last på serveren hvis den blir brukt veldig mye Lenke til kommentar
Scalpel Skrevet 12. mars 2003 Del Skrevet 12. mars 2003 Jeg har noe liknende på min hjemmeside. Siden er delt opp av flere tabeller, og en av tabellene er menyen på venstre siden. Noe sånt du prøver på? Når man trykker på linkene oppdateres innholdet i en annen tabell slik. if ($side == 'hoved') { include "hoved.php"; } else if ($side == 'prosjekter') { include "prosjekter.php"; } (...klippet bort...) else if ($side == 'om') { include "om.php"; } else { include "hoved.php"; //Fall-through } ?> Merk deg spesielt linjen kommentert //Fall-throug. Den gjør at om $side ikke har noen verdi (eller en ugyldig verdi), så lastes hovedsiden. Hjelper det deg noe? Lenke til kommentar
Sugx Skrevet 12. mars 2003 Del Skrevet 12. mars 2003 hehe lite og finne på om dagen eller lumted Vil bare påpeke en liten ting. Alltid gi filene du skal inkludere navn .php til slutt. La oss si at du har en link som ser sånn ut index.php?side=nyheter og i fila nyheter.inc har du noe sånt som mysql_connect(host, bruker, passord); så kan hvem som helst som vil surfe til www.dinurl.com/nyheter.inc og få opp passordet og all kode i klartekst. Derfor filer du skal inkludere kan du med fordel alltid kalle for f.eks inc.nyhteter.php, nyheter.inc.php eller noe sånt. Lenke til kommentar
Scalpel Skrevet 12. mars 2003 Del Skrevet 12. mars 2003 Alltid gi filene du skal inkludere navn .php til slutt. Godt poeng. Ellers sitter jeg å lurer på om jeg ikke skal gå over til Lumted's switch-case modell. Blir litt mer oversiktlig kode av det enn mine if-else setninger. Noen som kan komme på grunner hvor if-else er å foretrekke foran switch-case? Lenke til kommentar
gungne Skrevet 12. mars 2003 Forfatter Del Skrevet 12. mars 2003 Ja, scalpel - det er dette jeg er inne på! Men det eneste jeg er ute etter er hvordan har du satt det opp slik at hovedsiden automatisk kommer opp når man går inn første gang på hjemmesiden din. Alle linkene mine funker nemlig fra sida, men der din hovedside er får jeg altså opp en feilmelding. Hva gjør jeg for å sette inn "hovedsiden" eller i mitt tilfelle "index.inc" her? Lenke til kommentar
Scalpel Skrevet 12. mars 2003 Del Skrevet 12. mars 2003 Vel, du kan bruke både Lumted og min kode til det. Poenget er at du skal alltid falle tilbake på hovedsiden om $Name har ingen/ugyldig verdi. Altså; hvis $Name ikke er satt, så skal du inkludere index.inc. Det er det denne kodesnutten gjør. else { include "hoved.php"; //Fall-through } ?> Lenke til kommentar
Sugx Skrevet 12. mars 2003 Del Skrevet 12. mars 2003 Løsningnen på det første spørsmålet ditt må vel bli sånn ca if(!isSet($Name)) { include("index.php"); } Men du bør bruke Lumted/Scalpel sin metode for hvis du ikke på forhånd har definert hvilke sider som skal inkluderes men henter navnet rett fra variablen kan jeg gjørra noe sånt index.php?name=http://www.minondehaxxorside.com/kodesomherpersidadi.php Hvis du skal unvike dette problemet med din kode så må du nok kjøre noen regexps på inputten for å sjekke at det er riktig. Lenke til kommentar
gungne Skrevet 12. mars 2003 Forfatter Del Skrevet 12. mars 2003 Så gøy! Nå har jeg slitt med det lenge - nå funker det jo! Endelig kan jeg ha det moro med php igjen : - D Takk; glad i dere alle sammen!!!! Lenke til kommentar
Scalpel Skrevet 12. mars 2003 Del Skrevet 12. mars 2003 Hehe, vi er glade i deg også 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å