1

現在、ユーザーがユーザーを複数のページに接続できる php スクリプトを作成しようとしています。

それがアイデアでした。

私がしようとしているのは、ユーザーがBattlelogにログインしているかどうかを確認し、ユーザー名を取得することです。

それが可能かどうかはわかりません...しかし、私が得ることができる助けをいただければ幸いです!

4

2 に答える 2

1

ここで遭遇する主な問題は、ほとんどの最新のブラウザがクロスドメインセキュリティを採用して、他のWebサイトまたは潜在的に悪意のあるWebサイトが別のブラウザウィンドウのユーザーデータに違法にアクセスできないようにすることです。

あなたが達成したいと思っているのは、クロスサイトスクリプティングと呼ばれるものです。特定の状況下で可能です。たとえば、battlelogが別の開発者がユーザーデータにアクセスするためのAPIを公開している場合です。

もちろん、これにはクロスドメインのサーバー側リクエストが含まれるため、サーバーをプロキシとして使用するか、応答がコールバック関数でラップされたJSON形式で送信されるJSONPWebサービスを使用する必要があります。

PHPスクリプトからのデータへのアクセス:

PHPを使用しているため、APIにアクセスできる必要があります。PHPスクリプトはブラウザにリクエストを送信できないため、battlelogには、スクリプトをWebサイトに埋め込むことができるプラグインアーキテクチャが必要であるか、サーバーからクエリを実行するためのAPIを公開する必要があります。

于 2012-04-07T23:38:39.443 に答える
0

私はこのスクリプトを作成しました。誰かがそれを使ってくれることを願っています。

$data = array( 

'redirect' => '', 

'email' => $email, 

'password' => $password ,

'submit' => 'Sign+in'

); 

$cr = curl_init('http://battlelog.battlefield.com/bf3/gate/login/'); 

curl_setopt($cr, CURLOPT_RETURNTRANSFER, true);

curl_setopt($cr, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);

curl_setopt($cr, CURLOPT_COOKIEJAR, 'cookie.txt');

curl_setopt($cr, CURLOPT_POST, true);

curl_setopt($cr, CURLOPT_POSTFIELDS, $data);

$output = curl_exec($cr);

echo $output;

curl_close($cr);


$cr = curl_init('http://battlelog.battlefield.com/bf3/'); 

curl_setopt($cr, CURLOPT_RETURNTRANSFER, true);

curl_setopt($cr, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);

curl_setopt($cr, CURLOPT_COOKIEFILE, 'cookie.txt');

$output = curl_exec($cr); 

curl_close($cr); 


include '/scripts/shd/simple_html_dom.php';

$html = new simple_html_dom();

$html -> load($output);

foreach($html->find('#base-user-name a') as $e)
{
    $battlelog_username = $e->plaintext;
}
于 2012-04-23T18:31:53.117 に答える