Ik wil graag een HTTP post commando aanmaken - dat het submitten van een form moet simuleren. Maar ik loop vast.

Een gewoon Location commando gaat goed:
header("Location: mytarget.php");


Maar als ik in plaats van Location POST gebruik kom ik er niet uit.

Als ik
header("POST /_ps16016/triple/login1.php HTTP/1.1\r\nHost: localhost");

doe krijg ik een "Header may not contain more than a single header, new line detected" warning.

Maar als ik
header("POST /_ps16016/triple/login1.php HTTP/1.1 Host: localhost");

doe krijg ik een wit scherm en volgens het headers_sent() is er niets verstuurd.

Omdat dit voor een library is kan ik cUrl niet gebruiken.

Ik heb op internet voorbeelden proberen te vinden, maar het enige dat ik vind met http post zijn voorbeelden die file_get_contents() gebruiken om de inhoud van het doel op te zuigen. Maar ik wil er juist heen.

Uiteindelijk moeten er uiteraard ook nog argumenten mee gestuurd worden. Ik probeer nu eerst het absolute minimum aan de praat te krijgen.

Heeft iemand suggesties?
Je kunt geen POST doen via headers. Je omschrijft heel mooi wat er niet lukt, maar wat is het doel?
Het doel is om van applicatie A naar applicatie B te gaan (op dezelfde server) en daarbij meteen in te loggen met de juiste gegevens. Om veiligheidsreden is GET daarbij minder gewenst.
Voor een library? en library is gewoon een reeks PHP classen die bepaalde taken voor je kunnen uitvoeren. Bedoel je een API? Zoals Ben al aangeeft zou je beter moeten omschrijven wat je wilt maken.
Een library die voor alle gebruikers van bepaalde opensource software beschikbaar is.
POST is net zo onveilig als GET. Met als enigste verschil dat je GET variabelen in de urlbalk van je browser kunt ingeven. Verder is POST inderdaad wel bedoeld om data aan te leveren van browser naar server.

Wil je veiligheid denk dan aan een API-key en aan SSL. Een API key kun je laten aanmaken door een ingelogde gebruiker (met voldoende rechten) en is gewoon een random reeks tekens welke je opslaat in de database. met de API geef je vervolgens deze reeks tekens door als identificatie.

[size=xsmall]Toevoeging op 18/06/2016 14:35:10:[/size]

Bijv: https://api.mijndomein.nl/v1.0/get/some/information?apikey=<<mijn_persoonlijke_apikey>>;
Zoals ik al opmerkte is het bedoeld voor een library die door veel mensen (gebruikers van een bepaald pakket) op hun server wordt gezet. Dat betekent dat ik met de software geen eisen aan de configuratie wil stellen. Daarom geen cUrl en zeker geen SSL en een api subdomein.

Maar misschien kan ik wel wat met sleutels bedenken.

Bedankt voor jullie input.

Reageren