[PHP] Register_Globals

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Dadoke
  • Registratie: September 2004
  • Laatst online: 20-08-2022
Als beginnende PHP-ontwikkelaar heb ik enkele vragen bij het gebruik van register_globals.
Er wordt aangeraden om register_globals op off te zetten.

Na het op off zetten van deze setting, is het niet meer mogelijk om te werken met de variabelen die via de post zijn doorgegeven, maar moeten ze opgevraagd worden met $_Post['var']. Klopt dit?
Is het dan eigenlijk aan te raden om $var variabelen te gebruiken? (zonee, hoe werk ik dan best wel?)

Wat is eigenlijk het verschil tussen $_Get en $_Post?

Acties:
  • 0 Henk 'm!

  • noot101
  • Registratie: Februari 2002
  • Laatst online: 14-09 21:43
Dit is inderdaad wel de beste methode (vind ik)
met $_GET haal je variabelen uit de URL en met $_POST uit een gepost formulier

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Het wordt je gewoon sterk aangeraden om zo met register_globals om te gaan en de GET en POST parameters uit de $_Get en $_Post arrays te trekken. Als je dat doet, mag je best verder gewoon als naamgeving $var hanteren voor je overige variabelen. :)

Voor het verschil tussen GET en POST moet je wat meer over HTTP lezen.
noot101 schreef op maandag 07 november 2005 @ 15:32:
met $_GET haal je variabelen uit de URL en met $_POST uit een gepost formulier
Deze zin klopt, maar er zijn uiteraard ook formulieren die via get werken. Wanneer je welke keuze maakt heeft onder andere te maken met het al dan niet idempotent zijn van acties.

[ Voor 37% gewijzigd door Voutloos op 07-11-2005 16:09 ]

{signature}


Acties:
  • 0 Henk 'm!

  • Dadoke
  • Registratie: September 2004
  • Laatst online: 20-08-2022
dus een oplossing voor reeds bestaande pagina's is om in het begin van elke pagina de geposte waarden via $_post naar variabelen om te zetten.

de mogelijke code is dan:
$variable1 = $_get['variable1'];
$variable2 = $_get['variable2'];
<enzovoort natuurlijk>

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Dadoke schreef op maandag 07 november 2005 @ 15:38:
dus een oplossing voor reeds bestaande pagina's is om in het begin van elke pagina de geposte waarden via $_post naar variabelen om te zetten.

de mogelijke code is dan:
$variable1 = $_get['variable1'];
$variable2 = $_get['variable2'];
<enzovoort natuurlijk>
Dat hoeft in principe niet eens, maar kan wel handig zijn. Als je weet dat je alle indices van bijvoorbeeld $_POST nodig gaat hebben, zonder dat je daar bewerkingen op wil gaan doen kun je ook dit gebruiken:
PHP:
1
extract($_POST, EXTR_SKIP);

Dan heb je automatisch een variabele met de naam $variabele1 als $_POST['variabele1'] bestaat, enzovoorts. Maar meestal is dat niet wat je wil, vaak wil je nog wel wat met die variabelen doen van tevoren. Bijvoorbeeld addslashes eroverheen halen, of een andere functie. En dan kun je beter per situatie kijken hoe je je code het handigst kunt opzetten.

Overigens staat er nog meer info over superglobals in onze FAQ: P&W FAQ - PHP: gebruik van superglobals.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.