Gå til innhold

Hjelp til include script


Anbefalte innlegg

Skrevet

Hei, jeg lurte på om noen kunne vise meg hvordan jeg lager et include script ...

 

Mine linker er slik: nyheter.php

Jeg vil ha sånne: page?nyheter.php

 

Jeg vet at jeg skal bruke include, meg jeg vet ikke hvordan jeg skal bruke det :ermm:

 

Takker for hjelp !

Videoannonse
Annonse
Skrevet

Et av mange varianter:

<?php
error_reporting(0);
$filnavn = $_GET['s'];
$filendelse = '.php';
if (!$filnavn)
{
   $filnavn = 'forside';
}
if (!eregi("^((.*)/)", $filnavn))
{
   include $filnavn . $filendelse;
}
else
{
   include "404.php";
}
?>

Hentet fra Unrealized.org

Skrevet

Noe jeg mekka her om da'n:

 

<?php
$forside = 'forside.php';
$404 = 'feil.php';
$hentnavn = 'id';
$hent = $_GET['$hentnavn'];
$filendelse = '.php';
/* Koden under bør ikke røres om man ikke har satt seg inn i php */
if (isset($_GET['$hentnavn']))
{
   // sjekker at det ikke finnes /-er eller ..'er
   if (stristr($_GET['$hentnavn'], '..') || stristr($_GET['$hentnavn'], '/'))
       echo "Ulovlige tegn etter \"$hentnavn\"";
   else // om ikke adressen er skrevet riktig utføres denne koden
   {
       /* Sjekker om filen finnes */
       if (is_file($hent . $filendelse))
           include_once $hent . $filendelse; // om filen finnes, inkluderes filen som har blitt definert i URLen
       else
           include ('$404'); // hvis ikke filen finnes, inkluderes filen 404.php
   }
}
else
   include('$forside');
?>

 

Kan ikke garantere at det virker, men du kan jo prøve om du vil.. :)

Skrevet

brainbug90: På det include scripte, får jeg opp en feil melding:

Parse error: parse error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in /mnt/home2/a/aa/aadnk/public_html/flaffy/design1/index.php on line 3

Hva er galt ?

Skrevet (endret)
brainbug90: På det include scripte, får jeg opp en feil melding:
Parse error: parse error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in /mnt/home2/a/aa/aadnk/public_html/flaffy/design1/index.php on line 3

Hva er galt ?

http://www.jklweb.net/test/ <--- Tror den skal funke..

 

Ny kode:

<?php
$hent = $_GET['id'];
$filendelse = '.php';
if (isset($_GET['id']))
{
   // sjekker at det ikke finnes /-er eller ..'er
   if (stristr($_GET['id'], '..') || stristr($_GET['id'], '/'))
       echo "Ulovlige tegn etter ?\"id\"=";
   else // om ikke adressen er skrevet riktig utføres denne koden
   {
       /* Sjekker om filen finnes */
       if (is_file($hent . $filendelse))
           include_once $hent . $filendelse; // om filen finnes, inkluderes filen som har blitt definert i URLen
       else
           include ('404.php'); // hvis ikke filen finnes, inkluderes filen 404.php
   }
}
else
   include('forside.php');
?>

Funka det nå?

Tok vekk noen variabler.. Fikk ikke helt til å includere variabler :s

Kunne trengt en forklaring på det om noen føler seg snille :p

Også kanskje en tilbakemelding eller to?

Endret av brainbug90
Skrevet (endret)

include ('$404');

Må bli til

include ("$404");

 

Du må bruke doble anførselstegn for å få frem innholdet til variabelen. Enkle fnutter skriver bare ut navnet.

 

EDIT: Leif var på besøk her ;)

Endret av TorS
Skrevet
include ('$404');

Må bli til

include ("$404");

 

Du må bruke doble anførselstegn for å få frem innholdet til variabelen. Enkle fnutter skriver bare ut navnet.

 

EDIT: Leif var på besøk her ;)

Er ikke det enkleste å bare ha:

 

include ($404); 

Skrevet
include ('$404');

Må bli til

include ("$404");

 

Du må bruke doble anførselstegn for å få frem innholdet til variabelen. Enkle fnutter skriver bare ut navnet.

 

EDIT: Leif var på besøk her ;)

Små feil kan gjøre stor forandring.. :p takker.. deg og ylox..

:blush:

Skrevet

Hehe... en liten feil der som gjør at en hvilken som helt host kan stenge siden din. Pass på at det ikke er mulig å include filen igjen, da vil hele scriptet gå i en loop og bruke alle ressurser på serveren.

Skrevet
Hehe... en liten feil der som gjør at en hvilken som helt host kan stenge siden din. Pass på at det ikke er mulig å include filen igjen, da vil hele scriptet gå i en loop og bruke alle ressurser på serveren.

die() eller exit() mener du? :s Ta den siste postede koden å legg til, så kanskje jeg skjønner hva du tenker på.. :)

Skrevet (endret)
Hehe... en liten feil der som gjør at en hvilken som helt host kan stenge siden din. Pass på at det ikke er mulig å include filen igjen, da vil hele scriptet gå i en loop og bruke alle ressurser på serveren.

die() eller exit() mener du? :s Ta den siste postede koden å legg til, så kanskje jeg skjønner hva du tenker på.. :)

Hva mener du?

 

Poenget er at dersom siden heter index og man da setter GET['id'] til å være index så vil index includes. Da vil den igjen starte det scriptet, som igjen vil include index - og slik fortsetter det.

 

På den måten trenger scriptet så mange ressurser at serveren ikke vil kunne vise andre sider. Skjer det et par ganger så vil det bli et problem for andre på den serveren og hosten vil til slutt blokere siden din.

 

Edit:

Det er lett å unngå, plasser alle include filene i en egen mappe og sjekk at $_GET['id'] kun inneholder bokstaver. Så includer du "mappenavn/".$_GET['id'].".php". En liten, men vanlig, feil som kan føre til en host kan stoppe siden din.

Endret av ????????

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