我需要让我的用户通过 iframe 访问远程管理仪表板软件。软件开发人员向我提供了包含在我的页面中的 Curl 代码,并且此代码运行良好......除了我在使用某些特定浏览器时遇到问题的事实。
实际上,我可以使用任何浏览器毫无问题地访问仪表板,但是当我想访问某个特定的远程页面(通过单击仪表板本身中的相关链接)时,我收到来自远程服务器的消息,说我必须登录才能查看那些页面。这很奇怪,因为我已经登录,否则无法看到仪表板。
使用 IE 和 Safari 时会出现问题,但使用 Chrome 或 Firefox 时不会出现问题...我的站点和远程服务器不使用 SSL...现在我们调查了很多天以进行故障排除但没有成功。我在不同位置的 Window 和 Ubuntu 下使用不同的 PC 进行了测试......太疯狂了...... :-(
在使用的代码下方......有人知道为什么我只在某些特定浏览器上遇到问题?
<?php
$api_key = '123-my-api-key-456';
$admin_email = 'my@email.com';
?>
<?php
$response_raw = null;
$api_url = "http://www.remote-server.com/rest/?api_key=$api_key&method=get_login_credentials&email=$admin_email";
if (function_exists('curl_init')) {
$cs = @curl_init($api_url);
if ($cs) {
@curl_setopt ($cs, CURLOPT_RETURNTRANSFER, 1);
$response_raw = @curl_exec ($cs);
@curl_close ($cs);
}
}
if (!$response_raw)
$response_raw = file_get_contents($api_url);
$response_json = json_decode($response_raw, true);
$login_hash = $response_json['data']['login_hash'];
$user_id = $response_json['data']['user_id'];
if ($_REQUEST['mbm_gotourl'])
$iframe_url = $_REQUEST['mbm_gotourl'] . (strpos($_REQUEST['mbm_gotourl'], '?') === false ? "?" : "&") . "login_hash=".$login_hash."&user_id=".$user_id."&mbm_iframe=1";
else
$iframe_url = "http://www.remote-server.com/admin.php?custom-language=FR&login_hash=".$login_hash."&user_id=".$user_id."&mbm_iframe=1";
if ($login_hash && $user_id) {
?>
<iframe id='mbm_be_frame' src='<?php echo $iframe_url;?>' width='944' scrolling='no' frameborder='0' ></iframe>
<script type='text/javascript' src='http://www.remote-server.com/mbm-be.js'></script>
<?php
}
?>