Gå til innhold

Include php - startsiden


Anbefalte innlegg

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
Videoannonse
Annonse

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

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

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

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
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

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

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

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

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...