Gå til innhold

PHP - Lage websider med index.php?id=5


Anbefalte innlegg

Så hvis jeg lager en side med f.eks. noen artikler kan jeg ha artiklene i en mappe kalt "arklr" og design i en annen mappe og bare bruke id å inkludere de forsjellige filene slik at jeg får en fullstendig side av det?

www.blabla.org/index.php?id=5

 

Forstår ikke helt :blush:

Lenke til kommentar
Videoannonse
Annonse

Det er korrekt..

 

du kan ha design på root

 

deretter kan du ha

 

artikler i en mappe kalt

/artklr/

 

inne i design filen(index.php)

kan du da sette opp en switch eller lignende inne i design siden

 

switch ($_GET[id']) {

 

case 1:

include('./artikkel1.txt //(kan være txt, inc, php, men du skal ikke ha noe HTML koder her som <head> <body> etc...

break;

case2:

include('./artikkel2 etc...

break;

.

.

case 5:

include('./artikkel5....

break;

default:

Her kan du legge inn en feilmelding eller gj;re det slik at bruker blir sendt tilbake til hovedsiden dersom id ikke finnes

Lenke til kommentar
case 1:

include('./artikkel1.txt //(kan være txt, inc, php, men du skal ikke ha noe HTML koder her som <head> <body> etc...

Hvorfor ikke? Hvis jeg bruker f.eks. et newscript eller noe til å skrive artikler med også lagre de som php/html forså å lagre de i en mappe kalt "artikler" eller noe. Hvordan er den beste måten og hente fram de på da, hvis det er _bare_ artikkelen som skal forandres(Akkurat som news blir skrevet på sourcecode.no eller noe)?

 

Håper du forstår, litt vanskelig å forklare...

Lenke til kommentar

Grunnen til at du skal begrense deg til HTML koder som du bruker mellom <body> og</body> er at da kan du froandre p[ design siden din, og dermed trenger du ikke forandre på designet på alle artikkel sidene dine for at designet på alle sidene skal være likt.

Dersom du vil ha forskjellig design ettersom artikkel, må du bare sørge for at det ikke er noen HTML koder som blir doblet... dvs <html> finnes både i design siden og artikkel side.. da vil du få problemer med å validere siden din.. ;)

Lenke til kommentar
Grunnen til at du skal begrense deg til HTML koder som du bruker mellom <body> og</body> er at da kan du froandre p[ design siden din, og dermed trenger du ikke forandre på designet på alle artikkel sidene dine for at designet på alle sidene skal være likt.

Dersom du vil ha forskjellig design ettersom artikkel, må du bare sørge for at det ikke er noen HTML koder som blir doblet... dvs <html> finnes både i design siden og artikkel side.. da vil du få problemer med å validere siden din.. ;)

Ah, så jeg ikke får dobbelt opp en tagger mener du? :yes:

Nei designet skal være det samme, det er bare det på midten/teksten/artikkelen som skal forandres, med ?id=1 kommer det "vanlige" designet og artikkel nr. 1, ikke sant?

Lenke til kommentar

Yepp det er derfor du vil bruke tagger i design siden, og ikke i den siden du includerer.

 

Tror det enkleste er å bruke switchen slik:

switch ($_GET[id']) {

 

case 1:

$insert = "./artikkel1.txt";

break;

case2:

$insert = "./artikkel2.txt";

break;

.

.

case 5:

$insert = "./artikkel5";

break;

default:

$insert = "./Default.txt";

Her kan du legge inn en feilmelding eller gj;re det slik at bruker blir sendt tilbake til hovedsiden dersom id ikke finnes

 

<html>

<body>

<?php

include($insert);

?>

</body>

</html>

 

litt forenklet... :D

Lenke til kommentar

Takk for hjelpen :thumbs: Har fått det til som jeg vil for øyeblikket(uten at jeg brukte switch faktisk). Men hva om jeg vil ha flere artikkel sider. F.eks: id?=artikkel&nr?=10 Slik at jeg får opp artikkel nr 10. Hvordan blir det da? Blir det det samme eller må jeg forandre på noe?

Lenke til kommentar
Du vil ha flere artikler på samme siden?

Er ikke helt sikkert på at jeg skjønner problem stillingen her..

 

Jeg har flere artikler på samme side på siden min, men jeg bruker mysql...etc

Ikke på samme siden men en artikkel-side med oversikt over alle artiklene. Når jeg trykker på en skal den artikkelen komme opp. Men hva om artikkelen har mange sider. F.eks: id?=artikkel&side?=2 <----Blir koden slik?

Lenke til kommentar

Hvordan koden blir kommer helt ann på hvordan du setter opp artikkelen og sidene innen artikkelen..

 

dersom du setter det opp slik som dette:

/artkl/artikkelen/1

/artkl/artikkelen/2

/artkl/artikkelen/3

/artkl/artikkelen/4

/artkl/kort_artikkel

/artkl/endaen_art

 

 

kan du bruke /?artid=artikkelen&pageid=2 feks

 

hvor artid akkelr p[ artikkelen og pageid kaller p[ siden innen den artikkelen

 

Men som sagt kommer det helt ann p[ hvordan du har tenkt deg artikkel oppsettet...

Lenke til kommentar

Mappen "Artikler" inneholder alle artiklene, der hver og en artikkel har sin egen mappe.

/Artikler/artikkel1

            /artikkel2

            /artikkel3

            /artikkel4

 

Inne i f.eks. /artikkel1 er alle sidene sortert.

/Artikler/artikkel1/side1.txt

                          /side2.txt

                          /side3.txt

Blir koden slik nå da? (id?=artikkel&side?=2)

 

Hvis du ser på artiklene på sourcecode.no så ser du at en artikkel er delt opp i flere sider, det er noe slikt jeg er ute etter...

Endret av moesen
Lenke til kommentar
Yepp da kan side henvisningen din se slik ut:

 

?id=artikler&side=2

 

Du må være forsiktig og sjekket at artikler og side finnes for å unngå at noen sender en sidehenvising med den hensikt å ødelegge el.l

Takker!

 

Ehh, høres kanskje litt dumt ut men hva er fordelen med slike ting?

Lenke til kommentar

rett og slett for å hindre script som slenger ut brukernavn og passord feks ved at

id=www.slemside.se/slemtscriptsomhenterpassord.php

, og i koden din så har du

include $id;

..

no sånt. Håper du skjønner tegninga. Det slemme scriptet blir puttet inn i din egen kode ved hjelp av include, dermed er du sårbar dersom du ikke sjekker om det som includeres(dersom du gjør det på denne måten) er ditt eget, og ikke et annet som kan gjøre skade.

Lenke til kommentar

Tja det er vel greit dersom det er en stor artikkel... det er sikkert andre måter å gjøre det på også... kommer vel mest an på designeren..

 

Dersom du har en bedre måte å gjøre det på foreslå det så trådstarter kan se..

 

:D

 

EDIT: Kanskje jeg misforstod spørsmålet ditt.... dersom du spør om hvorfor du bør sjekke at siden eksistere på din server, svarte phanti på det.. :)

Endret av joffar
Lenke til kommentar

Prøvde kun å svare på spørsmålet hans, for med mindre artikkelen er på typ 10 A4 sider, så velger jeg andre metoder for å hente dem fram.

Det eneste jeg inkluderer på sidene mine er filer med metoder og andre felles filer. Resten er spørringer etc..

 

Når det gjelder inkludering, så er SWITCH en lur metode å gjøre det på..

Lenke til kommentar
rett og slett for å hindre script som slenger ut brukernavn og passord feks ved at
id=www.slemside.se/slemtscriptsomhenterpassord.php

, og i koden din så har du

include $id;

..

no sånt. Håper du skjønner tegninga. Det slemme scriptet blir puttet inn i din egen kode ved hjelp av include, dermed er du sårbar dersom du ikke sjekker om det som includeres(dersom du gjør det på denne måten) er ditt eget, og ikke et annet som kan gjøre skade.

Man kan ikke hente PHP-skript fra andre servere, siden det vil være ferdig parset til harmløst HTML/JS når det sendes til webserveren som skal "knekkes". Men det er litt kjipt at noen får inkludert en side med tvilsomt innhold, for så å ta printscreen og sende det til polisen eller venner og kjente...

Lenke til kommentar

det er vel litt naivt?

 

det er ingenting iveien for at den "harmløse html'en" er kjørbar phpkode.

 

<?php

echo "<?php gyldig_php_kode(); ?>";

?>

 

eller enda enklere: stoppe php-parsing for katalogen det gjelder så php-filen skrives ut som den er.

 

det er bare snakk om hvorvidt man tror ingen i hele verden ville finne på å prøve å sette inn sin egen phpkode inn på siden din. Sjansen for det er vel heller liten. jeg prøver for eksempel ganske ofte.

Lenke til kommentar

Det virker som det er mange som glemmer litt :p

Mange bruker isset, f.eks. isset($_GET['id']). Siden variabelen er satt selv om den er tom, index.php?id= , så er det bedre å bruke empty().

 

Det er kanskje lurt å validere innholdet i variabelen dere skal include, kan det bare være tall så sjekk at det bare er tall - eller skal det kun være mulig med bokstaver så sjekk dette. Hvis dette ikke lar seg gjøre burde det sjekkes at ikke . eller / forekommer - som i f.eks. index.php?id=../fil

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