• 19-09-2014, 13:41:52
    #1
    cURL ile bağlandığım sayfadan Captcha resmini çekip değeri girip göndermek istiyorum. İngizlice ve Türkçe kaynakları araştırdım ancak bir şey bulamadım. Bunu nasıl yapabilirim?
  • 19-09-2014, 13:43:41
    #2
    borealis adlı üyeden alıntı: mesajı görüntüle
    cURL ile bağlandığım sayfadan Captcha resmini çekip değeri girip göndermek istiyorum. İngizlice ve Türkçe kaynakları araştırdım ancak bir şey bulamadım. Bunu nasıl yapabilirim?
    http://de-captcher.com/ bu siteden kredi alıp api yardımıyla otomatik kırdırabilirsin.
  • 19-09-2014, 13:53:28
    #3
    sizin yapmak istediğiniz özel mesaj attığınızda deiğim gibi php ile mümkün değil yani en azından session ve cookieleri tutman gerek
    tek seferde olsa cookie vs ile üstdeki arkadaşın dediği gibi apiler ile yapılabilir.
    ama siz önce php çalışacak önünüze cahta gelcek değeri yazıp tekrar phpyi çalıştırmak istiyorsunuz mümkün olacağını zannetmiyorum
  • 19-09-2014, 13:56:07
    #4
    CodeS adlı üyeden alıntı: mesajı görüntüle
    sizin yapmak istediğiniz özel mesaj attığınızda deiğim gibi php ile mümkün değil yani en azından session ve cookieleri tutman gerek
    tek seferde olsa cookie vs ile üstdeki arkadaşın dediği gibi apiler ile yapılabilir.
    ama siz önce php çalışacak önünüze cahta gelcek değeri yazıp tekrar phpyi çalıştırmak istiyorsunuz mümkün olacağını zannetmiyorum
    güvenlik kodunu manual mi girmek istiyor. O şekildede girebilirsin ama boşa zaman kaybı.
  • 19-09-2014, 13:59:15
    #5
    moonly adlı üyeden alıntı: mesajı görüntüle
    güvenlik kodunu manual mi girmek istiyor. O şekildede girebilirsin ama boşa zaman kaybı.
    aynen manuel oalrak 2 adımda çalışsın istiyo yani önce caphta gelsin gireyim sonra sayfaya cahta sonucuu göndereyim diyorda mümkün olması için cookieleri kalıcı olarak tutması gerek
  • 19-09-2014, 14:09:17
    #6
    Üyeliği durduruldu
    curl session olayı var. Session açılıyor ve güvenlik kodu isteniyor hafızada tutuluyor ve daha sonra curl ile post yaparken bu session datası ile yapılıyor.
  • 19-09-2014, 14:41:23
    #7
    moonly adlı üyeden alıntı: mesajı görüntüle
    http://de-captcher.com/ bu siteden kredi alıp api yardımıyla otomatik kırdırabilirsin.
    CodeS adlı üyeden alıntı: mesajı görüntüle
    sizin yapmak istediğiniz özel mesaj attığınızda deiğim gibi php ile mümkün değil yani en azından session ve cookieleri tutman gerek
    tek seferde olsa cookie vs ile üstdeki arkadaşın dediği gibi apiler ile yapılabilir.
    ama siz önce php çalışacak önünüze cahta gelcek değeri yazıp tekrar phpyi çalıştırmak istiyorsunuz mümkün olacağını zannetmiyorum
    moonly adlı üyeden alıntı: mesajı görüntüle
    güvenlik kodunu manual mi girmek istiyor. O şekildede girebilirsin ama boşa zaman kaybı.
    CodeS adlı üyeden alıntı: mesajı görüntüle
    aynen manuel oalrak 2 adımda çalışsın istiyo yani önce caphta gelsin gireyim sonra sayfaya cahta sonucuu göndereyim diyorda mümkün olması için cookieleri kalıcı olarak tutması gerek
    tolgatasci adlı üyeden alıntı: mesajı görüntüle
    curl session olayı var. Session açılıyor ve güvenlik kodu isteniyor hafızada tutuluyor ve daha sonra curl ile post yaparken bu session datası ile yapılıyor.
    Çerezleri txt dosyasında tutuyorum, 10 adet girilecek veri var. 9 tanesi otomatik oluşturuyorum. Sonuncu captcha. Captcha kodunu el ile girmek istiyorum, böylece sadece captcha girerek işlemleri yapacam. API kullanmak istemiyorum. Sadece nasıl yapabilirim onu merak ediyorum. Çerezlerden veya sessionlardan kodu çekemeyeceğime göre captchayı ekrana nasıl bastırabilirim? Verileri post ederken formun bulunduğu sayfadan hidden değerler var onları alıyorum ve verileri toplayıp oluşturma sayfasına gönderiyorum. Captchayı bu aşamada nasıl çekebilirim?

    Teşekkür ederim tüm cevaplar için, +r10 verdim
  • 21-09-2014, 17:54:09
    #8
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Yabancı kaynaklarda bulamazsın hocam böyle değerli bilgileri
    Daha önce uzun uğraşlar sonucu böyle birşey yapmıştım.
    Aşağıdaki gibi yaparsan problemsiz çekebilirsin.
    Aşağıdaki fonksiyonu kullanarak kaptcha kodunu rahatlıkla alabilirsin ancak
    dikkat etmen gereken bir nokta var.
    Fonksiyon içerisinde belirtilen çerez adı PHPSESSID 'dir. senin çekeceğin sitedeki geçen isim neyse onunla değiştirmelisin.

    function update_captcha($url,$PHPSESSiD){
    	$ch = curl_init();
    	curl_setopt($ch, CURLOPT_URL, $url);
    	//curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)');
    	curl_setopt($ch, CURLOPT_COOKIE, "PHPSESSID=$PHPSESSiD;");
    	curl_setopt($ch, CURLOPT_HEADER, 0);
    	curl_setopt($ch, CURLOPT_VERBOSE, 1);
    	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    	curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
    	$raw_img_data = curl_exec($ch);
    	curl_close ($ch);
    	
    	$data = base64_encode($raw_img_data);//convert raw image data to base64 format
    	$cookie_life=time()+10;	// cookie stored captcha image life
    	setcookie("RAW_IMG_DATA", $data, $cookie_life );//set captcha image raw data to visitor browser cookie
    	return "Kodu girin:<input id='captcha' type='text' name='captcha' title='Captcha'><img id='captcha_img' alt='Captcha code' src='./image.php?" . time() . "'>";	
    }
    Yukarıdaki fonksiyonda curl ile sunucudan gelen cevapta resme ait raw data base64 olarak kodlanıp cookie içerisine alınmaktadır(cookie ömrü 10sn).
    fonksiyon bitiminde return ile image.php dosyasına o anki resme ait olan raw data aktarılıp header ile resim oluşturulmaktadır ve bu resim aşağıdaki komutu kullanacağın yerde echo ile gösterilmektedir.

    Kullanımı şu şekilde;

    //örnek url: intmail.183.com.cn/kaptcha.jpg
    echo update_captcha($url='www.intmail.183.com.cn/kaptcha.jpg',$PHPSESSiD='')

    image.php dosyasının içeriği ise şöyledir;
    <?php
    	if(isset($_COOKIE['RAW_IMG_DATA'])){
    
    	header("Cache-Control: must-revalidate");	
    	header('Content-Type: image/jpeg;');
    
    	//header("Expires: Sat, 26 Jul 2013 05:00:00 GMT"); // Date in the past
    	$picture=$_COOKIE['RAW_IMG_DATA'];
    	$picture = base64_decode($picture);
    	//readfile($picture);
    	echo $picture;
    	
    	//$picture = imagecreatefromstring($picture);
    	//imagejpeg($picture);
    	//imagedestroy($picture);
    	}else{echo 'Raw Data çerezi bulunamadı 10 sn doldu veya browser çerezleri açık değil, captcha\'yı yenilemeyi dene!';}
    ?>