Algemeen forum ontrent de ontwikkelng, design en hosting van weergerelateerde websites (dit laatste om een beetje on topic te blijven)
Door mvwissen
#46055
Beste weeramateur collegae,

Hieronder een probleembeschrijving waar mogelijk alle gebruikers van het YR.NO forecast script YR_XML.PHP te maken krijgen.

Na een software upgrade afgelopen vrijdag van mijn hosting provider StartHosting naar PHP versie 5.3.2. werkt het YR_XML.PHP script niet meer.

Zie http://www.weerstation-gouda-bloemendaal.nl/yr_xml.php

Er wordt een leeg scherm weergegeven met oa laatste update 30.11.1999 @ 00:00

Naar mijn idee ligt de oorzaak in de functie xml2ary.
Deze functie zet de xml file (opnieuw binnen gehaald of vanuit cache) om naar een array in de variabele $xml.
Vanuit deze variabele wordt normaal gesproken de gedetailleerde weersgegevens opgebouwd.

Echter de $xml variabele blijft leeg waardoor het script ook weergeeft (0 forecast available). Dit is te zien als je kijk naar de code middels 'bron weergeven'.

Ik heb een testscript aangemaakt die de lege array laat zien. Kijk naar brongegevens van pagina: http://www.weerstation-gouda-bloemendaa ... ml2ary.php

Mijn vraag is nu:
1. heeft iemand yr-xml.php al draaien met PHP versie 5.3.2? En dezelfde problemen ervaren of niet?
2. heeft iemand een oplossing voor dit probleem?

Ik hoop dat we met elkaar dit probleem kunnen oplossen. Veel bezoekers van mij weerstation kijken juist naar de yr.no weersvoorspelling van hun woonplaats via een klik op het YR meteogram van Gouda op http://www.weerstation-gouda-bloemendaa ... chting.php

Ik hoor graag van jullie!

Groet, Michel
www.meteo-gouda.nl
www.weerstation-gouda-bloemendaal.nl
Bijlagen
yr_xml_xml2ary.jpg
yr_xml_xml2ary.jpg (43.65 KiB) 3053 keer bekeken
Door Snarf2000
#46056
Hoi Michel.

Daar zitten we niet op te wachten.
Mijn Provider draait met 5.2.17
Dus ik heb er nog geen last van.

Ik lees dit nu vlak voor het slapen gaan, maar morgen zal ik testen op USBwebserver.
De confuguratie hiervan is

USBWebserver 8.5
PHP Version 5.3.9
•Apache 2.2.21
•PhpMyAdmin 3.4.9.0
•MySQL 5.5

Mooie omgeving om te testen.
Maar dat wordt in de avond pas.

Maar misschien kunnen anderen hier ook mee aan de slag.

Frans
Door tjabine
#46060
Ik draai hier bij Antagonist versie 5.3.6 zonder probleem.
Ik weet alleen niet of we de zelfde versie van YR.NO gebruiken.
Bij deze mijne link
Dus ik vraag me erg af of het wel aan de php versie licht?

Gr Ron.
#46093
mvwissen schrijft:
Beste weeramateur collegae,

Hieronder een probleembeschrijving waar mogelijk alle gebruikers van het YR.NO forecast script YR_XML.PHP te maken krijgen.

Na een software upgrade afgelopen vrijdag van mijn hosting provider StartHosting naar PHP versie 5.3.2. werkt het YR_XML.PHP script niet meer.

Zie http://www.weerstation-gouda-bloemendaal.nl/yr_xml.php

Er wordt een leeg scherm weergegeven met oa laatste update 30.11.1999 @ 00:00

Naar mijn idee ligt de oorzaak in de functie xml2ary.
Deze functie zet de xml file (opnieuw binnen gehaald of vanuit cache) om naar een array in de variabele $xml.
Vanuit deze variabele wordt normaal gesproken de gedetailleerde weersgegevens opgebouwd.

Echter de $xml variabele blijft leeg waardoor het script ook weergeeft (0 forecast available). Dit is te zien als je kijk naar de code middels 'bron weergeven'.

Ik heb een testscript aangemaakt die de lege array laat zien. Kijk naar brongegevens van pagina: http://www.weerstation-gouda-bloemendaa ... ml2ary.php

Mijn vraag is nu:
1. heeft iemand yr-xml.php al draaien met PHP versie 5.3.2? En dezelfde problemen ervaren of niet?
2. heeft iemand een oplossing voor dit probleem?

Ik hoop dat we met elkaar dit probleem kunnen oplossen. Veel bezoekers van mij weerstation kijken juist naar de yr.no weersvoorspelling van hun woonplaats via een klik op het YR meteogram van Gouda op http://www.weerstation-gouda-bloemendaa ... chting.php

Ik hoor graag van jullie!

Groet, Michel
www.meteo-gouda.nl
www.weerstation-gouda-bloemendaal.nl
Als je vorige PHP versie ook PHP 5 was, dan is deze nieuwe 'downwards compitable'. Oftewel de code op de oude versie, zal ook bij de nieuwe versie werken.

Waarschijnlijk heeft het hosting bedrijf met de upgrade ook de beveiliging aangescherpt. Omdat de xml niet gevuld wordt, mag je waarschijnlijk niet meer vanaf externe sites data includen. Ook de XML MOS verwachtingen op je site zijn leeg, daarom vermoed ik dat deze aangescherpte beveiliging de oorzaak is.

Het probleem zit dus niet in de xml2ary () functie, maar in de file_get_contents () functie.

Ik zou dat even navragen bij je hosting bedrijf.

Gr,
Luc
Door mvwissen
#46275
Beste collegae,

Goed om te horen dat het script wel blijkt te werken op PHP 5.3
Des te vreemder is het dat het bij mij na een PHP upgrade bij starthosting niet meer werkt.

Ik had de verwachting dat de suggestie van Luc wel eens aan de orde zou kunnen zijn.

Dat het probleem zou liggen aan de functie file_get_contents vanwege beveiliginsredenen, echter:

Ik heb het script aangepast om hier een test mee te doen.
Variabele test toegevoegd.
$test=(file_get_contents($qacacheName));
print "<-- begin test-->";
print_r($test);
print "<-- eind test-->";
Zie ook de afbeelding.
Volgens mij wordt de XML gewoon binnen gehaald.
Dit kan je zien als je de bron code weergeeft op
http://www.weerstation-gouda-bloemendaa ... ltest2.php
De xml gegevens staat tussen de regels : "<-- begin test-->" en "<-- eind test-->".

Echter het plaatsen van de xml in de variabele $xml en het weergeven daarvan dmv
$xml=xml2ary($html);
//$xml = $xml['weatherdata'][_c];
print "<-- begin xml-->";
print_r($xml);
print "<-- eind xml-->";
blijkt toch niet te werken. Ook dit zie je bij de weergeven bron code. Daar wordt weergegeven:
<-- begin xml-->Array
(
)
<-- eind xml-->

Ik hoop dat jullie hier naar willen kijken en mij op weg willen helpen. Ik snap helemaal niet wat er aan de hand is.

Alvast bedankt voor jullie hulp!

Groet, Michel
Bijlagen
file_get_content.jpg
file_get_content.jpg (26.41 KiB) 3053 keer bekeken
Door mvwissen
#46281
Beste weer collegae,

Ik ben op zoek gegaan naar andere weerstations die ook het yr_xml script gebruiken.
Ik ben terecht gekomen op: http://www.meteowarten.nl/pages/vooruitzichten.php
Het probleem blijkt ook voor te komen bij dit weerstation.
Het vreemde is dat voor sommige woonplaatsen zoals Warten het script wel werkt.
Maar voor bijvoorbeeld Gouda en Amsterdam niet.

Geen flauw idee hoe dit nou kan. Zou het aan de xml file zelf kunnen liggen?

Groet, Michel
Door wsEpe
#46284
Ik gebruik het script zelf niet, maar als ik het nu goed begrijp, verander je nu 2 dingen tegelijk om iets te testen?
$test werkt goed en dan ga je $html in een xml2ary stoppen. Als je nu de $test in een xml2ary stopt, werkt het dan wel? En wat zit er in $html? Deze lijkt nl. nu leeg. En omdat xml2ary een function is, dan moet je uitkijken, dat niet niet teveel aan het script veranderd. Een function gaat soms raar om met variabelen, als deze niet niet 'global' gemaakt zijn.
Door mvwissen
#46286
Beste wsEPe,

je hebt helemaal gelijk.
Ik heb het originele script weer gepakt en alleen een testje toegevoegd om te checken of de file_get_content werkt.

En dit werkt de xml wordt binnen gehaald in en $test gezet.

Zie bron code op: http://www.weerstation-gouda-bloemendaa ... etfile.php

Ik doe het script als bestand bijvoegen.
Ik hoop dat jullie hiermee de info hebben om mij verder te helpen.

Groet, Michel