0

我做了一个使用 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

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

4

1 回答 1

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;
    }
    

我知道这是一个迟到的答案,但我希望它会对某人有所帮助。

于 2014-06-06T20:35:19.553 回答