2016-05-17 3 views
0

ページ 'A'は外部ソースから埋め込まれたiframeを含む.phpページです。

サードパーティのデータベース製品からエンドユーザーに異なるデータベース結果を返すために、クエリ文字列パラメータをiFrameソースURLに追加する必要があります。

私は以下のようなものを、これを行うために <?php echo $_SERVER["QUERY_STRING"]; ?>を使用している

<iframe width="100%" height="1000" frameborder="0" scrolling="auto" 
src="http://www.booking-manager.com/wbm2/page.html?<?php echo $_SERVER["QUERY_STRING"]; ?>"> 
</iframe> 

ページA:私は渡すかもしれないパラメータの

http://www.scotsail.co.uk/mobile/param_test.php 

例:

?companyid=1677&setlang=en&view=SearchResult&filteredcountries=GR&filter_duration=7&setCurrency=GBP&customCssPath=http://www.scotsail.co.uk/mobile/styles/wbm.css&flags=1 

全リンクを、次になり、その後be:

http://www.scotsail.co.uk/mobile/param_test.php?companyid=1677&setlang=en&view=SearchResult&filteredcountries=GR&filter_duration=7&setCurrency=GBP&customCssPath=http://www.scotsail.co.uk/mobile/styles/wbm.css&flags=1 

これは、 Firefox 46.01とIE11で動作します。すなわち、iframeソースがパラメータを受け取って予期した結果を表示しているページが返されます。

これはChromeとSafariののiPhone 6プラス、iPadの3またはデスクトップバージョンのを動作しません。つまりページが返され、iframeのソースは何か(企業ID = XXX)を受信して​​いるが、iframeのソースは、空の結果セットを示します。

さまざまなブラウザーやデバイス間で同じリンクが繰り返しテストされていて、オンラインで見ているパラメータの組み合わせが異なる - 私は何が起こっているのか分かりません。私はキーボードが20時間続いているので、私が密集していることを願っています。

質問

あなたは、この動作を複製することはできますか? この現象がなぜ発生しているのか知っていますか? 修正プログラムまたは回避策を提案できますか?

私は本当に私が信じられないほど愚かで何かばかげていることを願っています。ご協力いただきありがとうございます。

よろしく

スピンネーカー

UPDATE - も<?php echo http_build_query($_GET); ?>を試してみましたが、まだ働いて、いくつかのブラウザや他のいくつかではない....私の髪を抜くと同じ奇妙な効果を得るている...

+0

'$ _SERVER ['QUERY_STRING']'はPHPでサーバ上で処理されますが、ブラウザとは関係ありません。 – Barmar

+0

ありがとうございます。はい、私はそれを認識していますが、可能性のある情報源を排除する努力を払って、さまざまなブラウザとは明らかに異なる振る舞いが残っていました/残されました(!) – Spinnaker

+0

"ソースを見る"動作しないブラウザでは? – Barmar

答えて

0

クエリ文字列には特殊文字が含まれているため、URLエンコードする必要があります。クエリ文字列を直接挿入する代わりに、http_build_query($_GET)を使用してください。これはすべてを適切にエスケープします。したがって、次のように変更してください:

<?php echo http_build_query($_GET); ?> 
+0

この回答を書く時間を取ってくれてありがとう - 私はこれを試して、私は最初に実装された方法と同様の方法で動作するようですが、残念ながら元の問題と同じ結果が生成されますが、制御文字は考えていませんでした。ありがとう – Spinnaker

関連する問題