XML file inlezen
- Ariën - op 23/12/2020 09:50:44:
Hoe ziet de output eruit?
zie mijn vorige bericht, had hem net aangepast ;-)
Zet je code eens tussen [*code*]hier je code[*/code*] maar dan zonder de sterretjes *.
Ik bedoel de normale output waar je tegenaan loopt. En dat is geen array.
- Ariën - op 23/12/2020 09:56:59:
Ik bedoel de normale output waar je tegenaan loopt. En dat is geen array.
met de curl versie?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Warning: Use of undefined constant q - assumed 'q' (this will throw an Error in a future version of PHP) in /var/www/vhosts/.nl/httpdocs/power/feed3.php on line 86
Warning: Use of undefined constant trim - assumed 'trim' (this will throw an Error in a future version of PHP) in /var/www/vhosts/.nl/httpdocs/power/feed3.php on line 35
Array
(
[body] =>
Redirecting
DEEP SEA ELECTRONICS LTD
Highfield House, Hunmanby Industrial Estate, Hunmanby, North Yorkshire YO14 0PH England
TELEPHONE +44 (0) 1723 890099 EMAIL [email protected]
Deep Sea Electronics 2020
Registered in England & Wales 01319649
VAT 3169 234 57
Terms & Conditions / Privacy
Environment: live (73), Version: v2.13.3
[headers] => Array
(
[0] => HTTP/1.1 302 Found
[Date] => Wed, 23 Dec 2020 08:51:50 GMT
[Server] => Apache
[Location] => /login.php
[Content-Length] => 2609
[Connection] => close
[X-Frame-Options] => DENY
[X-Content-Type-Options] => nosniff
[Content-Type] => Array
(
[0] => text/html
[charset] => UTF-8
)
[X-XSS-Protection] => Array
(
[1] => 1
[mode] => block
)
[Strict-Transport-Security] => Array
(
[max-age] => 3153600
[2] =>
)
)
)
Warning: file_get_contents(): Filename cannot be empty in /var/www/vhosts/.nl/httpdocs/power/feed3.php on line 94
XML-feed kan niet geladen worden:
Warning: Invalid argument supplied for foreach() in /var/www/vhosts/.nl/httpdocs/power/feed3.php on line 133
Warning: Use of undefined constant trim - assumed 'trim' (this will throw an Error in a future version of PHP) in /var/www/vhosts/.nl/httpdocs/power/feed3.php on line 35
Array
(
[body] =>
Redirecting
DEEP SEA ELECTRONICS LTD
Highfield House, Hunmanby Industrial Estate, Hunmanby, North Yorkshire YO14 0PH England
TELEPHONE +44 (0) 1723 890099 EMAIL [email protected]
Deep Sea Electronics 2020
Registered in England & Wales 01319649
VAT 3169 234 57
Terms & Conditions / Privacy
Environment: live (73), Version: v2.13.3
[headers] => Array
(
[0] => HTTP/1.1 302 Found
[Date] => Wed, 23 Dec 2020 08:51:50 GMT
[Server] => Apache
[Location] => /login.php
[Content-Length] => 2609
[Connection] => close
[X-Frame-Options] => DENY
[X-Content-Type-Options] => nosniff
[Content-Type] => Array
(
[0] => text/html
[charset] => UTF-8
)
[X-XSS-Protection] => Array
(
[1] => 1
[mode] => block
)
[Strict-Transport-Security] => Array
(
[max-age] => 3153600
[2] =>
)
)
)
Warning: file_get_contents(): Filename cannot be empty in /var/www/vhosts/.nl/httpdocs/power/feed3.php on line 94
XML-feed kan niet geladen worden:
Warning: Invalid argument supplied for foreach() in /var/www/vhosts/.nl/httpdocs/power/feed3.php on line 133
Gewijzigd op 23/12/2020 10:02:39 door Michael vanDijk
Ik denk dat het zinvoller is om uitleg bij de website-eigenaar te vragen.
Gewijzigd op 23/12/2020 10:07:46 door - Ariën -
in de browser werkt de link perfect.
daarom dat ik hele tijd aangeef dat het wellicht een idee is om de xml af te vangen op te slaan en dan pas te verwerken. wellicht dat ze het hebben geblokkeerd of iets dergelijks maar ik blijf denken dat het afvangen en opslaan van die xml de way to go is ;-) nou alleen nog bruikbare code hiervoor. alleen weet ik niet hoe ik dat bestand kan opslaan. file() al geprobeerd maar iets in die richting
Toevoeging op 23/12/2020 10:17:56:
dit is een voorbeeld link
create-report.php?type=events&gateway=130090F4C&module=6F25ED98&start=1607515931&end=1607520967&format=xml
dus hij maakt daarna een rapport en die geeft hij als download aan de browser.
Want eigenlijk ben ik echt benieuwd naar de rauwe uitvoer. Wat krijgt je dan wél binnen als uitvoer uit curl_exec(..), zonder XML-functies eroverheen?
Het lijkt erop dat het echt geen XML-pagina is. En de website eigenaar zou je waarschijnlijk meer moeten kunnen vertellen. Dit lijkt mij niets meer dan een beveiliging waarvan wij niet weten hoe we er overheen kunnen komen.
Mogelijk is het een IP-beveiliging die bij jou eigen privé internetaansluiting gewhitelist is, maar jouw server niet. Of je hebt te lang met je server proberen te connecten dat je op een blacklist staat. Maar het blijft koffiedik kijken.
Gewijzigd op 23/12/2020 10:22:41 door - Ariën -
- Ariën - op 23/12/2020 10:18:47:
Die contactgegevens in die [body], komen die overeen met wat er in het XML-bestand staat?
Want eigenlijk ben ik echt benieuwd naar de rauwe uitvoer. Wat krijgt je dan wél binnen als uitvoer uit curl_exec(..), zonder XML-functies eroverheen?
Het lijkt erop dat het echt geen XML-pagina is. En de website eigenaar zou je waarschijnlijk meer moeten kunnen vertellen. Dit lijkt mij niets meer dan een beveiliging waarvan wij niet weten hoe we er overheen kunnen komen.
Mogelijk is het een IP-beveiliging die bij jou eigen privé internetaansluiting gewhitelist is, maar jouw server niet. Of je hebt te lang met je server proberen te connecten dat je op een blacklist staat. Maar het blijft koffiedik kijken.
Want eigenlijk ben ik echt benieuwd naar de rauwe uitvoer. Wat krijgt je dan wél binnen als uitvoer uit curl_exec(..), zonder XML-functies eroverheen?
Het lijkt erop dat het echt geen XML-pagina is. En de website eigenaar zou je waarschijnlijk meer moeten kunnen vertellen. Dit lijkt mij niets meer dan een beveiliging waarvan wij niet weten hoe we er overheen kunnen komen.
Mogelijk is het een IP-beveiliging die bij jou eigen privé internetaansluiting gewhitelist is, maar jouw server niet. Of je hebt te lang met je server proberen te connecten dat je op een blacklist staat. Maar het blijft koffiedik kijken.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="UTF-8"?>
<reports>
<module>
<moduleInfo>
<generatedBy>Michael van Dijk</generatedBy>
<dateGenerated>15-12-2020 08:34:44 CET</dateGenerated>
<datesCovered>15-12-2020 08:14:52 CET tot 15-12-2020 08:24:52 CET</datesCovered>
<gatewayName>200-026 XASI</gatewayName>
<gatewayUSBID>13025867C090F4C</gatewayUSBID>
<moduleName>200-026 XASI</moduleName>
<moduleUSBID>6F25A5ED98</moduleUSBID>
</moduleInfo>
<row tijdstempel="15-12-2020 08:18:44 CET" generatorL2Stroom="52" generatorL3Stroom="52"/>
<row tijdstempel="15-12-2020 08:23:53 CET" generatorL2Stroom="59" generatorL3Stroom="59"/>
</module>
</reports>
<reports>
<module>
<moduleInfo>
<generatedBy>Michael van Dijk</generatedBy>
<dateGenerated>15-12-2020 08:34:44 CET</dateGenerated>
<datesCovered>15-12-2020 08:14:52 CET tot 15-12-2020 08:24:52 CET</datesCovered>
<gatewayName>200-026 XASI</gatewayName>
<gatewayUSBID>13025867C090F4C</gatewayUSBID>
<moduleName>200-026 XASI</moduleName>
<moduleUSBID>6F25A5ED98</moduleUSBID>
</moduleInfo>
<row tijdstempel="15-12-2020 08:18:44 CET" generatorL2Stroom="52" generatorL3Stroom="52"/>
<row tijdstempel="15-12-2020 08:23:53 CET" generatorL2Stroom="59" generatorL3Stroom="59"/>
</module>
</reports>
dit is de inhoud van het xml
mits ik hem download in de browser.
welke uitvoer bedoel je precies wat moet ik waar echooen dan ?
out put is HTTP/1.1 302 Found Date: Wed, 23 Dec 2020 09:36:57 GMT Server: Apache Location: /login.php Content-Length: 2609 Connection: close Content-Type: text/html; charset=UTF-8 X-Frame-Options: DENY X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff Strict-Transport-Security: max-age=3153600;
en doe ik de link aanpassen naar user_rss_feed.php dan werkt het perfect. dus het heeft toch echt met die download te maken
Gewijzigd op 23/12/2020 10:41:08 door Michael vanDijk
Gewijzigd op 23/12/2020 10:49:14 door - Ariën -
is er een makkelijke manier om hem gewoon op te slaan ? of de inhoud in de database te stoppen en dan te verwerken. ?
de website eigenaar werkt er niet aan mee daarom dat ik het op deze manier doe, en dat werkt tot nu toe perfect alle data kan ik uitlezen en mee spelen. alleen de data die met een xml download wordt aangeboden niet. daarom dat ik vast loop
Toevoeging op 23/12/2020 10:51:00:
- Ariën - op 23/12/2020 10:46:20:
En ik denk dat het een beveiliging is. Ik raad aan om de website eigenaar te vragen. Pas je URL-aanroep in CURL eens aan naar login.php? Zie je dan wat meer?
dan krijg ik de inlog pagina te zien.
maar als ik user_rss_feed.php doe waarvoor ik ook ingelogd moet zijn dan werkt het wel
Gewijzigd op 23/12/2020 10:51:53 door Michael vanDijk
Andere oplossingen zijn er niet als we geen inzicht hebben in waarom het niet lukt. Met cURL kan je wel POST-requests doen, maar zonder details over het inlogscherm kunnen we echt niks doen.
Gewijzigd op 23/12/2020 10:53:33 door - Ariën -
Hoort dat niet bij zo'n inlog waarbij via htpasswd zo'n harde popup van de browser komt?
Hier staat op de site van die club gewoon een inlogform.
Ik zou eens een curlscript proberen dat daarop de juiste gegevens post en dan kijken wat je aan headers terug krijgt. Zou met name naar cookie / sessioncookie headers kijken.
En daarna onder gebruikmaking van die cookies nog eens de xml opvragen.
---
kijk anders ook eens wat je browser allemaal meestuurt als je de xml ophaalt.
Ik vermoed dat het elders wél werkt omdat daar gewoonweg een andere inlogmethode gebruikt wordt.
Toevoeging op 24/12/2020 16:57:03:
ik heb eens een account aangemaakt.
na inloggen kijg je inderdaad een sessioncookie: PHPSESSID: "iets"
Daarnaast krijg je na elke pagina aanroep een cookie genaamd "auth" daarin zit een value: "heel erg lange string".
Na elke aanroep verandert de value van dit cookie.
--
ik zou gaan voor een curl-post naar /account/login met als load:
password-remember: 0
email: jouw@email
password: jouwpassword
Daar komt dan een response op met een session cookie en genoemd auth cookie.
Die zou ik vervolgens meegeven met een curl-aanroep om de xml te downloaden.