Leer een website bouwen met PHP in 5 minuten
Een collega vroeg me gisteren of ik hem in 5 minuten kon uitleggen hoe je met PHP een website kunt bouwen.
Toen ik na 5 minuten klaar was gaf hij aan dat het duidelijk was, dus als het voor hem duidelijk is dan is het mogelijk ook handig voor anderen :)
Download
Ik heb de bestandjes bij elkaar geplaatst zodat je het kunt downloaden. In uitleg.html staat dit hele verhaal nog eens. Let op dat je het bestandje 'htaccess' voorziet van een punt, de naam moet gewijzigd worden naar '.htaccess'!
Hieronder staat een heel eenvoudig stappenplan waarmee je het volgende bereikt:
Het stappenplan
- een manier om met 1 HTML template meerdere pagina's te maken;
- zoekmachine-vriendelijke urls;
- een correcte 404 pagina voor als er wat mis gaat;
- een homepage en een willekeurige andere pagina; in dit voorbeeld 'info'.
En ja, natuurlijk kun je websites veel uitgebreider maken. Dit is een startpunt, maar ook een werkwijze waarmee ik menig website in het verleden zeer snel in elkaar gezet heb, zonder een CMS. Voor de web developers: dit plus een template van oswd.org zorgt ervoor dat je binnen 2 uur een volledige website inclusief layout afhebt.
De teksten
Je begint met een bestandje waarin je alle teksten, metatitles, descriptions etc plaatst. Ik noem het teksten.inc.php, het tekstbestandje dat ik 'include':
bestandsnaam: teksten.inc.php
<?php
// leeg? dan is het de homepage
if($_GET['p'] == '') {
$title = 'home';
$h1 = 'home h1';
$tekst = 'tekst home';
}
// index.php?p=info, of: /info/? Dan deze tekst gebruiken
elseif($_GET['p'] == 'info'){
$title = 'info';
$h1 = 'info h1';
$tekst = 'info tekst';
}
// andere gevallen bestaan niet en dus 404
else {
$header = '404';
$title = '404 title';
$h1 = '404 h1';
$tekst = '404 tekst';
header("HTTP/1.1 404 Not Found"); // server foutmelding voor 404 pagina
}
?>Dit kun je uiteraard uitbreiden met meer teksten, paginas etc. Let erop dat aanhalingstekens (') voorzien worden van een \'. Dus niet: $tekst = 'dit is een 'quote'';, maar: $tekst = 'dit is een \'quote\'';.
De HTML template
Vervolgens maak je een bestandje genaamd index.php aan, waarin de HTML template staat en waarbij afhankelijk van de url die iemand opvraagt de content van die pagina getoond wordt:
Bestandsnaam: index.php
<?php
// de teksten inladen
require_once("teksten.inc.php");
?>
<html>
<head>
<title><?php echo $title; ?></title>
</head>
<body>
<h1><?php echo $h1; ?></h1>
<p><?php echo $tekst; ?></p>
</body>
</html>
Als iemand index.php opvraagt, wordt bij $title, $h1 en $tekst de content getoond die ik ingevuld had onder if($_GET['p'] == '') {. Als iemand index.php?p=info opvraagt, wordt bij $title 'info' ingevuld etc. Als er iets niet klopt, wordt er een 404 pagina getoond, inclusief HTTP statuscode die nodig is om ervoor te zorgen dat de pagina niet geïndexeerd wordt door Google & co.
Zoekmachine vriendelijke urls
Zoekmachines kunnen lelijke urls zoals ik ze hier maak prima volgen, maar 'vriendelijke urls' zien er beter uit en klikken ook beter, dus vandaar dat je bijvoorbeeld http://www.jesite.nl/index.php?p=info liever wil wijzigen naar http://www.jesite.nl/info.
Dat kan eenvoudig met een rewriteregel in het bestandje .htaccess, dat er als volgt uitziet:
Bestandsnaam: .htaccess
RewriteEngine on RewriteRule ^([a-zA-Z0-9-] )/?$ index.php?p=$1
Als iemand nu /info opvraagt, dan weet de site nu dat eigenlijk index.php?p=info opgevraagd wordt, maar dat laat ie niet zien. In plaats daarvan wordt /info ook getoond, inclusief de bijbehorende tekst. Daarnaast worden alleen pagina's met alfanumerieke karakters (a-zA-Z0-9-) geaccepteerd. Dat voorkomt fouten.
Goed, het kostte me 20 minuten om dit artikel te schrijven, maar slechts 5 minuten om een werkend prototype te maken en uit te leggen hoe het werkte. Doe er je voordeel mee en laat me weten wat je ervan vindt!
Interessant?
Lees dan ook eens meer artikelen over ...
Reacties
door Thomas Lenting, 2010 03 04
Goed artikel.Ik stop de naam/waarde-paren meestal in een array. In de template zet ik dan '[naam]', die ik laat replacen. Op die manier kun je de code en template nog meer scheiden.De if-else structuur kan een hele lange lijst worden; dan kun je voor de leesbaarheid beter een switch-statement gebruiken met per 'case' de aanroep naar functies die de array teruggeven.
door monchito, 2010 03 04
@Thomas: klopt helemaal en thnx!arrays zijn een stap verder en heb ik bewust achterwege gelaten :)
Leuk artikel, alleen de inhoud van teksten.inc.php zou ik zelf liever in een database zetten, dat is (zeker wanneer de schaal wordt vergroot) overzichtelijker dan een hele lange lijst if-else statements.
door , 2010 03 05
Goede uitleg Ramon. zove heb ik mijn eerste php site nog niet gemaakt ;) Waar ik wel benieuwd naar ben is hoe de php database werkt ipv de teksten.inc.php.
door monchito, 2010 03 05
@Niels dat is iets lastiger uitleggen, maar ook niet lastig hoor, maar dan moet je wel een database aanmaken, connectie maken, uitlezen, in array stoppen, array printen ... Is iets lastiger :)
door Ruben, 2010 03 14
Zo kan het ook inderdaad, heerlijk eenvoudig.@monchito ligt er natuurlijk aan wie je tegenover je hebt zitten :)
Haha, zo simpel kan het gewoon zijn. Nu nog de tekst mooi weergeven. Binnenkort een artikel over CSS in 5 minuten? =)Ik heb thuis ook nog een dik boek over PHP staan wat ik ooit eens wil gaan lezen.
door jasonz, 2010 08 31
Volgens mij is het een hele duidelijke tutorial alleen gek genoeg heb ik zoals beschreven alle bestanden aangemaakt maar krijg ik bij het openen van de index.php enkel: [html] [head] [title][/title] [/head] [body] [h1][/h1] [p][/p] [/body] [/html] te zien...
Doe ik iets fout?
@Jasonz @Vincent: er zit een foutje in de code die erin geslopen is toen ik monlog migreerde naar het nieuwe platfrm. Dat ga ik snel fixen! (deze week nog)
@Jasonz: die code zoals die er nu staat werkt even niet, ik fix het, je doet niets fout ;)
door Ramon Eijkemans, 2010 10 05
@Jasonz @Vincent de code is gefixt. Je kunt de bestanden nu kopieren en op je webserver plaatsen; zou moeten werken ;)
door vincent, 2010 10 05
A, ik zie al wat er gebeurd. Je strip de html tags helemaal weg uit de posts.
Je zou html_entities() kunnen proberen, zodat de html tags die mensen posten (om wat uit te leggen ofzo) in tact blijven...
door Ramon Eijkemans, 2010 10 05
@Vincent thnx, ja dit is niet een nieuw systeem en die HTML editor is nog een beetje... overijverig :) Ben nog ff bezig met de bestandjes te testen en ze bij elkaar in een download zipfiletje te zteten. Da's wellicht handiger ;)
door Dj, 2011 07 09
heey dit is 1ste keer dat ik eens wil proberen een website te maken...
maar ik snap er niks van!
door Ramon Eijkemans, 2011 07 09
Dan kun je beter bij het absolute begin beginnen DJ
zie http://www.w3schools.com/
Rants/opmerkingen/suggesties?
Wat is MONLOG
Sinds 2002 is MONLOG het weblog van Ramon Eijkemans, freelance SEO-gun for hire.
Dit weblog bevat how-to's, mijmeringen, soms wat humor. Het gaat vrijwel altijd over SEO. Ik herhaal geen nieuws. Het doel van dit weblog is om jou van praktische en doordachte informatie te voorzien!
En dan nog dit: guestpostings zijn welkom! Mail me als je je ei kwijt wil op dit goed rankende podium.
Laatste comments
@Aartjan: ik heb hetzelfde met 'lekker kontje' :)...
25.11.2011 door Ramon Eijkemans op Ranken op Banaan
Bij mij is 'banaan' toevallig al jaren het zoekwoord waar ik...
23.11.2011 door Aartjan van Erkel op Ranken op Banaan
Gewoon maken waar vraag naar is. Dat is zo oud als de weg...
22.11.2011 door Thomas op Ranken op Banaan
Een banaan natuurlijk :)
09.11.2011 door Ramon Eijkemans op Ranken op Banaan
In welk tineu zien we jou terug binnenkort?
09.11.2011 door Emiel op Ranken op Banaan
@Simme @Navin proost! :)
07.09.2011 door Ramon Eijkemans op Vakantie!
Zo maak je mij wel erg jaloers :)
05.09.2011 door Navin Poeran op Vakantie!
12 bier geeft plezier.en veel succes gewenst tijdens de tw...
31.08.2011 door simme op Vakantie!
@Willem: ik denk op de manier zoals ik in dit artikel...
20.08.2011 door Ramon Eijkemans op Faceted search & SEO: vloek of zegen?
Goed en interessant artikel. Wat mij vooral bezighoudt, is...
20.08.2011 door Willem Hoekstra op Faceted search & SEO: vloek of zegen?


door Jos, 2010 03 04
Ja, maar waar is het CMS?