Toon posts:

Met variabele in URL naar form posten op andere pagina ?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb op een pagina een login formulier met de volgende inputs in een form:

- username
- password

Ik heb een knop die "submit" heet, en hiermee POST ik naar dezelfde pagina als waar ik me op bevind, index.php, waarna ik inlog.

Nu heb ik nog een applicatie (2) waar als de gebruiker ingelogd is, ik hem kan doorsturen naar een URL en hierbij zijn login-details mee laten sturen.

Ik doe dit natuurlijk wel via HTTPS, allemaal wel veilig dus, maak je niet druk.

Ik zou graag de gebruiker. zodra deze in applicatie 2 ingelogd is, direct willen laten inloggen door zijn details te "POSTEN" in het formulier op de index.php van mijn login voor Applicatie (1)

OK, het vervelende is dat ik gebruik moet maken van een soort van template die ik met een META Refresh laat doorverwijzen naar Applicatie (2)

Je krijgt dus iets van:

code:
1
<HTML><HEAD><META HTTP-EQUIV="Refresh" CONTENT="0; URL=https://domein.tld"></HEAD></HTML>


OK, maar nu wil ik op deze manier direct naar de form posten wat denk ik wel mogelijk moet zijn.

Normaal geef je in de url iets mee van:

code:
1
index.php?username=${username}&password=${password}


Maar dit lijkt me niet mogelijk omdat ik naar een form wil posten.

Moet ik hier een stukje code voor schrijven dat de uiteindelijk "login" automatiseert in plaats van dat je het allemaal in hoeft te typen ? Ik denk dus in de richting van code die deze handelingen automatiseert, of kopieer ik de form gewoon van de index.php, plaats deze in de template en zet er de $username en $password in op de plaats van de formfields en laat het form op een of andere manier versturen zodra de template aangeroepen wordt ?

  • jnr24
  • Registratie: Oktober 2004
  • Laatst online: 27-08 11:48
Je kan natuurlijk met de hand zelf posten. Ik weet niet of je de CURL library geinstalleerd hebt. (zonder moet het ook wel lukken).

vanaf de commandline zou je iets doen als, dit is niet al te lastig om te tikken naar curl in php.

curl -d login=piet -d password=abc123 https://www.hier.nl/daar/form.php

daarna geef je het cookie aan de gebruiker en laat je het script redirecten naar de pagina en daar zal de gebruiker al ingelogd zijn.

Als je geen curl hebt kan je misschien gewoon een socket openen:
<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "POST / HTTP/1.1\r\n";
$out .= "Host: www.example.com\r\n";
$out .= "Connection: Close\r\n\r\n";
$out .= "login=piet&password=abc123r\n";

fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
?>

Verwijderd

Topicstarter
Dat zouden wel eens opties kunnen zijn. Maar wat nu als ik meerdere forms in de index.php heb staan doormiddel van geinclude pagina's ?

Kan ik de Form waar naar gepost moet worden specificeren ?

Verwijderd

Topicstarter
Ik heb het op kunnen lossen met een:

code:
1
<body onload="document.loginformulier.submit()">