2011-07-14 6 views
1

ゲーム関連のプロジェクトの場合。ユーザーのクッキーを使用してxmlにアクセスする

ゲームデータにアクセスするには、ユーザーはアクセス権を「認可」する必要があります。これを行うために、彼らはユーザーのPCに3つのクッキーを設定するサイト上のページにアクセスします。

ユーザーが特定のXML URLを表示すると、ゲームサーバーはこれらのCookieが正しいことを確認し、必要な情報を返します。

私の質問は、ユーザーのCookieを使用してこれらのXMLファイルを解析し、データにスタイリングを追加するなどです。

URLを読み込むためにcURLを使用し、関連するCookieを事前に決定するためにCURLOPT_COOKIEを使用すると、情報が正しく返されます。

ただし、ユーザーのCookieはゲームのドメインにのみ有効であるため、わかりません。

私はこれが可能であると確信していますが、おそらくこの方法ではなく、同じデータを使用する前に行われています。

クッキーのセットは以下のとおりです。

toolbar_code = 19 digit auth code 
toolbar_hash = 19 digit hashed username 
toolbar_remember = true 

答えて

2

あなたは(いずれにせよCORSせず、それはまだ十分に成熟していないのです)XMLクロスドメインを読み取ることができません。

クッキーをチェックしてデータを呼び出し元のサイトに返すリモートスクリプトを作成する最も簡単な方法は、<script>をリモートサイトに指定し、JavaScriptを実行して呼び出し元のデータを与えることです。これを行う通常の方法はJSONPです。

クライアント側:

<script type="text/javascript"> 
    function receiveData() { 
     ...do something... 
    } 
</script> 
<script type="text/javascript" src="http://gamedataserver/getdata.php?jsonp=receiveData"></script> 

サーバー側:

<?php 
    header('Content-Type: text/javascript'); 
    header('Cache-Control: no-cache'); 
    if (...user auth is OK...) { 
     $callbackfn= preg_replace('/[^a-z_]/', '', $_GET['jsonp']); 
     $json= json_encode(...game data...); 
     echo "$callbackfn($json);"; 
    } 
?> 
+0

そこにはいくつかの興味深いポイントが、私はゲームのサイトを制御することはできませんので、確かにそこにJSを実行することができませんでした。しかし、アイデアありがとう。また、「XMLクロスドメインを読むことができません」 - リモートXMLファイルでcURLを使用し、有効なCookieを提供したとき、XMLが返されましたか? – JakeSteam

+0

はい、それはクロスドメインではなく、単純なクライアントサーバーです。クロスドメインは、1つのサイトがユーザーに第三者にリクエストを行うよう指示するときです。 XMLファイルへのクロスドメインアクセスは不可能です(CORSやJSONPのラッピングのように、ターゲットサーバからの明示的な変更は必要ありません)。そうでなければ大きな穴があいます。ゲームサイトがデータを取得するためのサードパーティスクリプトインターフェイスを提供していない場合は、サードパーティのサイトでデータを読み込まないようにするためです。 – bobince

+0

さて、データの使用方法や保存方法などを詳しく説明しているToSもあるので、混乱しているシステムを経由しているだけです。とにかく助けてくれてありがとう。 – JakeSteam

関連する問題