Gå til innhold

Ossen lagger man allt i en fil


Anbefalte innlegg

Videoannonse
Annonse
Ossen legger man allt i en fil også henter man bare info eller noe sånt ?

7495224[/snapback]

Du kan bruke include() eller require(), om du ikke vil koden skal forsette om filen ikke finnes så bruk heller require()

 

eks: include 'blabla.php';

Endret av cDavid
Lenke til kommentar

jeg har en hel side i html link: http://www.dannyboy.freepages.dk .. Vis jeg endre siden til php eller legger helle siden inn i php filen som fulgte med det jeg lasta opp på servern. For den siden jeg driver med nå vis jeg skal legge til en link så må jeg gjøre det på alle andre sidene også og det er noe slit ass. Vis jeg da f.eks bruker include. Vis jeg endre forsiden er det endra på de andre sidene også da eller ?

Lenke til kommentar

Lag deg en meny.php, inni denne har du menyen, og annet statisk matriale. Header feks.

 

Her blir det enten eller:

1) Så inkluderer du den i index.php, om du har et inkludescript. Et includescript lar deg legge til noe i URL'en, som igjen blir hentet av PHP, som igjen inkluderer det. Slik som på dette forumet. Linken til dette innlegget er index.php?showtopic=681274.

Her snapper PHP opp showforum, og viser deg tråden som samsvarer med verdien. Som du kanskje har sett er første tegnet etter filendelsen på hovedfila "?". Deretter bruker man & for å skille de forskjellige variablene.

Feks index.php?showforum=30&sessionid=dfas9978asfdg.

 

Måten du plukker opp disse er med globalen $_GET[]. Feks $_GET['showforum'].

 

Så bestemmer du deg for hva brukerne skal skrive, skal de skrive "page=", "side=", "id=" etc, så binder du dette til en variabel, for enkelhets skyld.

$side = $_GET['side'];

Dette bør du også kjøre gjennom en del tester før du virkelig inkluderer siden brukeren spør etter.

 

Først sjekker vi om den er tom, da bruker vi empty()

if(empty($side)) 
{
 include("main.php"); 
}

Om brukeren ikke har skrivd noe, eller skrivd noe som vi ikke har angitt, inkluderes startsiden.

 

Så tester vi om filen eksisterer, og om den inneholder Poison null-byte7481637[/snapback]

elseif(!empty($side) AND !preg_match("#\.\./|^/#", $side) AND file_exists('includemappe' . $side . '.php'))
{
 include('includemappe' . $side . '.php');
}

empty() kjenner vi allerede, ! betyr det motsatte. Altså at den IKKE er tom. preg_match er regex, den sjekker altså om $side ikke innholder/innholder det du har angitt. file_exists() sjekker om filen eksisterer.

 

Og nå har jo alt gått så bra, så om noe er galt nå, gir vi dem en frekk 404 (File not found (som da er selvlaget)).

  else
{
  include($mappe . "404.php");
}

Alle disse delene kan du slå sammen, og bør ha et fult fungerende script.

 

 

Alt 2) Dette er den tungvindte, ha alle sider slik du har det nå, men endre filendelsen til .php, slik at du kan bruke include() inni filen. Så inkluderer du menyen (og kanskje header) i hver og en fil. Det du oppnår er at så fort du endrer menyen din, vil den endres på alle sidene. Skal du legge til en side, legger du det til i meny.php.

Endret av M4rTiN
Lenke til kommentar

Da har jeg sitet i noen timer men ikke greid noe nesten. :blush:

 

 

 

Jeg har lagt alle de scripta du skrev i index.php(en hellt blank fil).

Så prøvd jeg å gå inn på siden da. Der sto det at main.php ikke var å finne eller noe sånt. Jeg endra filnavne til hovedsiden min til main.php(jeg kopierte filen til den mappa jeg driver på med dette i). Og da kom hovedsiden opp. Det står jo ikke noe om main.php i det du skrev m4rtin i det du skrev så da gjore jeg det jeg trode det var.

 

Også med den meny.php skal jeg lage menyen onkelig med design osv.. eller er bare:

 

<a href="link">linknavn</a>

 

sånn?

 

Også jeg skjønner meg ikke hellt på det dere med empty greine.

 

Også vis jeg skal includere en fil f.eks vis jeg skal includere profil på siden min ossen gjør jeg det da ?

 

Har vel kanskje fler spørs også men det kommer ettervært tror jeg.

Lenke til kommentar
Da har jeg sitet i noen timer men ikke greid noe nesten. :blush: 

 

 

 

Jeg har lagt alle de scripta du skrev i index.php(en hellt blank fil).

Så prøvd jeg å gå inn på siden da. Der sto det at main.php ikke var å finne eller noe sånt. Jeg endra filnavne til hovedsiden min til main.php(jeg kopierte filen til den mappa jeg driver på med dette i). Og da kom hovedsiden opp. Det står jo ikke noe om main.php i det du skrev m4rtin i det du skrev så da gjore jeg det jeg trode det var.

Det er ikke forskjellige script, alle delene jeg skrev skal du legge inn i samme fil.

 

Da blir det slik:

 

$side = $_GET['side'];

if(empty($side))
{
include("main.php"); //Dette er hovedsiden, den har du endre.
}
elseif(!empty($side) AND !preg_match("#\.\./|^/#", $side) AND file_exists('inc' . $side . '.php'))
{
include('inc' . $side . '.php'); //Inkluderer siden, filene skal da ligge i mappen "inc
}
else
{
 /* 
 ** Om alt annet gikk galt, kommer det en 404. Fjern // fra den metoden du ønsker
 ** include() henter inn en fil som feilmeldingen ligger i.
 ** echo() skriver ut en feilmelding til HTML-koden
 */
 
 //include("inc/404.php");  
 //echo "404 - File not found";
}

 

Med empty() sjekker man om noe er tomt, eller ikke tomt. I dette tilfellet sjekker vi om noen har skrevet "?side=blablabla", om de ikke har gjort det inkluderes hovedfilen, som i dette tilfellet er main.php. Den kan du endre til det du måtte ønske. Bare husk å ha " rundt, som i scriptet over.

Om noen har skrevet feks "?side=kontakt", sendes den til elseif-delen. Der sjekker man om filen kontakt.php eksisterer i mappen inc/, og at den ikke inneholder Poison nullbyte (som skrevet tidligere).

Om filen ikke eksisterer, eller at noen skriver "?side=../../../../../etc/passwd%00", kommer det en feilmelding. Den føer jeg at jeg beskrev ganske bra i koden.

 

Også med den meny.php skal jeg lage menyen onkelig med design osv.. eller er bare:

 

<a href="link">linknavn</a>

 

sånn?

I meny.php kan du gjøre akkurat hva du ønsker. Jeg legger til de div'ene jeg trenger rett i filen, istede for rett før det inkluderes. Mye enklere slik. Det du gjør, for å skrive alt i klartekst, er å kopiere HTML-koden som genererer menyen, og limer inn i meny.php. Alt include(), require(), include_once() og require_once() egentlig gjør, er å hente innholdet fra filen, og lime inn i scriptet, akkurat som at alt skulle stått på den plassen man inkluderer.

 

Eksempel:

 

config.php

<?php

$brukernavn = "admin";
$passord = "foo";
$server = "localhost";
?>

script.php

<?php
include("config.php");

$link = mysql_connect($server, $brukernavn, $passord)
//osvosv
?>

 

Det er akurat det samme som

<?php

$brukernavn = "admin";
$passord = "foo";
$server = "localhost";

$link = mysql_connect($server, $brukernavn, $passord)
//osvosv
?>

 

 

Det som er kjekt med dette, er at vi kan bruke samme filen flere steder, kun ved å legge til en liten linje i filen ( include("fil.php"); ), istede for å skrive alt på nytt hver gang.

Også jeg skjønner meg ikke hellt på det dere med empty greine.

 

Også vis jeg skal includere en fil f.eks vis jeg skal includere profil på siden min ossen gjør jeg det da ?

 

Har vel kanskje fler spørs også men det kommer ettervært tror jeg.

7501672[/snapback]

empty forklarte jeg tidligere.

 

Om du skal inkludere profil, sørger du for at feks profil.php ligger i mappen "inc/". Denne inkluderer du da ved å skrive "http://minserver.no/?side=profil".

 

 

Håper dette hjalp litt :)

 

 

Vil også anbefale deg å lese guidene som hardware.no har skrevet, de har jeg nevnt her

Endret av M4rTiN
Lenke til kommentar

Men ossen skal linkene være ? Rett til siden <a href="inc/test.php". eller skal den skrives på en annen måte ? Jeg holder på å miste tolmodigheten her :!:

 

Sorry for at jeg er hellt noob her :blush:

 

 

EDIT: Jeg har fåt til det dere med meny.php og lage en meny der og includere den på hoved siden men jeg sliter med å includere en fil.

 

EDIT 2: her er linken til siden jeg bruker

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