我做了一个使用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
我该如何解决这个问题?先感谢您。
答案 0 :(得分:1)
在过去的几个小时里,我也遇到了与LightOpenID代码作斗争的问题。我终于成功了,这就是我在这个过程中学到的东西。
header()
命令之前绝对没有HTML输出。即使是最小的空间也阻止了命令重定向任何东西。
我的服务器不允许使用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;
}
我知道这是一个迟到的答案,但我希望它会帮助别人。