Ik ben bezig met de website van onze vriendengroep. Nu heeft ieder lid zijn eigen profiel. Deze is te benaderen via index.php?page=profiel&id=1(voorbeeld).
Het is handig om bekend te zijn met de syntax van reguliere expressies. Meer info hierover vind je op regular-expressions.info (Engels).
Het voorbeeld dat jij geeft zou in principe moeten werken, als je invult "www.site.nl/index/pagina/1", dan zal index.php aangeroepen worden met in $_GET['page'] de waarde "pagina", en in $_GET['id'] de waarde 1.
Als je wil wat jij in je startpost aangeeft, kun je het herschrijven naar bijvoorbeeld dit:
Het nadeel daarvan is dat je per pagina een nieuwe regel toe moet voegen aan het .htaccess bestand voor iedere "soort" pagina dat deze "mooie" URL's moet krijgen
Het nadeel daarvan is dat je per pagina een nieuwe regel toe moet voegen aan het .htaccess bestand voor iedere "soort" pagina dat deze "mooie" URL's moet krijgen
Dit vermoede had ik al. Zou het op een andere manier makkelijker kunnen dan? Ik wil graag alle paginas aanroepen op deze manier..
je gaat natuurlijk niet voor elke id een task aanmaken in de controller. Je maakt 1 default task aan die uitgevoerd wordt als de task niet gevonden wordt, wat dus het geval is als je een interger als id geeft.
In deze default task roep je dan de view aan die het correcte profiel weergeeft
en zo kan je in die controller bijvoorbeeld ook een task 'search maken om profielen op te zoeken, en dan bekom je netjes de URL: http://www.site.nl/profielen/zoeken
MVC is een OOP design pattern dat ook implementeerbaar is in php. dit zorgt ervoor dat de code van de html gescheiden wordt, alles overzichtelijk blijft, makkelijk aan te passen is, ... enz
Je moet nog steeds het .htaccess bestand gebruiken dat ervoor zorgt dat je urls 'mooi' worden. Door gebruik te maken van het MVC patroon hoef je niet telkens je .htaccess bestand aan te passen indien je een nieuwe 'soort' pagina wilt, ik zal zo meteen een klein voorbeeldje in elkaar steken.
Ok hier komt het voorbeeldje, het is alles behalve mooi geschreven maar het is maar om het een beetje duidelijk proberen te maken.
Je doet er trouwens goed aan enkele artikels over MVC/Factory en andere dessign patterns door te nemen, op lange termijn bespaart dat je een hoop ellende
dit script gaat er van uit dan je .htaccess staat ingesteld op site.nl/profiel/1 redirect naar index.php?controller=profiel&task=1
over het .htaccess bestand ga ik niet uitwijken, hier ken ik zelf niet genoeg van
Dit is misschien iets om later nog eens uitgebreid op terug te komen als ik wat gevorderd ben ik php. Nu wil ik gewoon simpelweg mijn urls netjes weergeven..
Dit lijkt mij het makkelijkste met mod_rewrite, maar hier heb ik niet genoeg kennis van.. dus misschien zou je mij hiermee op weg willen helpen?
edit
Ik heb de file nu werkende, maar normaal gesproken worden al mijn paginas geinclude binnen index.php. Nu worden de paginas direct geladen. Hoe kan ik dit verhelpen?
Sorry voor mijn late reactie, ik was deze topic helemaal vergeten.
Je plaats het bestand in je root index. Hoe zit dit includen precies in elkaar? Wordt alles geinclude in het root index.php bestand? Dus index.php?page=profiel&id=$1 bijv? Dat moet je dit namelijk even aanpassen in het .htaccess bestandje.
Stel je include al je bestanden in je root index.php, dan moet je als volgt te werk gaan
Zou het ok anders kunnen dan? Zonder alles in index.php te includen? Als ik nu gebruik maak van: http://url.nl/profielen/1, word de pagina direct geopend, niet in index.php..