googolplex's svar er det bedste af dem... forklaringen:
Siden PHP version grønlangkål (4.3 så vidt jeg husker, tjek selv) har PHP kørt med register_globals sat til "off" (og jo, det er en god ting)... dette giver lidt problemer til at starte med, men når man har vænnet sig til det vil du indse det smarte ved det...
det det gør at, når du skal have fat i variabler _fra_ brugeren, bruger du ikke variablens navn, men derimod en key i et array - ex:
når noget kommer fra en form med
<input type="text" name="userinput">
så hedder den i dit script
$_POST['userinput']
måden du finder ud af hvilket af de super-globale variabler du skal bruge er ved at kigge i manualen, eller i dette skema (ses bedst i en preformateret skrifttype)
+---------------+------------------------------------------------------+
| $_POST | Når variablen kommer fra en <form> med method="post" |
| $_GET | Når variablen kommer fra addresselinie ( ?foo=bar ) |
| $_COOKIE | Når variablen kommer fra en cookie |
| $_REQUEST | En samling af de tre ovenstående |
| $_SESSION | Når variablen kommer fra en session (var. kan også |
| | registres på denne måde |
| $GLOBALS | En liste over variabler der er gjordt gobale |
+---------------+------------------------------------------------------+
---
At googolplex så laver en ekstra if(expr) skyldes at i mange af tilfældende vil variablen ikke findes, da formen ikke er blevet sendt endnu (læs: ikke trykket på submit) - og variablen vil derfor ikke findes (og en notice vil blive udsendt)... googolplex tjekker om variablen findes med funktionen isset() (
http://php.net/isset) og udskriver den hvis den findes... dette tjek bør altid foretages for at sikre script (og så det ikke undsender notices)
Morten