Ciao,
Da tempo ho attivato la connessione Server to server http://it.altervista.org/wiki/index....rver_to_Server, sbloccando la whitelist, per appoggiarmi a servizi esterni tramite API sul mio sito in PHP.
Ad es. per Mailchimp, e infatti il mio sito funziona benissimo con tale sito che uso per l'invio automatico di newsletter agli utenti che ne fanno richiesta.
Il problema è ora che studiando la funzione fsockopen() e cURL ecc. vedo che anche un semplice chiamata, con tale funzione nativa del PHP, ad una porta/servizio NON APERTA di un host mi da qui su altervista.org un risultato "sconcertante" : mi dà un risultato TRUE invece che mostrare l'errore di connessione!!!
Ecco un semplicissimo esempio:
Codice PHP:
error_reporting(E_ALL);
$chiamata = fsockopen("www.html.it", 443, $errno, $errstr, 10);
if ( $chiamata )
{
echo "La porta 443 è aperta per www.html.it.";
fclose($chiamata);
}
else
{
echo "$errstr ($errno)<br>\n";
}
Qui in locale visualizzo CORRETTAMENTE quanto segue:
Warning: fsockopen(): unable to connect to www.html.it:443 (Connection timed out) in /opt/lampp/htdocs/new_site_local/try_port_scanner.php on line 5
Connection timed out (110)
mentre online, dopo aver caricato questo script ottengo:
La porta 443 è aperta per www.html.it.
Esattamente l'opposto!!!!
Ho capito che altervista permette solo le connessioni a server esterni alle porte/servizi 80 (http) e 443 (https) ma non dovrei ottenere lo stesso errore che ho in locale?
Inoltre ho attivato anche l'error_reporting su ALL per vedere anche qui in Production (online) tutti gli errori, compresi i Notice mandati da PHP, che sono invece disattivati di default!
Ricevo invece quella errata risposta in TRUE! E non vedo errori di nessun tipo!!!
Mah......
Non capisco davvero.
Spero che qualche admin mi risponda e mi chiarisca la faccenda.
Grazie e ciao