Beste allemaal,

Van een website heb ik deze 2 stukjes code gehaald:


curl -X POST https://192.168.1.2/api/auth/login -H "Content-Type: application/json" --insecure -d '{"username":"YOURUSER", "password":"YOURPASS"}' -c /tmp/cookies.txt 2>&1 -k --silent > /dev/null


en:


curl "https://192.168.1.2/proxy/protect/api/bootstrap" -H 'Cookie: TOKEN=' --cookie /tmp/cookies.txt --cookie-jar /tmp/cookies.txt -H 'Upgrade-Insecure-Requests: 1' 2>&1 -k --silent


Dit lijkt me op CURL code die je op de een of andere manier in een soort "Command line" moet uitvoeren?
Ik zou dit echter graag in PHP doen, maar ik weet helaas niet hoe ik dit moet "omzetten" zodat ik er standaard "PHP CURL" van kan maken.

Normaal gebruik ik daar bijvoorbeeld iets zoals onderstaand voor:


<?php
$handle = curl_init();
 
$url = "https://localhost/curl/theForm.php";
 
// Array with the fields names and values.
// The field names should match the field names in the form.
 
$postData = array(
  'firstName' => 'Lady',
  'lastName'  => 'Gaga',
  'submit'    => 'ok'
);
 
curl_setopt_array($handle,
  array(
     CURLOPT_URL => $url,
     // Enable the post response.
    CURLOPT_POST       => true,
    // The data to transfer with the response.
    CURLOPT_POSTFIELDS => $postData,
    CURLOPT_RETURNTRANSFER     => true,
  )
);
 
$data = curl_exec($handle);
 
curl_close($handle);
 
echo $data;


Weet iemand hoe ik dit moet aanpakken?

Alvast vriendelijk bedankt!

Grtz,

Sjef
Probeer eens een absoluut pad op te geven voor je Cookiejar.
Nu word het relatief aan het uitvoerpad opgeslagen (waarschijnlijk je index.php).

Als je een absoluut pad gebruikt (bijv. /tmp/cookiejar.txt) heb je meer controle over de permissies op die directory en kun je controleren of PHP daar mag schrijven.

Houd ook rekening met het volgende:
The name of a file to save all internal cookies to when the handle is closed, e.g. after a call to curl_close.

https://www.php.net/manual/en/function.curl-setopt.php

Bedankt voor je reactie.

Ik heb ook relatieve paden geprobeerd. Maar ook dan zie ik geen cookies...
Of moet ik écht in die /volume1/www/ (etc...) directory's gaan zitten rommelen? (dus met Putty op de NAS inloggen enzo?)

Wat betreft de curl_close: die doe ik netjes helemaal achteraan, dus dat zou geen probleem moeten zijn...
Ik zou inderdaad eens proberen om het absolute pad op te geven (zoiets als /volume1/www/..../cookiejar.txt dus).
Het klinkt alsof er óf geen cookies zijn om weg te schrijven óf PHP niet de benodigde permissies heeft om het in die folder te zetten óf het bestand ergens komt waar je het niet verwacht.

In het geval van een permissie probleem verwacht ik wel een error of warning in het PHP log, staat daar wellicht iets nuttigs in?

Hmzzzz, ik zie nu dat bij een andere (maar soortgelijke) aanroep alles omtrent het "cookie-verhaal" wél goed gaat...
De cookies worden gewoon netjes in dezelfde directory opgeslagen.

Het lijkt erop dat er dus bij de aanroep iets mis gaat... Ik gebruik een verkeerde URL, of weet ik wat.
Maar het is denk ik niet iets dat hier op dit forum kan worden opgelost, maar meer op het forum van de fabrikant van het apparaat waarop in probeer in te loggen...

Thanks voor de hulp!

Mvg,

Sjef
Je kan met cURL via de commandline eens proberen of je überhaupt cookies terugkrijgt.
Als je liever een grafische UI hebt kan ik Postman van harte aanraden.
Succes!

Reageren