【问题标题】:Extracting content from external website with authentication.通过身份验证从外部网站提取内容。
【发布时间】:2012-04-07 23:33:12
【问题描述】:

我目前正在尝试创建一个 php 脚本,如果用户能够将他们的用户连接到多个页面。

就是这样。

我要做的是检查用户是否登录到battlelog,然后获取他的用户名。

我不确定这是否可能......但如果我能得到任何帮助,我将不胜感激!

【问题讨论】:

  • 您应该提出问题以避免删除/否决。你试过什么?
  • 当浏览器/访问者发出 HTTP 请求时,您的 PHP 脚本仅包含有关客户端的基本信息,例如 IP 和用户代理。这不足以检查他是否登录了您无法控制的第三方服务。

标签: php curl login external file-get-contents


【解决方案1】:

您将在此处遇到的主要问题是,大多数现代浏览器都采用跨域安全性来确保其他网站或潜在的恶意网站无法非法访问另一个浏览器窗口中的用户数据。

您希望完成的是所谓的跨站点脚本。在某些情况下是可能的。例如,如果战斗日志公开了一个 API 供其他开发人员访问用户数据。

这当然会涉及跨域的服务器端请求,因此您要么需要将服务器用作代理,要么使用 JSONP Web 服务,其中响应以 JSON 格式发送并包含在回调函数中。

从 PHP 脚本访问数据:

由于您使用的是 PHP,因此您需要访问 API。 PHP 脚本无法向浏览器发出请求,因此 Battlelog 需要有一个插件架构,您可以在其中将脚本嵌入到他们的网站中,或者他们需要公开一个 API 供您从您的服务器查询。

【讨论】:

  • 我相信我的用户会输入正确的详细信息。祝你有美好的一天!
【解决方案2】:

我创建了这个脚本,我希望有人会发现它的用途。

$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;
}

【讨论】:

  • 由于您是在回答自己的问题,因此您还应该在回答中解释这是如何工作的,以便其他人能够理解您所做的事情。例如,您可以通过“编辑”答案来使用代码内 cmets 进行澄清。从您的问题来看,听起来您正在尝试查询浏览器。不过,很高兴你回来为其他人提供解决方案。干得好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-05
  • 1970-01-01
  • 1970-01-01
  • 2016-06-23
  • 2014-02-19
  • 2013-09-25
相关资源
最近更新 更多