1

次のコードは、タイトルで述べたエラーを生成しています。

        $authkey = "XXXXXXXXXXX";

    if (!isset($_SESSION["steamid"])) {

        $handle = fopen("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=" . $authkey . "&steamids=" . $uid, "r");

        $content = stream_get_contents($handle);

        $stdclass = json_decode($content);

        //var_dump($stdclass);

        $data = get_object_vars($stdclass->response->players[0]);

        foreach ($data as $key => $value) {
            $_SESSION[$key] = $value;
    }

同じ問題のstackoverflowに関する他の質問をここで読みましたが、実際の解決策はありませんでした。私が投稿したコードは、ある種のログインプロセスで呼び出される関数に含まれています。コードをドキュメントの外に置き、そのドキュメントをWebブラウザーで開いても、エラーは発生しません。また、コードは私のローカルマシンで機能しています。しかし、私のサーバーではエラーが発生します。

私のローカルマシンはphp5でubuntu12.04を実行し、外部サーバーubuntu8.04はphp5で実行します。allow_url_fopenは「オン」です。どんな助けでも素晴らしいでしょう。

4

1 に答える 1

1

fopenでは、デフォルトでリモートロケーションを開くことはできません。より安定した方法は、curlを使用することです。

$c = curl_init( sprintf("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=%s&steamids=%s" , $authkey , $uid) );
curl_setopt( $c , CURLOPT_RETURNTRANSFER , true );
$stdClass = json_decode( curl_exec( $c ) );
于 2012-06-21T06:28:54.143 に答える