Autor Zpráva
Tomcekeu
Profil
Dobrý den,
byl bych rád kdyby mi někdo poskytnul zdrojový kod stránky na přihlašování mailu.
obyčejné dvě pole uprostřed stránky (mail, heslo) a nahoře třeba nějaké logo.
Potřeboval bych přihlašování na tento mail - https://roundcube.wedos.net/ přes vlastní přihlašovací stránku. Prostě jen jakoby se informace skrytě zadávali do toho roundcube. Je to asi složitější, protože roundcube vytváří časově omezené tokeny.
Kdyby byl někdo schopný takový kod vytvořit a poradit, najde se tu někdo?
děkuji
janbarasek
Profil
Tomcekeu:
Na toto ti stačí obyčejný parazitní formulář.

Formulář na tom odkazu směřuje na stejnou stránku, na které je:
<form name="form" action="./" method="post">

proto bude stačit takový formulář okopírovat a změnit jeho adresu, tj. jeho hlavička vypadá takto:
<form name="form" action="https://roundcube.wedos.net" method="post">

Problém formulářových polí


Formulář má několik skrytých polí, zcela konkrétně tyto:
<input type="hidden" name="_token" value="59339bfa1031b522227ef268283bea9d">
<input type="hidden" name="_task" value="login">
<input type="hidden" name="_action" value="login">
<input type="hidden" name="_timezone" id="rcmlogintz" value="_default_">
<input type="hidden" name="_url" id="rcmloginurl" value="">

Pokud budeš mít štěstí, tak jejich obsah nebude záviset na cookies a budeš je moci tahat jednoduše PHP robotem:
<?php
$data = file_get_contents('https://roundcube.wedos.net');
?>
obsahem proměnné $data je zdrojový kód stránky, z kterého lze pole vyparsovat - například pomocí regulárních výrazů.

Pokud však jejich hodnota závisí na cookies, tak je budeš muset tahat buď pomocí javascriptu (to je hodně těžké, musíš znát Ajax), nebo stránku můžeš vložit pomocí neviditelného rámce (iframe) přímo na stránku s tvým formulářem a dále můžeš jen doufat, že cílové stránce bude stačit jen obsah inputů a nebude chtít znovu poslat skryté pole.

Vstup od uživatele

Vstup od uživatele se dá vytáhnout přímo ze zdrojové stránky, můžeš si ho libovolně upravit, ale je nutné dodržet názvy polí!
Jméno uživatele:
<input name="_user" id="rcmloginuser" size="40" autocapitalize="off" type="text">

Heslo:
<input name="_pass" id="rcmloginpwd" size="40" autocapitalize="off" type="password">

Odesílací tlačítko:
může být libovolné, ale pro pořádek uvádím originální znění:
<input type="submit" class="button mainaction" value="Přihlásit" />
Tomcekeu
Profil
janbarasek:
Vše mám napsat do jednoho souboru? Například mail.php
<html>
<head>
</head>
<body>
<form name="form" action="https://roundcube.wedos.net" method="post"> 
<input name="_user" id="rcmloginuser" size="40" autocapitalize="off" type="text">
<input name="_pass" id="rcmloginpwd" size="40" autocapitalize="off" type="password">
<input type="submit" class="button mainaction" value="Přihlásit" />
<?php
$data = file_get_contents('https://roundcube.wedos.net');
?>
</body>
</html>
díky.
janbarasek
Profil
Tomcekeu:
Ano, i ne.
<?php
$data = file_get_contents('https://roundcube.wedos.net');
?>
Tento script nedělá nic jiného, než že načte zdrojový kód odkazované stránky do proměnné, a tím to končí, nic víc, mrtvo, totálně.
Musíš si napsat nějaký regulární výraz, co to ze zdrojového kódu vytáhne, nebo někoho požádat, aby ti něco takového napsal. Předem říkám, že to nelze vyřešit jedním řádkem kódu, ale že půjde o něco delší a složitější zápis, který vyžaduje pokročilejší znalosti PHP.

Jinak zápisy jako class="button mainaction" jsou v kontextu tvého přiloženého kódu úplně zbytečné, protože nepoužíváš žádné CSS styly a přesto se odkazuješ na nějakou neexistující třídu.

Do začátku bych ti doporučil, aby jsi se naučil základy tvorby webu, než se do něčeho pustíš. Zejména, jak fungují formuláře.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: