Nasıl SSL fsockopen çalışma alabilirim?

1 Cevap php

Windows üzerinde PHP 5.2.6 koşuyorum, extension=php_curl.dll ve php.ini içinde extension=php_openssl.dll uncommented var; gibi I aşağıdaki görebilir phpinfo,

curl
cURL support        enabled
cURL Information    libcurl/7.16.0 OpenSSL/0.9.8g zlib/1.2.3

openssl
OpenSSL support     enabled
OpenSSL Version     OpenSSL 0.9.8g 19 Oct 2007

Ben etkin cURL olan bu hayati olduğundan emin değilim, ama OpenSSL'yi belirtilen beri ben bütünlüğü için yine burada bulunmaktadır düşündüm.


What I want to do is simple: make a POST request to another server over SSL using fsockopen.
My code so far is this:

$host = 'www.redacted.com';
$data = 'user=redacted&pass=redacted&action=redacted';
$response = "";

if ( $fp = fsockopen("ssl:{$host}", 443, $errno, $errstr, 30) ) {

    $msg  = 'POST /wsAPI.php HTTP/1.1' . "\r\n";
    $msg .= 'Content-Type: application/x-www-form-urlencoded' . "\r\n";
    $msg .= 'Content-Length: ' . strlen($data) . "\r\n";
    $msg .= 'Host: ' . $host . "\r\n";
    $msg .= 'Connection: close' . "\r\n\r\n";
    $msg .= $data;
    if ( fwrite($fp, $msg) ) {
        while ( !feof($fp) ) {
            $response .= fgets($fp, 1024);
        }
    }
    fclose($fp);

} else {
    $response = false;
}

Ben sadece $host geçmek ve port 80 kullanabilirsiniz eğer bu dersin çalışıyor. Ama gerçekten SSL üzerinden bu göndermek gerekiyor, ve şu anda çalışmıyor. $response false olarak ayarlanmış olur, $errno 0 kalır ve $errstr {[(6 olarak ayarlanmış olur )]}. Ben unsecurely noktası 80 üzerinden giderseniz Çalışır, çünkü sunucu aşağı olmanın bir sorun, ya da ana bilgisayar adı, vb bir yazım hatası değil biliyorum. Ben SSL geçmek için çalıştığınızda sorunlar sadece başlar.

Ben bu çalışma almak için ne yapmalıyım?

1 Cevap

Bu apaçık gözükebilir, ama bunun yerine bu çalıştı olabilir?

if ($fp = fsockopen('ssl://'. $host, 443, $errno, $errstr, 30)) {

Ben // gerekli olup olmadığından emin değilim, ama ssl ve PHP Internet Transports page var onlara tls örnekleri.

P.S. Ben de artık dize birleştirme kullanır neden Eğer merak ediyorsanız, dizeleri dahil değişkenlerle ilgili bir "şey" var.