Giriş formunda bir adet sadece o sayfa da geçerli olan bir kontrol kodu mevcut.
Ben normalde o kod ip bazlı olduğunda aşağıdaki gibi yaparak çekebiliyordum ancak benim yöntemimle kodu çektiğim ve gönderdiğim curl sayfaları farklı öyle olunca kod uyuşmuyor. bu kodu tek curl ile çekip nasıl post edebilirim?
Benim normalde kullandığım kod;
function Baglan($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'post edilen adres');
curl_setopt($ch, CURLOPT_REFERER, "anasayfa");
curl_setopt( $ch , CURLOPT_RETURNTRANSFER , 1 );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt");
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
$cek = curl_exec ($ch);
preg_match('#name="__RequestVerificationToken"(.*?)value="(.*?)" />#', $cek, $cek);
curl_setopt($ch, CURLOPT_URL, 'post edilen adres'); //post atılacak adres
curl_setopt ($ch, CURLOPT_POST, 1); //yukarıdaki adrese post atacağımızı belirtiyoruz
$bilgi = array(
'UserName' => 'E-mail',
'Password' => 'Şifre',
'__RequestVerificationToken' => $cek[2],
'ReturnUrl' => '/',
'RememberMe' => 'true',
);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $bilgi);// sayfanın kaynak kodundan aldığımız form değerlerini post etmek için gerekli değerleri yazıyoruz
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'dosya.txt');//login olduktan sonra gelen cookie değerlerini aldık kullanmak için dosyaya kaydettik (yazma hakkı olmalı)
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$store = curl_exec ($ch); //posttan sonra gelen sayfayı alıp değişkene kaydettik (sana lazım olmayabilir)
curl_setopt($ch, CURLOPT_COOKIEFILE, 'dosya.txt');//az önce aldığımız cookie değerlerii kullanmak için dosyaya kaydetmiştik şimdi onları yeni bir sayfada kullanmak için geri alıyoruz
curl_setopt($ch, CURLOPT_URL, $url);//user pass ile giriş yapılan sayfamızı alıyoruz
$icerik = curl_exec ($ch);// user-pass ile giriş yapılabilen sayfanın çıktısı elimizde artık
curl_close ($ch);// oturumu kapatalım - hafızada yer kaplamasın
return str_replace(array("\n","\t","\r"), null, $icerik);
}