Tjtjtjtjtj... Dat snap ik dan ook weer niet he... Dat ze weer volledig afhankelijk zijn van de register globals. Als je een goede scripter bent (zoas ik

) dan maak je je script zo onafhankelijk als kan. Dus er moet zo weinig mogelijk gelijk zijn aan een configuratie. Veel hosts staan het idd niet toe dat je met register globals kunt werken in je script. Als je als maker van een groot project dat dus toch doet loop je erg de kans dat mensen erover gaan klagen dat ze je script niet kunnen uitvoeren.
Klein stukje uitleg over wat "register globals" nou eigenlijk zijn:
In PHP heb je meerdere manieren om informatie uit formulieren, pagina-adressen (URL's) en globale variabelen te halen (globals). Globals kunnen handig zijn omdat ze overal te gebruiken zijn. "Gewone" variabelen, arrays, functies en klassen hebben een beperkte reikwijdte. Je zult ze er dan weer apart bij moeten halen maar bij PHP globals hoef je je daar geen zorgen om te maken. Die zijn altijd beschikbaar. Waar dan ook wanneer dan ook hoe dan ook.
Bij formulieren heb je bijvoorbeeld de super globals $_POST, $_GET en $_REQUEST. Dit zijn arrays die informatie bevatten (als die er is) over de waarde van een sleutel. De naam die je aan een textveld toekent in een html formulier is dan de naam van de sleutel en de waarde die je er in hebt gevuld is ook de waarde van de sleutel. Hier is een simpel html formulier:
PHP:
<form action="<?php echo $PHP_SELF ?>" method="post" name="example">
<input type="text" name="veld1"><br>
<select name="lijst1">
<option name="optie1">Optie1
<option name="optie2">Optie2
</select>
<input type="submit" name="submit" value="Verzenden">
</form>
Je ziet het dus een simpel formpje met een textfield, een dropdownlist en een submit knop. De naam van het textfield is bijvoorbeeld veld1. Let ook vooral op de methode die ik gezet heb op post. Dit bepaald welke global ik moet gebruiken wil ik met de ingevoerde waarde(s) aan de slag. In dit geval dus $_POST. Gebruik je post en get door elkaar (niet aan te bevelen!) dan kun je $_REQUEST gebruiken. Deze maakt het niet uit van welke methode het komt alleen moet je oppassen dat er niet EN een post sleutel EN een get sleutel met dezelfde naam zijn anders gaat het mis

.
Even voor de duidelijkheid: dit is allemaal met register globals OFF. Als ik nu een sleutel wil weergeven (althans de waarde daarvan) dan moet ik dus $_POST["sleutelnaam"] doen. Dit is de manier 'zoals het hoort'. Dit kan altijd. Ook als de register globals aan staan kun je nog gewoon zo werken. Maar, zul je denken, wat is die register globals dan? Nou, veel scripters zijn luie donders. Ze willen met zo weinig mogelijk code zo veel mogelijk bereiken. Dus vinden ze het onhandig om steeds $_POST[.....] te doen en gebruiken ze het liever op de variabele manier: $sleutelnaam. Gewoon zoals je een variabele zou behandelen. Veel handiger. OK, zij PHP en zo is de register_globals functie ontstaan. Maar standaard staat deze bij installatie uit en ook zonder die functie functioneerd een php installatie ook prima.
Dat is dus het verhaal achter de register globals. Het is dus pure luiheid. Maar het rare is dat steeds meer projecten het op AAN moeten hebben staan om te kunnen werken. Heel erg slordig natuurlijk en dat komt denk ik omdat het in veel tuts verkeerd wordt aangeleerd. Ze krijgen vanaf het begin al ingebakken dat het het beste is met register globals te werken omdat dat lekker makkelijk is en het precies zo werkt als gewone variabelen.
Nu over dat tripod dit niet aan heeft staan. Das opzich heel begrijpelijk na deze uitleg natuurlijk want voor niets gaat de zon op: een php installatie zo afstellen dat het voor iedereen leuk is is onmogelijk en bovendien moeten die systeembeheerders ook brood op de plank hebben

. Ik zou zeggen kijk eens uit naar PHPdev. Dit is een totaaloplossing met mysql, php, apache en nog wat testscripts en een web-based sql admin. Want dan kun je zelf, op je eigen pc, Drupal testen en leren kennen.