Ciao a tutti, ho un problema con fsockopen usando il protocollo ssl
Ho il seguente codice:
Codice PHP:
$host = 'host.it';
if($fp = @fsockopen('ssl://'.$host, 443, $errNo, $errStr, 30)) {
fputs($fp, "POST /pagina.asp HTTP/1.0\r\n");
fputs($fp, "Host: " . $host . "\r\n");
fputs($fp, "User-Agent: PHP/" . phpversion() . "\r\n");
fputs($fp, "Content-Type:application/x-www-form-urlencoded; charset=ISO-8859-1\r\n");
fputs($fp, "Content-Length: ".strlen($queryString)."\r\n");
fputs($fp, "Accept-Language: it\r\n");
fputs($fp, "Cache-Control: no-cache\r\n");
fputs($fp, "Connection: close\r\n");
fputs($fp, "\r\n" . $queryString);
//recupero contenuto
$contentResponse = '';
while(!feof($fp)) {
$contentResponse .= fgets($fp, 1024); //Qui ottengo errore
}
//Chiudo connessione con il server
fclose($fp);
} else {
echo $errStr;
}
Il problema è che dove c'è fgets ottengo il seguente errore:
"SSL: Fatal Protocol Error"
Ora sul manuale di PHP trovo:
Quando si usa SSL, Microsoft IIS viola il protocollo chiudendo la connessione senza inviare un indicazione close_notify. PHP indicherà questo con un "SSL: Fatal Protocol Error" al raggiungimento della fine dei dati.
Se si usa fsockopen() per creare un socket ssl:// , occorre identificare e sopprimetre l'avviso manualmente.
Ma se metto @fgets(...)
non ottengo la giusta risposta in $contentResponse..................
Come fare in questi casi?????
Sta diventando un incubo questa cosa per me....