0

Steam を OpenID プロバイダーとして使用する Web サイトを作成しました。最初に共有ホスティングでホストしました。

しかし、トラフィックは 1 日で 50 ユーザーから 1 日で 1000 ユーザーに増加しました。私はそれを期待していなかったので、ホストを変更する必要がありました。パフォーマンスが向上するなど、別の共有ホスティングを使用して、それがどのように成長するかを確認しました. しかし、今問題があります。

前回のホストでは完全に機能していた Steam での OpenID ログインが機能しなくなりました。私はGoogleで試してみましたが、うまくいきました。したがって、スクリプトが新しいホストで有効になっていない機能を使用しているとは思いません。

そのため、Steam ID を入力すると、約 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 に答える