globals off or on ?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

13/09/2004 21:33:00
Quote Anchor link
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 ?

Joop.
 
PHP hulp

PHP hulp

24/01/2025 22:49:50
 
Eris -

Eris -

13/09/2004 21:41:00
Quote Anchor link
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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?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

http//www.mijndomein.nl/index.php?admin=1 ben ik ook ingelogd.
Met Super Globals moet ik de gegevens op vragen doormiddel van:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if($_SESSION['admin'] == 1){
echo 'ingelogd';
}

?>

http//www.mijndomein.nl/index.php?admin=1
werkt nu niet meer.

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'].
Gewijzigd op 13/09/2004 21:44:00 door Eris -
 

13/09/2004 21:53:00
Quote Anchor link
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.

joop.
 
Eris -

Eris -

13/09/2004 23:07:00
Quote Anchor link
Jep
 
Bo az

Bo az

13/09/2004 23:11:00
Quote Anchor link
Mss wel stom dat ik hier op reageer, maar dit is dus zoals het hoort, een duidelijke vraag kan een duidelijk antwoord krijgen :)
 
Rick

Rick

13/09/2004 23:35:00
Quote Anchor link
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?
 

14/09/2004 01:44:00
Quote Anchor link
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.
 

14/09/2004 02:34:00
Quote Anchor link
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/>";

Doe je dat niet blijft het een drama :-).

Joop.
 
Rick

Rick

14/09/2004 02:47:00
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo 'Thank you '.$_POST['title'].' for your responce.<br />'; ?>
 

14/09/2004 03:04:00
Quote Anchor link
hmmmmz.....
Ik vond die accolades net zo mooi in m'n scriptje :-x


Joop.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.