php curl post versturen
Ik ben een systeem aan het maken dat ik elke dag een pushnotificatie krijg van mijn rooster.
Ik had het al een tijd werkend tot dit schooljaar omdat we een nieuw portaal hebben.
Dit is een deel van de niet meer werkende code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://school.nl/index.php?p=index&actie=login");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"user=LEERLINGNUMMER&pass=WACHTWOORD&w=l");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
if (strpos($output, 'Ingelogd als') !== false) {
// login gelukt
} else {
die('Verkeerde login gegevens.');
}
?>
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://school.nl/index.php?p=index&actie=login");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"user=LEERLINGNUMMER&pass=WACHTWOORD&w=l");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
if (strpos($output, 'Ingelogd als') !== false) {
// login gelukt
} else {
die('Verkeerde login gegevens.');
}
?>
Het portaal is niet helemaal nieuw maar zeer aangepast.
om in te loggen moet je een post sturen naar school.nl?actie=login met de value's username,password en w. Zelfde als eerst
Normaal kreeg je op de homepage direct je rooster van de dag te zien, maar die staat nu op school.nl?actie=rooster
Dus de grote vraag is, is het mogelijk om eerste in te loggen met ?actie=login en vervolgens ingelogd blijven en het rooster opvragen met ?actie=rooster als GET en als post d=today. Ik krijg het niet voorelkaar, misschien hebben jullie een idee.
Groetjes.
Gewijzigd op 05/09/2018 22:42:37 door Jesper S
Het lijkt mij eerder raadzamer om eens uit te zoeken voor requests er plaatsvinden voor we wat nuttigs kunnen zeggen. De developer-tool van je browser kan hierbij goed helpen.
Gewijzigd op 05/09/2018 22:54:07 door - Ariën -
s. Mogelijk moet je dan (o.a. in cURL) door wat meer hoepels springen.
Ben je toevallig ook recent overgestapt van http naar httphttp://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/
Maar het ligt eraan waar het fout gaat.
Gewijzigd op 05/09/2018 23:23:25 door - Ariën -
Over die cookies, dat ga in eens proberen. Er word inderdaad een PHPSESSiD cookie aangemaakt .
Toevoeging op 06/09/2018 15:12:40:
Ik heb nu een curl script die mij de cookie PHPSESSID geeft, de content die die function terug geeft is: PHPSESSID=tpvo5npf1r51o4fddl2cd6uje7; . Ik zal even verder prutsen.
Dat zou het wel stukken makkelijker maken.
Als je de Curl cookie jar gebruikt hoef je je hier geen zorgen om te maken (leuk om te weten, maar niet nodig). Als je bij de volgende Curl call gewoon weer hetzelfde cookie bestand meegeeft, geeft Curl de cooies ook weer mee (net zoals een gewone browser).
- Ariën - op 07/09/2018 16:30:38:
Hebben ze geen API of iets dergelijks? ;-)
Dat zou het wel stukken makkelijker maken.
Dat zou het wel stukken makkelijker maken.
Haha, nee helaas niet.
Toevoeging op 08/09/2018 12:12:51:
Het is gelukt, iedereen bedankt voor de reacties.