Gå til innhold

Problem med Cutenews!


Anbefalte innlegg

Eg held på med ein side om Eastside Hockey Manager

 

www.ehmsiden.com

 

Eg bruker då dette include-scriptet:

 

<?        

/* Skjekker om superglobalen er satt */

  if (!isset ($_GET['id'])) {
//Hvis ikke satt, setter main.php til hoved
  $_GET['id'] = 'main';

}

  if (file_exists($_GET['id'].".php")) {

  include($_GET['id'].".php");

}

  else {

  echo ('404! Filen finnes ikke');

}
?>

 

 

Og som sagt, cutenews som nyhetssystem.

 

Problemet er då at når man trykker på "les meir"-linken eller neste side (Linker som er generert av cutenews), så får man 404-melding. Kva skal eg gjere?

Endret av Køddleif
Lenke til kommentar
Videoannonse
Annonse

<litt offtopic>

Må bare si at jeg IKKE anbefaler det includescriptet ditt

hvis du har ei side som http://example.com/brukere/enellerannen/index.php

 

så er det ingenting i veien for at brukeren kan skrive følgende i adresselinja:

example.com/brukere/enellerannen/index.php?id=../enellerannen2/styggoghemmeligfil og dermed vil example.com/brukere/enellerannen2/styggoghemmeligfil.php bli inkludert

</litt offtopic>

 

Har du endra noe i kildekoden til cutenews?

Lenke til kommentar
Du kan lett bruke enten ein str_replace (bytt ut .. med noko annet) eller eregi (sjekk at variablen ikkje inneholder ..) for å være sikker på at du includerer ei side som du vil bruker skal kunne åpne.

Og korleis gjer eg det? Har utruleg lite peiling på PHP :blush: !

Lenke til kommentar

Her er en veldig enkel måte å sjekke include:

- sjekke om $_GET['id'] ikke er tom (ikke bruk isset() da den er isset selv selv om den er tom ...index.php=)

- sjekk at $_GET['id'] kun inneholder bokstaver

- sjekke at filen finnes

- include filen dersom den finnes, eller en hovedfil dersom den ikke finnes

 

bruk:

eregi("^[a-z]+$, ... for å sjekke at den kun inneholder bokstaver og file_exists() for å sjekke om filen finnes.

Lenke til kommentar

Hvis du absolutt skal ha et includescript, gjør noe sånt som

<?php
switch($_GET['id']) {

case 'hoved':
//kommando
break;

case 'side2'
//kommando
break;

default:
//kommando hvis ingen av finnes
break;



}
?>

 

Her må du da spesifisere alle sider før de kan bli inkludert

 

 

Jeg for min del holder meg til

<?php include('header.php')?>
innhold
<?php include('footer.php')?>

 

Eller på min egen hjemmeserver bruker jeg php.ini sitt "auto_pretend" direktiv

Lenke til kommentar

det som er saken er vel at du må bruke en annen variabel enn id siden den ser ut til å være brukt av cutenews....

 

 

 

<?        

/* Skjekker om superglobalen er satt */

 if (!isset ($_GET['vis'])) {
//Hvis ikke satt, setter main.php til hoved
 $_GET['id'] = 'vis';

}

 if (file_exists($_GET['vis'].".php")) {

 include($_GET['vis'].".php");

}

 else {

 echo ('404! Filen finnes ikke');

}
?>

 

Da må du huske å bruke & istede for ? når du gir den andre variabelen. eks

?vis=foobar&id=31337

Endret av gather
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...