fsockopen()返回空指针,$ errstr为空(无错误消息)

时间:2010-08-04 12:16:04

标签: php linux ubuntu paypal paypal-ipn

[编辑]

我已经重复了上一个问题 - 因为我误解了造成这个问题的原因 - 因此我之前的充足片段是一个红色的鲱鱼。感谢wimdvx,我对发生的事情有了更清晰的认识。

首先,我使用基于this one的代码来处理来自Paypal的IPN通知。

我无法使用fsockopen连接,所以我写了一个小片段(如下所示),尝试连接到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);
   }    

&GT;

当我运行这个小脚本时,我的服务器上出现以下错误:

  

PHP警告:fsockopen():   php_network_getaddresses:getaddrinfo   失败:未知的名称或服务   第2行/home/minime/test-socket.php   PHP警告:fsockopen():无法   连接至   www.sandbox.paypal.com/cgi-bin/webscr:80   (php_network_getaddresses:getaddrinfo   失败:名称或服务未知)   第2行/home/minime/test-socket.php   php_network_getaddresses:getaddrinfo   失败:名称或服务不是

已知(0)

任何人都可以解释如何解决这个问题吗?

我在服务器上运行Ubuntu 10.0.4 LTS

2 个答案:

答案 0 :(得分:4)

您没有打开URL的套接字,您必须将其打开到IP或FQDN。

使用

$socket_ur = 'www.mywebsite.com';

可以提供帮助。

但是你想要达到什么目的呢?

答案 1 :(得分:0)

您忘记了文件指针变量

之前的$符号
if(!$fp) { print "Bah, hambug!. Connect to $socket_url failed. Error: $errstr"; } ?>