Curl İle Oturum Açma Sorunu.

theSinan02SİNAN AY

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']);
}

}

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

phpkodlari.com © 2009 Herkes Php öğrenecek
Eglence ve Oyun: Gamikro