2012-03-25 3 views
0

私は2ページあります。最初に$ _POST変数をurlで開き、2番目の変数をiframe経由で最初に開きます。両方のphpファイル、2番目はhtml操作です。私は$ _POSTの中だ

変数は$ _GETを経由してiFrameにするために渡されます。

echo '<iframe src="index.php&first=' . $first . '&second=' . $second . '&third=' . $third . '&iframe=true"></iframe>'; 

$first, $second, $third変数一部のHTMLと新しいライン(\ n)がでそれら内のテキストを持っています。

問題は、データが$_GETでiFrameにするために渡されたときに、変数内のすべての新しい行が消え、あります。

base64_encode($first)ような変数を渡すためにしようと試み、その後、base64_decode()によってそれらをデコードします。バグがあり、テキストの一部が正しくデコードされません。おそらくiframe urlのシンボルが間違っているためです。

はまた、単一の配列にすべての変数を投げることをシリアル化し、次いで、BASE64によって符号化するためにしようと試み - このようにサーバ(それはまた、404に同じエラーを与える)エラー500が得られます。

私はなぜこのようなページ構造をしたのか聞かないでください。変更しないでください。

これはどのような解決方法ですか?

+0

これには注意してください。クエリ文字列には長さ制限があり、長すぎるものは自動的に切り捨てられ、クライアント側および/またはサーバー側では警告なしに発生する可能性があります。 –

答えて

3

first.txt,second.txt,third.txt$first,$second,$thirdの内容を書いて、あなたのiframeのスクリプト内のテキストファイルを開くことができますか?

+0

あなたは私の尊敬を受けています – Jasper

+0

@Steveは一緒にやっていることはほとんど意味がありません。 –

+0

@あなたの常識私は気にしない、それだけで動作します – Jasper

-1

あなたは何base64_encodeurlencodeについて

+1

彼らは毎回変わっていますが、そうではありません – Jasper

-1

あなたの初期のアプローチは間違っています。

POST変数はどこにも配置しないでください。 POST要求サーバーがブラウザを注文してページを再ロードする必要がある場合。 iframeだけでなく、ページ全体が表示されます。

このリロード後、ユーザーにiframeが表示されることがあります。
そこにデータを渡すには、セッションが理想的な解決策になります。
しかし、特定の解決策は、すべての混乱のデータの性質と全体的な目的に依存します。

0

状況に応じて、Javascriptを使用して親フレームにアクセスすることもできます。

あなたが最初のウィンドウのjavascript配列にデータを格納することができ、その後、iframeのサブウインドウが親を経由して、それを呼び出すことができます。*

Some more detailsfrom other questions

+0

iframeのコンテンツにアクセスする方法がありません – Jasper

+0

ブラウザのセキュリティ政治のために不可能 – Jasper

+0

スティーブ、私は子フレームのコンテンツにアクセスすることを示唆していません。私は子供から親フレームのコンテンツにアクセスすることを提案しています。 ' '、子供から' 'と表示され、オブジェクトオブジェクトが未定義ではないことがわかります。そのため、変数を$ _GET経由で子に渡すのではなく、変数を ' 'それから子iFrameで' parent.myVars.whatever; 'を試してください。 –

関連する問題