Arama butonu
Bu konudaki kullanıcılar: 1 misafir
7
Cevap
703
Tıklama
0
Öne Çıkarma
PHP için Çerezleri Etkinleştirmek
K
11 yıl
Er
Konu Sahibi

Arkadaşlar, Vikipedi'de kullanmak amaçlı web tabanlı bir bot ile uğraşıyorum. Login yapmak için gerekli kodları (curl) yazdım, ama giriş yaparken tam olarak şöyle "Oturum açma hatası. Vikipedi'de oturum açabilmek için çerezlerinizin açık olması gerekiyor. Sizin çerezleriniz kapalı. Lütfen açınız ve bir daha deneyiniz" bir mesaj çıkıyor. Kodlar aracılığıyla mı çerezleri etkinleştireceğim, çünkü tarayıcı ayarlarında zaten etkin. Anlayan ve yardımcı olan arkadaşlara şimdiden teşekkür ediyorum.



M
11 yıl
Çavuş

<!--ok-->

 
function baglan($adres,$KullaniciBilgileri = false){

$tmp = dirname(__FILE__).'/cookie.txt';
$ch = curl_init();
curl_setopt($ch , CURLOPT_URL, $adres);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch , CURLOPT_POST , $KullaniciBilgileri ? true : false);
curl_setopt($ch,CURLOPT_POSTFIELDS,$KullaniciBilgileri ? $KullaniciBilgileri : false);
curl_setopt($ch , CURLOPT_COOKIEFILE, $tmp);
curl_setopt($ch , CURLOPT_COOKIEJAR, $tmp);
$data=curl_exec($ch);
curl_close($ch);
return $data;
}


$site = 'https://tr.wikipedia.org/w/index.php?title=Özel:KullanıcıOturumuAçma';

$baglan = baglan($site);
preg_match('@<input type="hidden" name="wpLoginToken" value="(.*?)" />@si', $baglan, $token);
$kulBilgi = 'wpName=Test&wpPassword=Test&wpRemember=1&wpLoginAttempt=Oturum aç&wpLoginToken='.$token[1].'&wpForceHttps=1';
$login = baglan($site.'&action=submitlogin&type=login',$kulBilgi);
echo $login;


şeklinde yapabilirsin ama captcha sıkıntı çıkarabilir.

Onun yerine API kullanırsan daha rahat halledersin.
API örnek ;
 
function baglan($adres,$KullaniciBilgileri = false){

$tmp = dirname(__FILE__).'/cookie.txt';
$ch = curl_init();
curl_setopt($ch , CURLOPT_URL, $adres);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch , CURLOPT_POST , $KullaniciBilgileri ? true : false);
curl_setopt($ch,CURLOPT_POSTFIELDS,$KullaniciBilgileri ? $KullaniciBilgileri : false);
curl_setopt($ch , CURLOPT_COOKIEFILE, $tmp);
curl_setopt($ch , CURLOPT_COOKIEJAR, $tmp);
$data=curl_exec($ch);
curl_close($ch);
return $data;
}


$site = 'https://tr.wikipedia.org/w/api.php';
$uname = 'Mertcane';
$upass = 'sifre';
$baglan = baglan($site,'action=login&lgname='.$uname.'&lgpassword='.$upass.'&format=json');
preg_match('@"token":"(.*?)","cookieprefix":"(.*?)","sessionid":"(.*?)"@',$baglan,$token);
/*
$token[1] => token
$token[2] => cookieprefix
$token[3] => sessionid
*/
$login = $baglan = baglan($site,'action=login&lgname='.$uname.'&lgpassword='.$upass.'&lgtoken='.$token[1].'&format=json');
echo $baglan;





< Bu mesaj bu kişi tarafından değiştirildi mertcane -- 23 Ağustos 2014; 0:04:13 >


Bu mesajda bahsedilenler: @kendinciz
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.