Ik probeer met cUrl in PHP een login pagina te omzeilen zodat ik de data erna kan fetchen.
Het gaat om deze pagina:
https://login.hro.nl/v1/login
Het probleem is dat er een key wordt gegenereerd op de pagina en waarschijnlijk tijdens het inloggen wordt gecheckt.
Maar als ik cUrl eerst de pagina laat ophalen, de key fetch en dan krijg ik deze error: "You cannot attempt to re-submit a form that has been submitted already."
Ik heb nu dit:
Hoe kan ik deze pagina toch submitten als dezelfde sessie?
Het gaat om deze pagina:
https://login.hro.nl/v1/login
Het probleem is dat er een key wordt gegenereerd op de pagina en waarschijnlijk tijdens het inloggen wordt gecheckt.
Maar als ik cUrl eerst de pagina laat ophalen, de key fetch en dan krijg ik deze error: "You cannot attempt to re-submit a form that has been submitted already."
Ik heb nu dit:
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
| $url = 'https://login.hro.nl/v1/login'; $curl = curl_init(); curl_setopt ($curl, CURLOPT_URL, $url); curl_setopt ($curl, CURLOPT_TIMEOUT, 10); curl_setopt ($curl, CURLOPT_USERAGENT, sprintf("Mozilla/%d.0",rand(4,5))); curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($curl, CURLOPT_POST, 0); curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, 0); $html = curl_exec ($curl); preg_match('/name="lt" value="(.*?)"/is', $html, $m); $match = $m[1]; echo $match; curl_setopt ($curl, CURLOPT_URL, $url); curl_setopt ($curl, CURLOPT_TIMEOUT, 10); curl_setopt ($curl, CURLOPT_USERAGENT, sprintf("Mozilla/%d.0",rand(4,5))); curl_setopt ($curl, CURLOPT_HEADER, 0); curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt ($curl, CURLOPT_POST, 1); curl_setopt ($curl, CURLOPT_POSTFIELDS, 'username=' . $Username . '&password=' . $Password . '&submit=login&_eventId=submit&credentialsType=ldap<=' . $match); $html = curl_exec ($curl); curl_close ($curl); echo htmlspecialchars($html); |
Hoe kan ik deze pagina toch submitten als dezelfde sessie?