Вставьте переменные в $ _GET - PullRequest
0 голосов
/ 25 марта 2012

У меня две страницы.Первый, который мы открываем с переменными $ _POST в его URL, второй открывается внутри первого через iframe.Оба php-файла, второй предназначен для манипулирования html.

Переменные, которые я получил в $ _POST, передаются в iframe через $ _GET:

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

$first, $second, $third переменные содержат в себе текст с некоторыми htmlи новые строки (\ n).

Проблема в том, что когда данные передаются в iframe с помощью $_GET, все новые строки в переменных исчезают.

Попытка передать переменные, такие как base64_encode($first), а затем декодировать их с помощью base64_decode().Он работает с ошибками, некоторые части текста не декодируются правильно, возможно, из-за неправильных символов в URL-адресе iframe.

Также пытался выбросить все переменные в один массив, сериализовать его и затем кодировать с помощью base64 - таким образомсервер выдает ошибку 500 (он также выдает ошибку 404).

Пожалуйста, не спрашивайте меня, почему я сделал такую ​​структуру страниц.Его нельзя менять.

Какое решение для этого?

Ответы [ 4 ]

3 голосов
/ 25 марта 2012

А как насчет urlencode после base64_encode?

0 голосов
/ 25 марта 2012

В зависимости от вашей ситуации вы также можете использовать Javascript для доступа к родительскому фрейму.

Вы можете сохранить данные в массиве javascript первого окна, тогда подокно iframe может вызвать его через parent. *

Некоторые подробности из других вопросов .

0 голосов
/ 25 марта 2012

Ваш первоначальный подход неверен.

Переменная POST никуда не должна идти. После запроса POST сервер должен заказать браузер для перезагрузки страницы. Целая страница, не только iframe в ней.

После этой перезагрузки вы можете показывать пользователю любые фреймы.
Чтобы передать данные туда, сеанс был бы идеальным решением.
Тем не менее, определенное решение зависит от характера данных и общего назначения всей путаницы.

0 голосов
/ 25 марта 2012

Вы можете записать содержимое $first,$second,$third в first.txt,second.txt,third.txt, а затем открыть текстовые файлы внутри вашего сценария iframe

...