Herkese selam, şu anda bir siteden veri çekmek için bir bot yapıyorum fakat bir türlü yapamadım daha doğrusu inputlara post işlemini doğru dürüst yapabildiğimden emin değilim baya uğraştım fakat soluğu burada aldım daha önce curl post ile uğraşmış bilgisi olan arkadaşlar yardımcı olur ise sevinirim.
<?php
function Baglan($url){
$curl=curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
$cikti=curl_exec($curl);
echo curl_error($curl);
curl_close($curl);
return str_replace(array("\n","\t","\r"),null,$cikti);
}
$bag = Baglan('https://www.kitapyurdu.com/index.php?route=account/login');
preg_match_all('#<input type="hidden" name="csrf_token" value="(.*?)">#' , $bag , $token);
$baslik2 = str_replace("\" />", "", $token[1][0]); //Sonda bi kaç karakter vardı çekerken sorunluydu yani ondan dolayı onu temizledim
echo trim($baslik2); //burda token i çektim
function Baglan2($url2,$data){
$curl_baslat=curl_init();
curl_setopt($curl_baslat,CURLOPT_URL,$url2);
curl_setopt($curl_baslat, CURLOPT_HEADER, 0);
$tmpfname = dirname(__FILE__).'/cookie.txt';
curl_setopt($curl_baslat, CURLOPT_COOKIEJAR, $tmpfname);
curl_setopt($curl_baslat, CURLOPT_COOKIEFILE, $tmpfname);
curl_setopt($curl_baslat, CURLOPT_REFERER, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($curl_baslat, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_baslat,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($curl_baslat,CURLOPT_POST,1);
curl_setopt($curl_baslat,CURLOPT_POSTFIELDS,$data);
curl_setopt($curl_baslat,CURLOPT_RETURNTRANSFER,1);
$gelen_deger=curl_exec($curl_baslat);
curl_close($curl_baslat);
echo $gelen_deger;
}
$baglan = Baglan2("https://www.kitapyurdu.com/index.php?route=account/login",array(
'csrf_token'=> $baslik2, //burası token kısmı hidden inputtan alındı olmasa siteye giriş yapamaz diye düşünüyorum
'password'=>'orneksifre', //sitedeki input name i ve sonrasınkai değeri şifre
'email'=> 'email @ email.com')); //aynı şkilde sitedeki input un name i ve değeri
preg_match_all('#<title>(.*?)</title>#' , $baglan , $deneme);
$url = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; //burda hangi urlde olduğunu anlamaya çalışıyorum
echo $url;
echo "<pre>";
print_r($deneme);
echo "<pre>";
?>token kısmında hata yaptığımı düşünüyorum birde giriş yaptıktan sonra hangi urlde olacağını
yardımcı olursanız çok sevinirim eğer ücretli şekilde yardımcı olmayı düşününen arkadaşlar var ise onlarlada konuşabilirim.şimdiden saolun