fsockopen () restituisce puntatore nullo, e $ errstr è vuoto (nessun messaggio di errore)
-
25-09-2019 - |
Domanda
[Modifica]
Ho rimontate domanda precedente - da quando ho avuto frainteso ciò che è stato la causa del problema - e quindi l'ampio frammento che avevo prima era una falsa pista. Grazie a wimdvx, ho un'idea più chiara di ciò che sta accadendo.
Prima di tutto, io sto usando il codice che è base su questo uno , per gestire le notifiche IPN da Paypal.
I è stato in grado di connettersi utilizzando fsockopen, così ho scritto un piccolo frammento (vedi sotto), per tentare di connettersi a Paypal.
<?php
$fp = fsockopen("www.sandbox.paypal.com/cgi-bin/webscr", 80, $errno, $errstr,30);
if(!$fp) {
echo "$errstr ($errno)<br />\n";
}
else{
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: www.sandbox.paypal.com/cgi-bin/webscr\r\n";
$out .= "Connection: Close\r\n\n\n";
fwrite($fp, $out);
}
?>
Quando ho eseguito questo piccolo script, ottengo il seguente errore sul mio server:
PHP Warning: fsockopen (): php_network_getaddresses: getaddrinfo non è riuscita: Nome o servizio non conosciuto in /home/minime/test-socket.php sulla linea 2 PHP Warning: fsockopen (): in grado di collegarsi a www.sandbox.paypal.com/cgi-bin/webscr:80 (php_network_getaddresses: getaddrinfo fallito: Nome o servizio non nota) in /home/minime/test-socket.php sulla linea 2 php_network_getaddresses: getaddrinfo fallito: nome o il servizio non
noto (0)
Qualcuno può far luce su come risolvere questo problema?
Sono in esecuzione Ubuntu LTS 10.0.4 sul server
Soluzione
Non aprire un socket a un URL, è necessario aprirlo per un IP o di un nome di dominio completo.
con
$socket_ur = 'www.mywebsite.com';
potrebbe aiutare.
Ma che cosa stai cercando di ottenere esattamente?
Altri suggerimenti
Dimenticato il simbolo $
prima thefile variabile puntatore
if(!$fp) { print "Bah, hambug!. Connect to $socket_url failed. Error: $errstr"; } ?>