Simpel Website Routing

Door Reshad F, 2 jaar geleden, 10.836x bekeken

Hallo,

Toen ik begon met mijn eerste website heb ik heel veel moeten zoeken naar een goede manier om mijn routing te regelen voor de website. Zoals misschien wel 99% van de mensen doet bij hun eerste website heb ook ik in het begin gewoon 6 statische pagina's gemaakt en elke keer wanneer ik iets veranderde dan moest datgene op 6 pagina's worden veranderd.

Maar nadat ik uiteindelijk wat verder kwam in het begrijpen van wat ik allemaal kan met php begon ik includes te gebruiken om bijvoorbeeld de footer en de header en soms het menu gewoon te includen en zo had ik elk onderdeel maar 1 keer nodig. Uiteindelijk vond ik zelfs dit veel te veel werk want ik moest dit nog steeds op elke pagina includen. Vandaar nu deze tutorial.. het is misschien niet de beste manier om je routing te hebben maar het is een hele mooie en makkelijke manier om dit zodanig te regelen dat je nauwelijks iets hoeft te veranderen en je tijd kan steken in jezelf te ontwikkelen in plaats van uitzoeken waar je dat ene linkje nog niet aangepast hebt.

Als er mensen zijn die tips hebben dan zijn die zeer welkom.

Gesponsorde koppelingen

Inhoudsopgave

  1. Indeling website
  2. index.php
  3. index-header.php
  4. index-body.php
  5. index-footer.php
  6. index.ini
  7. Tot Slot

 

Er zijn 10 reacties op 'Simpel website routing'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
- SanThe -
- SanThe -
2 jaar geleden
 
0 +1 -0 -1
Netjes.

Ik kende deze manier niet, dus zo leer ook ik weer wat bij. Bedankt.

Wel even een opmerking: Je include() nu blindelings de $_GET['page'] in de content. Dat is een lek. Je kan nu bijvoorbeeld zelf in de url ../../../geheim.php invullen en het zal geopend worden. Zorg dat je daar meer controle op hebt.
Wouter J
Wouter J
2 jaar geleden
 
0 +1 -0 -1
Je ini file kan een stuk mooier:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
[homepage]
pattern = "home"
title = "Home | Mijn Website"

[about]
pattern = "about"
title = "About | Mijn Website"


En je bent heel slordig aan het scripten. Elke regel heeft een andere coding standard. Probeer alles er een beetje hetzelfde uit te laten zien.

Ook kan je het een beetje functioneel maken.

Een ander makkelijke methode is die Pim hier gaf: http://www.phphulp.nl/php/forum/topic/router/83492/#594215

Of bijv. deze methode: http://www.phphulp.nl/php/forum/topic/paginas-includen/85274/#608793

En nog een methode met ini die ik ooit voor je heb gemaakt: http://www.phphulp.nl/php/forum/topic/de-juiste-content-ophalen/84573/last/

En nog een belangrijke quote van Bart:
Bart V B op 12/05/2012 10:18:50:
nog even een kleine tip, zet het .ini bestand buiten de doc_root. ;)
Reshad F
Reshad F
2 jaar geleden
 
0 +1 -0 -1
@santhe heb je een tip hoe ik dat beter kan regelen?

@Wouter bedankt voor de tips. ik ga ermee aan de slag. Met de ini file ben ik het er niet helemaal mee eens. Ik heb liever alle urls bij elkaar en alle titles bij elkaar.. maar dat kan natuurlijk per gebruiker verschillen. ik zal de andere linkjes die je gaf even doornemen en het toepassen waar ik het toepassen kan.
- SanThe -
- SanThe -
2 jaar geleden
 
0 +1 -0 -1
Je gebruikt ergens het array $content["navigation"]. De pagina die je wilt includen moet een key hebben in dat array.
Reshad F
Reshad F
2 jaar geleden
 
0 +1 -0 -1
zoiets bedoel je?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

        $page
= isset($_GET['page']) ? $_GET['page'] : "main.php";
        if( file_exists($page) && array_key_exists($page, $content)) include($page);
        else include("404.html");
        
    ?>
Reshad F
Reshad F
2 jaar geleden
 
0 +1 -0 -1
en stel dat er iemand op zijn website een link neerzet naar bijvoorbeeld test.php dan komt die er nu ook uit op deze manier. maar wanneer hij niet in je ini file staat komt hij er niet in omdat hij daar geen key heeft.. toch? of denk ik nu verkeerd..
Bart V B
Bart V B
2 jaar geleden
 
0 +1 -0 -1
Quote:
en stel dat er iemand op zijn website een link neerzet naar bijvoorbeeld test.php dan komt die er nu ook uit op deze manier. maar wanneer hij niet in je ini file staat komt hij er niet in omdat hij daar geen key heeft.. toch? of denk ik nu verkeerd..


Reshad, stel nou eens dat men bedenkt om in de ini file site configuratie opties te zetten?
Dan zijn deze gewoon uit te lezen.
Lijkt me niet handig toch?

Maar als je perse het toch in de doc root wil zetten doe dan een .htacccess bestand erbij met het volgende:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<Files "bestandsnaam.ini">
    Order Deny,Allow
    Deny from all
    Allow from none
</Files>
Reshad F
Reshad F
2 jaar geleden
 
0 +1 -0 -1
Ah dat is inderdaad een handige tip! bedankt Bart
Eddy E
Eddy E
2 jaar geleden
 
0 +1 -0 -1
Als het puur om het automatisch includen van header.php en footer.php gaat:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
php_value auto_prepend_file "/real/path/to/file/header.php"
php_value auto_append_file "/real/path/to/file/footer.php"


En dan kan je gewoon pagina.php openen en wordt de header/footer automatisch geincluded. Hoef je in PHP niets voor te doen.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Reshad F
Reshad F
2 jaar geleden
 
0 +1 -0 -1
de tut is een opzetje je kan hier veel andere kanten mee op.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. Indeling website
  2. index.php
  3. index-header.php
  4. index-body.php
  5. index-footer.php
  6. index.ini
  7. Tot Slot

Labels

PHP tutorial opties