Globals vervangen in een PHP applicatie
Ik ben geen programmeur maar eindverantwoordelijke voor de applicatie. Ik wil wel graag meer weten over de achtergrond van PHP en de ontwikkeling hiervan om hierover goede beslissingen te kunnen nemen. Graag zou ik weten (in leken taal):
- wat is een Global?
- waar worden deze voor gebruikt?
- zijn deze (eenvoudig) te vervangen in de applicatie? Zo ja, op welke wijze?
Tevens ben ik op zoek naar een zeer ervaren PHP (applicatie) specialist die de code van onze applicatie kan bekijken (tegen vergoeding)en hiervoor een advies uitbrengt ter verbetering. Voelt iemand zich aangesproken of heeft iemand tips.
Vast hartelijk dank voor jullie reacties.
Superglobals, globals in een function... of?
Toevoeging op 02/05/2014 17:33:59:
Hoe weet je dat de globals niet meer werken?
Foutmelding?
Ik weet ook niet of ze niet meer werken want volgens onze programmeur kunnen we de PHP versie niet updaten op onze server omdat dan de applicatie niet meer werkt vanwege de Globals.
Dan lijkt mij dat die programmeur iets meer uitleg moet geven.
Helemaal eens maar door mijn vragen hier op het forum probeer ik het 'rookgordijn' wat hij creert met zijn antwoorden, te doorgronden.
Geef anders eens een stukje code waarvan die programmeur weet dat dat niet meer werkt.
Ik zal as. maandag nog eens concreter vragen welke Globals volgens hem echt niet meer werken en te proberen me door het rookgordijn niet te laten misleiden.
http://www.php.net/manual/en/ini.core.php#ini.register-globals
http://www.php.net/manual/en/security.globals.php
Het betekend dat $_REQUEST['boegaboe'] ook als $boegaboe beschikbaar is. De waarde van $_REQUEST['boegaboe'] komt uit een van de $_SESSION, $_SERVER, $_POST, $_ENV, $_GET, en $_COOKIE super globals. Welke wordt bepaald door de http://www.php.net/manual/en/ini.core.php#ini.variables-order configuratie.
Er zal uitgezocht moeten worden welke naar-de-global-scope-geïmporteerde-super-globals vervangen moeten worden door de niet geïmporteerde versie.
Alle url's ($_GET) en HTML form's ($_GET en $_POST, hangt van method="deze waarde hier" af) zullen bestudeerd moeten worden om zo te kunnen bepalen welke variabele dat zijn. Ook moet er bestudeerd worden welke variabele uit $_SESSION zouden kunnen komen. Wat betekend dat alle andere scripts gecontroleerd moeten worden of ze een sessie variabele opslaan, via $_SESSION of http://nl1.php.net/manual/en/function.session-register.php
Gewijzigd op 02/05/2014 18:01:45 door Dos Moonen
Dank voor je reactie. Echter als niet programmeur begrijp ik helaas niet veel van wat je schrijft. Wat doet een Register Global? Als ik een beetje begrijp van wat je schrijft kunnen deze vervangen worden maar moet je de hele code hierop controleren?
Wat ik me dan afvraag... je hebt een programmeur in dienst... maar je komt hier om antwoorden vragen. Waarom stel je de vragen niet aan de programmeur?
Frank Luken op 02/05/2014 18:02:14:
Wat doet een Register Global?
register_globals was een feature die veel dingen makkelijker maakten. Wat het vooral makkelijk maakte was om erg slechte, erg onveilige code te schrijven.
Frank Luken op 02/05/2014 18:02:14:
Als ik een beetje begrijp van wat je schrijft kunnen deze vervangen worden maar moet je de hele code hierop controleren?
Dat klopt. Het moet door iemand gedaan worden die begrijpt wat hij doet.
Duidelijk. Behalve dat het slechte en onveilige code oplevert, werken Register Globals wel in de recentste PHP versies?