Portál AbcLinuxu, 27. dubna 2024 00:10


Dotaz: Zobrazení dat v php ze stránky vyžadující přihlášení

30.11.2009 17:07 Saky
Zobrazení dat v php ze stránky vyžadující přihlášení
Přečteno: 281×
Odpovědět | Admin
Zdravím Pro vlastní aplikaci (PERL) využívám řadu php scriptů, jako zdroje dat. Bohužel je nutné pracovat v nešťastném kódování iso-8859-2. Stránky si tedy převádím takto:
header("Content-Type: text/html; charset=iso-8859-2"); 
$handle = fopen("http://www.seznam.cz", "r"); 

for ($i = 1; !feof($handle); ++$i) { 
$line = fgets($handle); 
$line = iconv('utf-8', 'iso-8859-2//TRANSLIT', $line); 

echo $line; 
} 
fclose($handle); 

Nyní řeším problém, že bych potřeboval zobrazit data, dostupná až po přihlášení na seznam.cz. Lze nějak vyřešit, aby se php script přihlásil na seznam.cz zadanými údaji a teprve poté provedl výpis kódu? Díky za každý TIP
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

30.11.2009 18:35 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Zobrazení dat v php ze stránky vyžadující přihlášení
Odpovědět | | Sbalit | Link | Blokovat | Admin
U takového dotazu se vždy děsím, co kdo vymýšlí za krkolomné řešení. (Typicky jde ruku v ruce s pokusem o nějaký pochybný druh výdělku.)

Přihlášení na Seznam probíhá odesláním formuláře a zpracováním odpovědi na něj. K tomu stačí znalost HTTP a cookies. Nápověda: fopen() ti na to stačit nebude.
30.11.2009 18:41 Saky
Rozbalit Rozbalit vše Re: Zobrazení dat v php ze stránky vyžadující přihlášení
K výdělku to neslouží :-))). Jde o získání informace, zda je na uživatelském účtu nějaký vzkaz ve vzkazníku :). Jde o profil aplikace (BOTa) a chtěl jsem, aby mohl kontrolovat vzkazník a případně upozornil na nový vzkaz (Např upozornění administrátorů) :-)
30.11.2009 20:00 12345 | skóre: 41 | blog:
Rozbalit Rozbalit vše Re: Zobrazení dat v php ze stránky vyžadující přihlášení
Odpovědět | | Sbalit | Link | Blokovat | Admin
Na provádění libovolných HTTP requestů je ideální curl.
30.11.2009 20:05 Saky
Rozbalit Rozbalit vše Re: Zobrazení dat v php ze stránky vyžadující přihlášení
S tím právě experimentuji, bohužel to vůbec neznám. Mám něco takového:
function postit(&$data,$url,$verbose,$cookies){
 $s="";
 foreach($data as $key=>$val) {
   if (!empty($s)) $s.= '&';
   $s.= $key.'='.urlencode($val);
 }
 // init
 $ch = curl_init($url);
 // set options
 curl_setopt($ch, CURLOPT_HTTP_VERSION, 1.0);
 curl_setopt($ch, CURLOPT_VERBOSE, $verbose);
 curl_setopt($ch, CURLOPT_HEADER, 1);
 curl_setopt($ch, CURLOPT_TIMEOUT, 100);
 if($cookies != 0){ 
 curl_setopt($ch, CURLOPT_COOKIE, $cookies);
 }
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $s);
 // perform post
 $rr=curl_exec($ch);
 if ($verbose) echo $rr;
 curl_close($ch);
 }
$data['jmeno'] = 'user';
$data['heslo'] = 'pass';
$data['trvale'] = '1';
$data['prihlasit'] = '';
ob_start();
postit($data,'http://login.szn.cz/1',1,0);
$buf = ob_get_clean();
$expl = explode ("Set-Cookie: ", $buf);
$cookies = "";
foreach($expl as $key =>$cookie){
if($key != 0){
$expl2 = explode(";",$cookie);
$expl3 = explode("=",$expl2[0]);
if($cookies != ""){$cookies .= ";";}
$cookies .= $expl3[0] . "=" . $expl3[1];
$i++;
}
}
$data = null;
$data['zprava'] = '';
postit($data,'http://login.szn.cz/',1,$cookies);
Script mi však hlásí: "The requested method POST is not allowed for the URL /."
30.11.2009 20:10 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: Zobrazení dat v php ze stránky vyžadující přihlášení
Pridal si tam úplne všetky elementy toho formuláru (aj skryté)?
30.11.2009 20:15 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: Zobrazení dat v php ze stránky vyžadující přihlášení
Inak stačí, ak tam použiješ curl_init (bez url) raz a potom viac krát použiješ nastavenie URL pomocou curl_setopt a získanie dokumentu pomocou curl_exec (v takom prípade tam tie cookies po tom prihlásení ostanú).
30.11.2009 20:22 Saky
Rozbalit Rozbalit vše Re: Zobrazení dat v php ze stránky vyžadující přihlášení
Děkuji za info..Pravda, nedal. Je to form na url http://login.szn.cz/ a koukám, že je tam ještě několik inputů jako hidden. Bohužel se mi to stejně nějak nedaří. :-(

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.