Ik wilde een oefening uit mijn php-boek maken dat ging over formulieren.
In eerste instantie kreeg ik de parameters niet over gestuur van het ene naar het andere formulier.
Ik herrinnerde me dat dit iets met globals in php.ini had te maken, en besloot globals op on te zetten.
php.ini echter waarschuwd dat dit veiligheidsproblemen kan geven en zegt dat je zo moet programmeren dat globals op off kunnen blijven staan.
Maar als je van het ene formulier naar het andere formulier parameters wilt sturen kan je toch bijna niet anders ?
Globals on levert in een slecht geschreven script. Het niet gebruiken van super globals een veiligheids risco. Daarom zeg ik ook altijd er aan wennen te gebruiken. En ik zie daarom geen reden om de globals on te gebruiken als je toch niet gebruikt.
Voorbeeld:
Login script
<?php
if($admin == 1){
echo 'Admin';
}
?>
Je wilt je website veilig hebben dus je maakt gebruik van sessies en die hele elende. Maar als ik als gebruiker de website als
Nu moet je er alleen nog op letten dat ook voor GET (Gegevens uit een url op vragen) en POST (Uit een formulier) ook superglobals bestaan. En dus op moet vragen respetivielijk via:
$_GET['var'] en $_POST['var'].
?
Onbekende gebruiker
13-09-2004 21:53
Ik heb het even goed tot me door laten dringen en ik denk dat ik het begrijp.
Als ik dus method='post' gebruik kan ik de parameter lezen met $_POST['var'] zonder dat ik globals op on heb staan.
idd, dat zie je helaas veel te weinig hier.
vragen :(
het enige dat je ziet is, kijk mijn site/script
het werkt niet? weten jullie wat het is?
?
Onbekende gebruiker
14-09-2004 01:44
Ja ik ben ook wel blij met de duidelijke antwoorden.
Het meest goede ervan is dat je gelijk leert om netjes te programmeren of scriptschrijven.
Dat kan je beter in je leerfase aanleren dan achteraf, dan loop je eigenlijk altijd een stap achterop.
Joop.
?
Onbekende gebruiker
14-09-2004 02:34
Voor de meelezende newby's onder ons wil ik nog het volgende opmerken :
Als je Super Globals gebruikt en je wilt er bv iets mee printen moet je de hele zooi wel tussen accolades gooien, b.v.
print "Thank you {$_POST['title']} for your response.<br/>";
Of nog beter, de variabelen buiten de quotes zetten :)
En in plaats van print echo gebruiken, vanwege snelheid enzo.
Print heeft geen enkel voordeel maar is wel langzamer.
Op deze manier dus:
<? echo 'Thank you '.$_POST['title'].' for your responce.<br />'; ?>
?
Onbekende gebruiker
14-09-2004 03:04
hmmmmz.....
Ik vond die accolades net zo mooi in m'n scriptje :-x