orangem |
08. 04. 2008. 21:58 |
Automatsko logovanje
Da li neko ima dobar prijedlog, kako bi bilo najbolje da se automatski pristupi odredjenom sajtu, koristeci korisnicko ime i lozinku. A zatim da se pristupi nekoj stranici, unutar tog sajta i da se procita njen sadrzaj?
|
Dušan Dželebdžić |
08. 04. 2008. 22:25 |
|
dinke |
08. 04. 2008. 22:30 |
Pogledaj moju Curl klasu.
http://www.dinke.net/blog/2006/09/12...p-client-2/sr/
Dakle, u najjednostavnije slucaju nesto tipa:
PHP kôd:
require_once("curl_http_client.php");
$curl = &new Curl_HTTP_Client();
//pretend to be IE6 on windows
$useragent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
$curl->set_user_agent($useragent);
//where to store cookies
$cookies_file = "/tmp/cookies.txt";
$curl->store_cookies($cookies_file);
$curl->set_referrer("http://www.nekisajt.com/login.php");
$post_data = array();
$post_data['login'] = 'pera';
$post_data['pass'] = 'joe';
$post_data['nesto_trece'] = 'jos jedna post varijabla';
//...
$html_data = $curl->send_post_data("http://www.nekisajt.com/login.php", $post_data);
//parsujes recimo sa preg_match $html_data i uzmes sta ti treba
...
Inace, toplo preporucujem "tamper data" extenziju, odlicna je za pracenje sta se od post varijabli salje sa strane na stranu.
|
orangem |
08. 04. 2008. 22:33 |
U pitanju je obicna login forma;
<input type="text" name="username">
<input type="password" name="pass">
Method = POST
|
jablan |
08. 04. 2008. 22:35 |
Ako koristiš Ruby (što je malo verovatno), imaš izvanrednu biblioteku Mechanize.
Sledeći primer uploaduje sliku na Flickr:
Kôd:
require 'rubygems'
require 'mechanize'
agent = WWW::Mechanize.new
# Get the flickr sign in page
page = agent.get('http://flickr.com/signin/flickr/')
# Fill out the login form
form = page.forms.name('flickrloginform').first
form.email = ARGV[0]
form.password = ARGV[1]
page = agent.submit(form)
# Go to the upload page
page = agent.click page.links.text('Upload')
# Fill out the form
form = page.forms.action('/photos_upload_process.gne').first
form.file_uploads.name('file1').first.file_name = ARGV[2]
agent.submit(form)
Obratite pažnju na liniju "page = agent.click page.links.text('Upload')", koja "klikće" na link na stranici koji sadrži tekst Upload. Kudikamo lakše nego ručno petljanje sa kukijima... ;)
|
dinke |
08. 04. 2008. 23:20 |
Citat:
Originalno napisao orangem
(Napišite 53432)
U pitanju je obicna login forma;
<input type="text" name="username">
<input type="password" name="pass">
Method = POST
|
onda samo zameni
PHP kôd:
$post_data['login'] = 'pera'; $post_data['pass'] = 'joe';
u mom primeru sa
PHP kôd:
$post_data['username'] = 'pera_ili_sta_vec'; $post_data['password'] = 'ovde_ide_pass';
i imaces sadrzaj strane u $html_data (naravno promeni i link za poziv strane umesto http://www.nekisajt....).
Nakon uspesnog logovanja (a to mozes proveriti sa jednim strpos), neku drugu stranu unutar sajta ucitas sa:
PHP kôd:
$html_neke_strane = $curl->fetch_url("http://www.nekisajt.com/neka_strana");
Inace, posto ovo radim gotovo svakodneno (ukljucujucu "unofficial" API za regovanje nekih cctld domena), mozda napisem i jedan tutorijal kako se to radi ;)
|
ivanhoe |
09. 04. 2008. 02:51 |
Dinke bre, a secret handshakes i tajne zanata, nemoj bre da nam kvaris posao :)))
|
orangem |
09. 04. 2008. 15:35 |
Dinke, hvala ti. Ovo radi super!
|
mega023 |
11. 04. 2008. 22:49 |
Citat:
Originalno napisao dinke
(Napišite 53434)
onda samo zameni
PHP kôd:
$post_data['login'] = 'pera';
$post_data['pass'] = 'joe';
u mom primeru sa
PHP kôd:
$post_data['username'] = 'pera_ili_sta_vec';
$post_data['password'] = 'ovde_ide_pass';
i imaces sadrzaj strane u $html_data (naravno promeni i link za poziv strane umesto http://www.nekisajt....).
|
Kada uradim post na php fajl u njemu nema klasicnog output-a vec ima header(Location: ...) tj. redirekciju na odredjeni link, pa mi je output od curl-a uvek string(0) "" i onda ne vidim da li je "uspelo" ili ni je...
Moze li se iscitati taj header ili "pratiti" taj url?
|
dinke |
11. 04. 2008. 23:59 |
^Verovatno ti je output zapravo boolean false posto curl klasa sama handluje server side redirekcije. Prema tome, uradi var_dump izlaza da vidis sta ti vraca (most likely false jer nesto nisi uradio kako treba).
|
Vreme je GMT +2. Trenutno vreme je 18:19. |
|
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.