• 26-08-2014, 09:17:10
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Ya arkadaşlar kafayı yiycem, bi siteye curl ile veri post edip yanıt almaya çalışıyorum ancak ne denediysem hiçbir şekilde yanıt gelmiyor sayfa hep boş geliyor sizce ne eksik olabilir giden veriyi base64 le kodlayıp da denedim herşeyi denedim yine olmadı, bu arada curl hata felan vermiyo post işlemi başarılı gidiyor sadece boş sayfa geliyor...

    CURL ile veri post işlemine başlamadan önce gelen header aşağıdaki gibidir;
    HTTP/1.1 200 OK Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Content-Type: text/html; charset=utf-8 Expires: Thu, 19 Nov 1981 08:52:00 GMT Server: Microsoft-IIS/7.5 Set-Cookie: PHPSESSID=e144849dd7d30c8f74f880b03c1ed48f; path=/ X-Powered-By: ASP.NET X-Powered-By-Plesk: PleskWin Date: Tue, 26 Aug 2014 05:53:04 GMT Connection: close Content-Length: 0
    NOT: Browser'a captcha kodunu tanımak için "phpsessid" adlı bir çerez kaydetmeye çalışıyor, önce onu değişkene alıp 2. bir curl ile(aşağıdaki php kodundaki gibi CURLOPT_COOKIE ile) veriyi post ediyorum yani herşey tamam tek sorun yanıt gelmemesi.



    Çalıştırdığım php kodları aşağıdaki gibidir:

    	
    $PHPSESSID=""; o anki session ID
    
    $url="www.xxxxxxx.com/ara.php "; // veri post edilecek url
    $veri=""; //sorgulancak numara
    $captcha=""; //o anki girilecek captcha kodu
    
    $fields = array(
    						'no' => urlencode($veri),
    						'security' => urlencode($captcha),
    						'islem' => urlencode("sorgula")
    				);
    	$fields_string="";
    	$nfields=count($fields);
    	foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
    	rtrim($fields_string, '&');
    	
    	//echo $fields_string;
    	
    	//Load user's PHPSESSID data to CURL
    	curl_setopt($ch, CURLOPT_URL, $url);
    	curl_setopt($ch,CURLOPT_POST,$nfields);
    	curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
    	curl_setopt ($ch, CURLOPT_COOKIE, "PHPSESSID=$PHPSESSID;");
    	curl_setopt($ch, CURLOPT_HEADER, 1);
    	curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);// return web page
    	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    	curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)');
    	$result = curl_exec ($ch);
    
            echo $result; // gelen sonuç
    Veri post edildikten sonra gelen header aşağıdaki gibidir gördüğünüz gibi content length: 0...;
    HTTP/1.1 200 OK Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Content-Type: text/html; charset=utf-8 Expires: Thu, 19 Nov 1981 08:52:00 GMT Server: Microsoft-IIS/7.5 X-Powered-By: ASP.NET X-Powered-By-Plesk: PleskWin Date: Tue, 26 Aug 2014 06:02:44 GMT Connection: close Content-Length: 0
  • 26-08-2014, 10:23:03
    #2
    $data = @file_get_contents(
    	'http://site.com',
    	false,
    	stream_context_create(
    		array('http' => array(
    			'method' => 'POST',
    ),
    			'content' => http_build_query(array(
    				'no' => 'veri',
    				'security' => 'captcha',
    				'veri' => 'x',
    			)),
    		))
    	);
    echo '<pre>';
    echo json_encode(json_decode($data),JSON_PRETTY_PRINT|J SON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE);
    echo '</pre>';


    Yukarda yazdığım metodu deneyebilirsin, nette bir çok örnek mevcut.
  • 26-08-2014, 13:33:38
    #3
    Ceu adlı üyeden alıntı: mesajı görüntüle
    $data = @file_get_contents(
    	'http://site.com',
    	false,
    	stream_context_create(
    		array('http' => array(
    			'method' => 'POST',
    ),
    			'content' => http_build_query(array(
    				'no' => 'veri',
    				'security' => 'captcha',
    				'veri' => 'x',
    			)),
    		))
    	);
    echo '<pre>';
    echo json_encode(json_decode($data),JSON_PRETTY_PRINT|J SON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE);
    echo '</pre>';


    Yukarda yazdığım metodu deneyebilirsin, nette bir çok örnek mevcut.
    cevap için teşekkürler hocam ancak sizin kod da maalesef çalışmadı bu da boş sonuç gönderiyor.
    nettekilere çok baktım denemediğim yöntem kalmadı.
    site adresini pm attım html form yapısına vs bir bakın hocam belki gözümden kaçan birşey olmuştur.

    http://stackoverflow.com/questions/8...esult-is-false
    Ayrıca bu linkteki anlatılan gibi de yaptım yine sonuç değişmedi.
  • 26-08-2014, 20:46:59
    #4
    Site adresini pm at hocam bir bakım. Bugün işim az can sıkıntına iyi geliyor
  • 26-08-2014, 22:04:06
    #5
    aLKaDraZ adlı üyeden alıntı: mesajı görüntüle
    Site adresini pm at hocam bir bakım. Bugün işim az can sıkıntına iyi geliyor
    Hocam ilgin için teşekkür ederim sorun server'a gönderilen request header'ların tam olmamasından kaynaklanıyomuş hem hallettim hem yeni birşey öğrenmiş oldum düzeldi şimdi çok şükür ama günüm gitti tabi

    Sorunun çözümünü açıklamasıyla hazırladım benzer sorun yaşayanlar buraya bakabilir ;

  • 12-11-2015, 01:17:01
    #6
    Benzer bir durum ile karşı karşıyayım. Sorunun açıklmasını hazırladım demişsiniz ama link göremiyorum. Sorunu nasıl çözdüğünüzü tekrar anlatırsanız sevinirim.
  • 02-07-2016, 18:12:49
    #7
    linkteki resim açılıyo, dnsleri değiştirin. mahkeme kararı yazısı çıkıyor. 8888 8844 dnslerini kullanarak açın.