Curl İle Oturum Açma Sorunu.
S.a
Php Curl ile Oturum Açmaya Çalışıyorum Oturum Açmıyor Aynı Bilgileri Bir Form Aracılığı ile Karşı Tarafa Gönderdiğimde Otomatik Açıyor
function baglan($url,$tip ) {
if($tip=='baslangic')
{
$ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch,CURLOPT_REFERER,"https://odeme.paynet.com.tr/Account/Login"); curl_setopt($ch, CURLOPT_COOKIEJAR, 'paynet_cookie.txt'); curl_setopt($ch, CURLOPT_COOKIEFILE, 'paynet_cookie.txt'); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER ["HTTP_USER_AGENT" ] ); curl_setopt( $ch , CURLOPT_HEADER , 1 ); curl_setopt( $ch , CURLOPT_COOKIESESSION , true ); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $calistir = curl_exec($ch); curl_close($ch); $ar1 = '<\input name="__RequestVerificationToken" type="hidden" value="'; $ar2 = '"'; preg_match("/$ar1(.*?)$ar2/s", $calistir,$dizi); $_SESSION['__RequestVerificationToken']=urlencode($dizi[1]);
}
else if($tip=='giris')
{
$_SESSION['ch'] = curl_init();
$fields = "__RequestVerificationToken=".$_SESSION['__RequestVerificationToken']."&CustomerCode=".$_SESSION["CustomerCode"]."&Username=".$_SESSION['Username']."&Password=".$_SESSION['Password']; //echo "Giriş Bilgi:::\n\rfields:$fields\n\r $url\n\r "; curl_setopt($_SESSION['ch'], CURLOPT_SSL_VERIFYPEER, false); curl_setopt($_SESSION['ch'],CURLOPT_REFERER,"https://odeme.paynet.com.tr/Account/Login"); curl_setopt($_SESSION['ch'], CURLOPT_COOKIEJAR, 'paynet_cookie.txt');
curl_setopt($_SESSION['ch'], CURLOPT_COOKIEFILE, 'paynet_cookie.txt');
curl_setopt($_SESSION['ch'] , CURLOPT_COOKIESESSION , true );
curl_setopt($_SESSION['ch'], CURLOPT_USERAGENT, $_SERVER ["HTTP_USER_AGENT" ] );
curl_setopt( $_SESSION['ch'] , CURLOPT_HEADER , 1 ); //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($_SESSION['ch'],CURLOPT_POST,1); curl_setopt($_SESSION['ch'], CURLOPT_POSTFIELDS,$fields ); curl_setopt($_SESSION['ch'],CURLOPT_URL,$url); curl_setopt($_SESSION['ch'], CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($_SESSION['ch']);
}
}
curl_setopt( $_SESSION['ch'] , CURLOPT_HEADER , 1 ); //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($_SESSION['ch'],CURLOPT_POST,1); curl_setopt($_SESSION['ch'], CURLOPT_POSTFIELDS,$fields ); curl_setopt($_SESSION['ch'],CURLOPT_URL,$url); curl_setopt($_SESSION['ch'], CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($_SESSION['ch']);
}
}
yukarıdaki Fonksiyon Curl Fonksiyonum
Önce iki Parametre Alıyor Birincisi Url diğeri Tip (Bağlantı Tipi )Önce
baslangic için URL Gönderiyorum Çünkü Formdaki __RequestVerificationToken İnput içeriğini alıp Session atıyorum sonra baglantıda kullanacağım
Fonksiyonu Aşağıdaki Kodlar ile Kulanıyorum
baglan("https://odeme.paynet.com.tr/Account/Login","baslangic" ); $_SESSION["CustomerCode"] = musteri_kod; $_SESSION["Username"] = kullanici_ad;
$_SESSION["Password"] = sifre;
echo baglan("https://odeme.paynet.com.tr/Account/Login","giris" );
Curl ile Oturum açarken
curl_setopt($_SESSION['ch'], CURLOPT_USERAGENT, $_SERVER ["HTTP_USER_AGENT" ] ); ile tarayıcı bilgileririne de gönderiyorum
başka ne kontrolu yapabilir ki
acaba nerde hata yapıyorum
yardımlarınız için Allah Razı Olsun
2018-03-07 10:31:14 Edit:2018-03-07 10:40:18