Gå til innhold

Organisering/inkludering av sider


Anbefalte innlegg

Jeg prøver å finne den mest praktiske måten å organisere en nettside med mange enkeltsider, funksjoner og klasser.

 

Har foreløpig kommet frem til en ganske enkel løsning, men tror ikke det er den beste løsningen.

 

Følgende variabler defineres i adressen:

  • $group = definerer hvilken gruppe (mappe hvor HTML og actions hentes ifra) brukeren søker
  • $action = definerer hvilket script i gruppen PHP skal kjøre øverst i index.php (før PHP returnerer noe)
  • $page = definerer hvilken side i gruppen brukeren vil inkludere i index.php sin HTML-kode

Adressen kan altså se f.eks. slik ut: index.php?group=registrering&page=form&action=check_data

 

Et eksempel på scriptene er da:

 

/index.php

PHP
<?php

// Før PHP sender data til brukeren START

include('classes.php'); // Inkludere klasser

 

if($_GET['action']) { // Hvis en action er definert

include($_GET['group'].'/'.$_GET['action'].'.php');

}

// Før PHP sender data til brukeren STOPP

?>

<html>

<body>

<?php

// Litt HTML START

include($_GET['group'].'/'.$_GET['page'].'.php');

// Litt HTML SLUTT

?>

</body>

</html>

 

 

/registrering/check_data.php

PHP

<?php

if($_POST['data']) {

// Videresende bruker UTEN feilmelding

header('Location: index.php?group=registrering&page=fullfort');

} else {

// Videresende IKKE bruker, men definerer en feilmelding

$error 'Feil';

}

?>

 

 

/registrering/form.php

PHP
<body>

<form action="index.php?group=registrering&action=check_data">

<!-- Et skjema -->

</form>

<?php

print($error);

?>

</body>

 

 

Brukeren går da til index.php?group=registrering&page=form for å registrere seg. index.php inkluderer da ingen action, men henter PHP-filen form.php fra mappen registrering (?group) og plasserer den i sidens HTML-kode.

 

Når brukeren sender data med dette skjemaet, sendes dataene til index.php?group=registrering&page=form&action=check_data. Da inkluderer index.php check_data.php fra mappen registrering (?group). Om det ikke er noen feil med oppgitt data, sendes brukeren til index.php?group=registrering&page=fullfort som sier at registreringen var vellykket. Om det er en feil, vidresendes ikke brukeren noe sted, men siden &page=form vil index.php inkludere form.php, som så vil skrive ut feilmeldingen ved siden av skjemaet.

 

Dette er nok en tung forklaring, men det jeg håper på er at noen med litt mer erfaring enn meg selv kan gi meg noen tips til hvordan de ville løst samme oppgave.

 

Om noe/alt er uklart, si ifra! :)

Lenke til kommentar
Videoannonse
Annonse
Gjest Slettet+142
/index.php

PHP
<?php

// Før PHP sender data til brukeren START

include('classes.php'); // Inkludere klasser

 

if($_GET['action']) { // Hvis en action er definert

include($_GET['group'].'/'.$_GET['action'].'.php');

}

// Før PHP sender data til brukeren STOPP

?>

<html>

<body>

<?php

// Litt HTML START

include($_GET['group'].'/'.$_GET['page'].'.php');

// Litt HTML SLUTT

?>

</body>

</html>

8583549[/snapback]

 

Du burde virkelig sjekke om verdien av disse GET-variablene er gyldige. Ellers kan en person bruke index.php?group=dennemappenfinnesikke&page=ugyldig og da få opp en feilmelding.

- Og feilmeldinger er farlige hvis den rette personen ser den...

 

Det er noe av det jeg ville passet på aller mest.

Ellers ville jeg kanskje brukt MySQL for å ha koder til de forskjellige filene, istedenfor å angi hvilken mappe og hvilken fil osv..

Lenke til kommentar
Du burde virkelig sjekke om verdien av disse GET-variablene er gyldige. Ellers kan en person bruke index.php?group=dennemappenfinnesikke&page=ugyldig og da få opp en feilmelding.

- Og feilmeldinger er farlige hvis den rette personen ser den...

8583747[/snapback]

Klar over dette. Scriptene under er bare eksempler på hvordan de forskjellige sidene skal systematiseres. Jeg har ikke tatt med noen form for sikkerhet i disse eksemplene.

 

Det er noe av det jeg ville passet på aller mest.

Ellers ville jeg kanskje brukt MySQL for å ha koder til de forskjellige filene, istedenfor å angi hvilken mappe og hvilken fil osv..

8583747[/snapback]

Mener du at jeg lager en egen tabell med oversikt over alle sidene, actions etc. også sjekker GET-variablen opp mot databasen? Sikkerhetsmessig smart, men blir mer tungvindt. Men sikkerhet er som oftest det :)

Lenke til kommentar
Gjest Slettet+142
Mener du at jeg lager en egen tabell med oversikt over alle sidene, actions etc. også sjekker GET-variablen opp mot databasen? Sikkerhetsmessig smart, men blir mer tungvindt. Men sikkerhet er som oftest det  :)

8584499[/snapback]

Jepp. Akkurat det jeg mente.

Og da tenker jeg at du med etc. mente bl.a relativ URL, right?

Lenke til kommentar
Jepp. Akkurat det jeg mente.

Og da tenker jeg at du med etc. mente bl.a relativ URL, right?

8584551[/snapback]

Relativ URL har jeg lest/hørt så mange ganger, men har aldri tatt bryet med å lære hva det betyr. Så, off topic: Hva betyr relativ URL?

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