Gå til innhold

raskt include spm


Anbefalte innlegg

jeg har denne koden for å inkludere en fil:

<?
$side = $_GET['side'];
if (!file_exists($side . '.php')) {
$side = 'forside';
}
if (empty($side)) {
$side = './sider/forside';
}
$siden = "./sider/$side.php";
include($siden);

?>

alle sidene som skal inkluderes ligger i ./sider

jeg får bare inkludert forsiden, men ingen av de andre sidene.

har jeg gjort noe feil med koden? jeg vil helst ha alle sidene som skal inkluderes i en mappe, blir mer system over sakene da. :)

Lenke til kommentar
Videoannonse
Annonse

jeg får inkludert forside.php og den ligger i samme mappen som de andre sidene som skal inkluderes.

tror det er en feil i øverste delen av koden (at jeg skal legge inn ./sider der et sted)

men jeg forstår ikke helt hva som skjer der, så jeg lurte på om noen kunne hjelpe meg?

edit: jeg ser ikke helt hvor i koden den henter siden om $_GET['side'] finnes

Endret av Smidt
Lenke til kommentar
Hvilken feil får du? Ingen feilmelding og resten av siden lastes eller?

får ikke noe feilmelding, for det koden sier er at når den ikke finner filen inkluderes forside.php

men jeg tror at jeg ikke har lagt inn skikelig path til de andre filene som skal inkluderes utenom forsiden, men jeg vet ikke hvor jeg skal legge den inn

Lenke til kommentar

Synes du hadde gjort det hele på en litt merkelig måte. Så jeg mekka det hele om litt.

Dette burde funke.

 

<?
if (isset($_GET['side'])) {
 $side = "sider/".$_GET['side'].".php";
 if (is_file($side)) {
   @include($side);
 }
 else {
 @include('sider/forside.php'); // Siden som hentes om filen ikke finnes. 
 }
}
else {
 @include('sider/forside.php'); // Siden som hentes om ingen side er spesifisert.
}
?>

Endret av Findus
Lenke til kommentar
Den ene er om ?side ikke er satt. Så kan du sette hvor den skal gå da. Typisk forside sak.

Den andre er om filen ikke finnes, eller 404 om du vil.

 

Edit: Kommenterte de to forskjellige ut i koden i posten over.

takk, så det

Lenke til kommentar

Har basert et script på Findus' versjon :)

<?php
if (isset($_GET['page']))
{    
   $page = $_GET['page'].".php";
   if (is_file("./include/".$page))
   {
       $page_inc = "./include/".$page;
   }
   else
   {
       $page_inc = "./include/content.php";
   }
}
else
{
   $page_inc = "./include/content.php";
}
?>

 

Linkene i menyen min blir da fx "index.php?page=news", men hvorfor kan man bruke "index?page=news" eller bare "?page=news" ??

Siden vises ved begge de tilfellene. Er dette en sikkerhetsrisiko, og hva kan jeg i så fall gjøre med det?

Lenke til kommentar

du trenger ikke skrive inn index.php fordi at index.php eller index.htm legges automatisk til av serveren dersom en index fil finnes og det ikke er angitt en fil i addressen.

 

Så dersom du skriver inn ?page=news vil serveren automatisk legge til index.php?page=news

 

Dersom du har både en index.htm og en index.php på root kommer det an på hvilken som er nevnt først i server instillingen... trur eg. ;)

 

Detter er ingen sikkerhets risiko afaik...

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