当我更改服务器时,Steam作为OpenID停止工作

时间:2013-07-13 18:27:20

标签: php openid steam

我做了一个使用Steam作为OpenID提供商的网站。我首先在共享主机上托管它。

但流量从一天的50个用户增加到一天的1000个。我没想到,不得不改变我的主人。我采用了另一个具有更好性能的共享主机等,以了解它将如何发展。但现在有一个问题。

使用Steam的OpenID登录在最后一个主机上完美运行不再有效。我试过谷歌,它运作良好。所以我认为我的脚本不使用我的新主机上未启用的功能。

因此,当我输入Steam标识时,它会在大约30秒内加载,然后Chrome会向我返回错误ERR_EMPTY_RESPONSE。我试图激活error_reporting E_ALL,但它也是如此。

我正在使用LightOpenID,这是代码的一部分:

    $openid->identity = 'http://steamcommunity.com/openid';
    header('Location: ' . $openid->authUrl());

实际上,每当我调用$ openid-> authUrl()时,它都不起作用。以下是完整的代码:http://pastebin.com/rChDzECq

我该如何解决这个问题?先感谢您。

1 个答案:

答案 0 :(得分:1)

在过去的几个小时里,我也遇到了与LightOpenID代码作斗争的问题。我终于成功了,这就是我在这个过程中学到的东西。

  1. header()命令之前绝对没有HTML输出。即使是最小的空间也阻止了命令重定向任何东西。

  2. 我的服务器不允许使用file_get_contents(),只是从传递给它的URL返回了404错误。您可以使用自定义file_get_contents_curl()命令解决此问题。这是我自己使用的那个:

    function file_get_contents_curl($url) {
        $ch = curl_init();
    
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
    
        $data = curl_exec($ch);
        curl_close($ch);
    
        return $data;
    }
    
  3. 我知道这是一个迟到的答案,但我希望它会帮助别人。