Autor Zpráva
x
Profil *
Stránka se mi načte ale nezaloguje se, nevíte v čem je problém?

<?php
$PostData = array();
$PostData['username'] = "**"; // Ve formuláři je <input name="username">
$PostData['password'] = "**";
$PomocnaData="";
foreach ($PostData as $Parametr=>$Hodnota) {
  $PomocnaData .= "$Parametr=$Hodnota&";
}
$PostData = substr($PomocnaData,0,-1);

$URL = "http://www.****.cz/index.php?action=login";  // Adresa ve <form action=...
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $PostData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$KodStranky = curl_exec($ch); // Načtení výsledné stránky do proměnné
echo $KodStranky;
curl_close($ch);
// nějaké parsovací funkce tady, kód výsledné stránky je v $KodStranky
?>
tiso
Profil
Chybu nevidím, mohlo by pomôcť ešte pridať:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION  ,1);

Tá stránka môže mať nejakú ochranu proti strojovému načítaniu (kontrola $_SERVER['HTTP_USER_AGENT'], ...)
Majkl578
Profil
nebo muze mit skryty overovaci input, popr. kontrolovat odeslani buttonem, kdo vi co se na adrese ****.cz nachazi :)
x
Profil *
Tak už jsem na to možná přišel. Když si dám do zdrojáku tenhle kod tak mi to vypíše něco takového:

HTTP/1.1 302 Found Server: nginx/0.6.32 Date: Thu, 30 Jul 2009 16:58:10 GMT Content-Type: text/html; charset=utf-8 Connection: keep-alive X-Powered-By: PHP/5.2.0-8+etch15 Set-Cookie: server_id=cs13; expires=Sat, 29-Aug-2009 16:58:10 GMT; httponly Location: http://www.***.cz/login.php?sid=73c1a1a6e20e&secret=8dc653911413 Content-Length: 0 ok


problém je v tom, že potřebuji nějak vytáhnout tuhle část "http://www.***.cz/login.php?sid=73c1a1a6e20e&secret=8dc653911413" a načíst její obsah do proměnné. To je celé, víte někdo jak na to?
x
Profil *
Jo zapoměl jsem ten kod na vypsání vypadá takto
echo "<pre>", print_r(curl_getinfo($KodStranky), true), "</pre>";
.
tiso
Profil
x [#4] - poradil som ti: [#2]
x
Profil *
x [#4] - poradil som ti: [#2]
Já vím to jsem tam měl bylo to v něčem jiném, ale už jsem to vyřešil.

Teď mi to píše "Content-Length: 998" takže stránka se načetla v pořádku, pomocí jakého příkazu mám ale ten zdrojový kod zobrazit na echo to nereaguje.

Výpis vypadá nějak takto:

HTTP/1.1 200 OK Server: nginx/0.6.32 Date: Fri, 31 Jul 2009 19:06:54 GMT Content-Type: text/html; charset=utf-8 Connection: keep-alive X-Powered-By: PHP/5.2.0-8+etch15 Set-Cookie: position=4 Content-Length: 998 
Aesir
Profil
x:
pomocí jakého příkazu mám ale ten zdrojový kod zobrazit na echo to nereaguje.
Pokud máte nastavený parametr CURLOPT_RETURNTRANSFER, tak funkce curl_exec vrací načtený výstup, popřípadě false při neúspěchu.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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