Aslında sitede refferer kontrolü yok, session id kontrolü var, eğer kişi siteye ilk kez giriyorsa session id ile splash.php dosyasına yönlendiriliyor, gezinme esnasında ise session id doluysa normal sayfalar gösteriliyor, siz tarayıcıyı kapattığınız anda session id siliniyor, yani sıfırlanıyor, tekrar açtığınızda session oturumu yeniden başladığı için yine splash.php dosyasına yönlendiriliyor (sekmeli tarayıcılarda tarayıcıyı komple kapatmak gerekir, ie6 her sayfada farklı session id alır), bizde o kodda;
curl_setopt($ch, CURLOPT_REFERER, "http://www.sinemalar.com/splash.php");
sanki siteyi ziyaret etmiş gibi gösterip ardından asıl içeriği alacağımız sayfaya yöneliyoruz, burada splash.php olup olmaması önemli değil, yeterki herhangi bir sayfasını ziyaret edip session id alın, sonrada hedef sayfaya gidin.
Cookie olayı ise; site ayrıca sayfayı ziyaret eden kişiye çerez gönderip onuda kontrol ediyor, yani hem çerez hem session kontrolü, bunu file_get_contents ile yapamadığımız için mecburen CURL ile cookie dosyasını tanımlayıp gelen çerez bilgilerini CURL'un bu dosyaya yazmasını sağlıyoruz, dolayısı ile sitede çerezi kontrol ediyor ve varsa bizi direk içeriğe yönlendiriyor, yoksa splash.php dosyasına...
HTTP_USER_AGENT karşı tarafa kişinin tarayıcı bilgilerini gönderir, bazen siteler tarayıcı kontrolüde yaparlar, amaç botları engellemek, sinemalar.com tarayıcı kontrolü yapmıyor ama, ben sadece alışkanlıktan o satırı koymuşum, silsenizde olur silmesenizde..
Bu kodlar ile bot yazmak içinde kısaca bir fonksiyon yazalım daha kullanışlı olsun, yani geri kalan kısımları normal PHP kodları ile çalışmak için...
function sinema($site){
$ch = curl_init();
curl_setopt($ch, CURLOPT_REFERER, 'http://www.sinemalar.com.splash.php');
curl_setopt($ch, CURLOPT_URL, $site);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, 'C:\AppServ\www\cookie.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
curl_setopt($ch, CURLOPT_URL, $site);
$site = curl_exec($ch);
curl_close($ch);
return $site;
}
$verial = 'http://www.sinemalar.com';
echo sinema($verial);