In de PHP applicatie die wij door de jaren heen hebben ontwikkeld, wordt gebruik gemaakt van Globals. Nu schijnen deze in PHP 5.4 niet meer te werken. Hierdoor draaien we nog steeds op een oude PHP versie met bijbehorende risico's.
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.
Dat is juist mijn probleem. Deze informatie komt van onze programmeur. Ik vermoed (na googlen) dat het om Registry Globals gaat maar dat weet ik niet zeker. Zijn er Globals die in de recente versies van PHP niet meer ondersteund worden?
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.
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.
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
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?
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.