+ HTTP_POST cURL, 500 hatası alıyorum.

2 Cevap php

Tamam, ben bir SSL siteye cURL kullanarak bir HTTP_POST yapmak istiyorum. Zaten benim sunucusuna sertifika ithal. Bu benim kodudur:

$url  = "https://www.xxx.xxx";
$post = "";# all data that going to send

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0'); 

$exe  = curl_exec($ch);
$getInfo = curl_getinfo($ch);

if ($exe === false) {
    $output = "Error in sending";
    if (curl_error($ch)){
        $output .= "\n". curl_error($ch);
    }
} else if($getInfo['http_code'] != 777){
    $output = "No data returned. Error: " . $getInfo['http_code'];
    if (curl_error($ch)){
        $output .= "\n". curl_error($ch);
    }
}

curl_close($ch);

echo $output;

Bu "500" döndü tutun. W3schools dayanarak, 500 Internal Server Error demektir. Benim sunucu sorunu olan var mı? Çözmek için nasıl / bu giderilir?

2 Cevap

(Özellikle SSL ile talep) Bazı sunucular isteğin bazı parametreler yanlış ayarlanmış durumda 500'ü döndürür.

Önlemek için «500 error» (örneğin) emin olun:

  • Gerekirse başlığı ile: doğru "Referer" set

curl_setopt(CURLOPT_REFERER, 'http://site.com/ref_page');

  • set uygun "User-Agent:" başlığı ile

curl_setopt(CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');

Eğer sunucuya ya da belki, işlenmeyen bir özel durum, sunucu üzerinde çalıştırılan komut dosyası içinde yanlış bir şey var.

Sen sunucunun erişim ve hata günlüklerini kontrol etmelisiniz.