Problemen met $GLOBALS['xxxxxxx'] verschillende Windows omgevingen?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nkamp Kamp van de

nkamp Kamp van de

11/09/2018 22:27:34
Quote Anchor link
Hallo,

Ik ben nu op een klus gekomen en ik moet er wat bij in bouwen. Dit staat op een Windows server waarbij Apache draait met een Oracle XE database.
Wanneer ik de applicatie start op der server middels http://<server naame>/<applicatie naam> werkt het.

Dus dat betekent ook, wat volgens mij de anderen ook doen, dat er ontwikkeld moet worden op de server. Dit vind ik minder.
Daarom dacht ik, ik installeer XAMPP op mijn bedrijfs laptop en plaats de front-end in htdocs. Zorg dat er connectie komt middels php_oci8 (PHP 5.6.x wordt hier nog gebruikt) en dan kan ik op mijn eigen omgeving ontwikkelen zonder verder last te hebben van collega's.

De connectie werkt ed. en ik kan de applicatie starten via http://localhost/<;applicatie_naam>

Waar ik op vastloop zijn $GLOBALS, bv. ik krijg dan de melding index ... $GLOBALS['current_database_connection'] does not exist....

Hoe kan dit nu? Worden $GLOBALS nog op een andere GLOBALE (de naam zegt het al) gedefinieerd? Daar bedoel ik mee buiten de applicatie.
Waarom struikelt de applicatie niet als ik deze vanaf de server start en wel bij mijn localhost?


Nico
 
PHP hulp

PHP hulp

22/09/2018 02:25:00
 
Ben van Velzen

Ben van Velzen

12/09/2018 00:24:40
Quote Anchor link
Zonder de configuratie van de server te kennen is daar niets over te zeggen. Je kunt een hoop definieren via standaard startscripts e.d.

Wat wij op kantoor gewoon doen is iedereen een eigen omgeving geven op een centrale server, met een bekende configuratie. Anders krijg je vroeg of laat gegarandeerd gezeik met bugs die geintroduceerd worden omdat men de configuratie op zijn eigen machine niet op orde heeft.
 
Rob Doemaarwat

Rob Doemaarwat

12/09/2018 01:23:21
Quote Anchor link
Staan er geen script bestanden boven die htdocs map?
 
Yoop Overmaat

Yoop Overmaat

12/09/2018 09:35:08
Quote Anchor link
Moest even denken want het is al een tijdje geleden dat ik een xampp op een windowsversie geinstalleerd heb.
Indien geinstalleerd op een C:\windows zijn alle scripts geplaatst in C:\xampp\htdocs zonder problemen benaderbaar.
U heeft of een gruwelijke fout in de php config file te vinden onder, C:\xampp\php.ini, zitten.
Afhankelijk van de windows/xampp versie kan deez file ook onder C:\xampp\etc\php\php.ini te vinden zijn.
Het wel of niet benaderbaar van de xampp server via een extern/intern adres is te vinden onder,
C:\xampp\apache\conf\httpd.conf.
Verander de laatse regel in dit script ServerName: <ipadres>; en open de poort in de firewall. ->start-> configuration-> network -> enzovoorts.

Wat ik wel vreemd vind is dat u gebruik maakt van een $GLOBALS om een connectie tot een XE Oracle database tot stand te brengen.
$GLOBALS werken na definieering serverwijd maar zijn hier niet voor bedoeld. Dus een wijziging hier in zou niet verkeerd zijn qua opbouw en structuur.

Het standaardverhaal qua van het onder php een database connectie tot stand brengen wijkt af.
Link: https://secure.php.net/manual/en/function.oci-connect.php
Gewijzigd op 12/09/2018 09:41:29 door Yoop Overmaat
 
Nkamp Kamp van de

nkamp Kamp van de

12/09/2018 10:09:49
Quote Anchor link
Niet dat ik mij er voor wil verontschuldigen, het is een bestaande applicatie die ik nu ook voor het eerst zie. Maakt verder niet uit, waar ik mee wil zeggen er is misschien van alles op aan te merken waarom het zo gedaan is, maar het is er nu een maal en daar moet ik het mee doen. Dit herschrijf je niet in een middag eventjes.

Ik heb wel een verschil gevonden in de php.ini. Op de server, waar het dus werkt staat register_globals=On,
Bij mijn XAMPP staat deze op off. Nu probeer ik hem op On te zetten maar dan start Apache niet meer op.

Ik ga even verder met zoeken, maar zou dit er mee te maken kunnen hebben? Het is een interne applicatie, wat gewoon volgens mij uit de losse pols bedacht is..., maar inmiddels toch al wat stakeholders kent!

******************* EDIT *******************:
Ik denk dat ik het gevonden heb, zeker na de opmerking "zonder configuratie kunnen we niet helpen". Omdat ik nog niet zo met dit fenomeen bekend ben heb ik er niet direct bij stil gestaan dat het ook nog in de configuratie zou kunnen zitten.

Maar ik lees nu net dat vanaf PHP 5.4 register_globals niet meer mogelijk is. Nu heb ik zojuist de PHP versie's expliciet gecontroleerd, ik dacht begrepen te hebben dat overal 5.6 gebruikt werd, maar dat is niet zo.
Mijn XAMPP heeft versie 5.6.30. Op de server staat nog versie 5.2.6 en als ik het goed begrijp werkt 'register_globals' nog wel mee.

Dan is het hiermee verklaarbaar dat het op de server wel werkt en niet op mijn localhost.

Nu bestaat er geloof ik wel even een 'workaround' om dit voor nu werkend te maken op mijn localhost. Vervolgens maak ik mijn wijzigingen en plaats die op de dev-server om verder te testen.
Gewijzigd op 12/09/2018 10:34:24 door nkamp Kamp van de
 
Yoop Overmaat

Yoop Overmaat

12/09/2018 11:24:22
Quote Anchor link
Correct.
Dat is de ellende van een niet standaard php_ico8 versie onder xampp geinstalleerd op een windowsversie.
Als de Apache server het niet slikt is het, heb er geen zin aan, bekijk het maar.
Een workaround kan maar dat wordt kunst -en vliegwerk, de uitkomst van dit probeersel zeer onzeker.
Geen idee hoe of je dit op moet lossen?
Gewijzigd op 12/09/2018 11:28:50 door Yoop Overmaat
 
- Ariën -
Beheerder

- Ariën -

12/09/2018 11:44:17
Quote Anchor link
Oef... PHP 5.2.6
Snel (laten) updaten..
Gewijzigd op 12/09/2018 11:44:43 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

12/09/2018 16:51:31
Quote Anchor link
@nkamp, ik denk dat het beste wat je kunt doen is aangeven dat de applicatie dermate verouderd is dat er sterk overwogen zou moeten worden om deze opnieuw te bouwen, desnoods na enige reverse engineering. register_globals aanzetten lost dan misschien op dit moment wel de directe problemen op, maar introduceert ook een heleboel nieuwe.

Er is een reden waarom register_globals is uitgefaseerd en verwijderd uit PHP. Ik denk dan ook dat het beter is om je energie te steken in iets wat geschreven is met recentere ontwerpcriteria dan om hier iets nieuws tegenaan te metselen.

Dan heb je het over "ontwikkelen op de server". Ik hoop voor jou en je bedrijf dat dit inaccuraat is en dat je middels een versioningsysteem hier wijzigingen in aanbrengt. Of dat je op zijn minst een procedure hebt voor het wijzigen van code die niet onderworpen is aan versiebeheer, anders is het gewoon een kwestie van tijd voordat deze applicatie definitief om zeep wordt geholpen.

Als deze applicatie op enige manier kritisch is voor jouw bedrijf of die van iemand anders, dan zou ik heel snel gaan investeren in een strategie om dit ding ergens anders onder te brengen in een vorm die wat meer levensvatbaar is dan de huidige opzet.
Gewijzigd op 12/09/2018 16:52:52 door Thomas van den Heuvel
 
Nkamp Kamp van de

nkamp Kamp van de

12/09/2018 21:30:02
Quote Anchor link
Ik begrijp precies wat je bedoeld Thomas. Maar helaas werkt het niet zo bij 'grote concerns'. Dit komt met fusie's mee, had al lang dit, had al lang dat, had al lang uitgefaseerd moeten zijn, etc, etc, etc.

Of zelfs, nu niet, er is al nieuwbouw gestart door een partij/eigen organisatie maar laat nog op zich wachten of komt zelfs nooit af... etc. etc. Ik heb het allemaal al voorbij zien komen en ik raak er niet meer van in de war. En ze weten hetzelf ook, als zo'n 'slagschip' aan het varen is dan kun je het niet zo maar van de koers laten veranderen als het om de 'huidige' centen gaat, de 'rest' zien we later wel!

Ik ben zelf voor nu terug geschakeld op 5.2.6, en was een leer momentje. Ik heb nog niet alles kunnen testen, maar het lijkt nu te werken en kan ik nu doen wat mij gevraagd is, althans het op deze manier werken vind ik stukken plezieriger voor mijzelf.

Ik liep nog wel tegen een dingetje aan. Blijkbaar zat er in deze legacy XAMPP versie ook nog een PHP.ini onder Apache en daar moest je ook de php_oci8.dll activeren!
 
- Ariën -
Beheerder

- Ariën -

12/09/2018 21:46:19
Quote Anchor link
Vergeet niet dat PHP 5.2.6 veel functies mist die script van tegenwoordig gebruiken. Laat ik nog niet eens wat gezegd hebben over de nodige veiligheidslekken!!!!!
Zover downgraden is NOOIT de oplossing.
Gewijzigd op 12/09/2018 21:46:32 door - Ariën -
 



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.