ссылаясь на предыдущий вопрос здесь Генератор HTML: конвертируйте HTML в обычный текст и помещайте в текстовое поле, используя PHP
Теперь у меня есть некоторые проблемы, даже если ответ даст ожидаемый результат.
Я получил эти 3 страницы:
page1.php
// This page contain two columns, one for the form that take the
variables, and other one that contain the iframe that must to display the plaintext
page2.php
// Cutted code that take $_GET variables and store in $_SESSION
$html = file_get_contents('page3.php');
echo '<textarea readonly style="border:none;resize:none" rows="50" cols="116" value="'. $html .'"></textarea>';
Page3.php
// This is the file page3.php that must to be in plaintext, but first
it must take the variables from $_SESSION and complete the code
Теперь я получаю простой текстовый файл, но переменные не передаются, так как я сохранил их в сеансе. я получил $ var вместо значения.
И текстовое поле отображает только половину файла, не показывая <link>
и весь <style>
теги.
<textarea>
не имеет value
,
Вам нужно отобразить эту переменную внутри тегов.
$html = "Text here";
echo '<textarea readonly style="border:none;resize:none" rows="50" cols="116">'. $html .'</textarea>';
«он должен взять переменные из $ _SESSION и завершить код»
Также обратите внимание, что вы используете сеансы. Убедитесь, что сессия была начата с session_start();
в верхней части этой страницы и для любых других страниц, которые могут использовать сеансы.
Пример:
session_start();
if(isset($_SESSION['var'])){
$_SESSION['var'] = "var";
}
else{
echo "Session is not set.";
}
N.B .: Убедитесь, что вы не выводите перед заголовком.
Обратитесь к следующему в стеке, если вы получили уведомление / предупреждение, отправленное заголовками:
добавлять Отчет об ошибках в начало вашего файла (ов), который поможет найти ошибки.
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// Then the rest of your code
Примечание: Отображать ошибки следует только в постановке, а не в производстве.
Тестовый пример, который оказался успешным, повторяющийся var
внутри <textarea>
:
<?php
session_start();
if(isset($_SESSION['var'])){
$_SESSION['var'] = "var";
$var = $_SESSION['var'];
}
else{
echo "Session is not set.";
}
// $html = "Text here";
$html = $var;
echo '<textarea readonly style="border:none;resize:none" rows="50" cols="116">'. $html .'</textarea>';
Редактировать:
Для присвоения массивов GET массивам сеансов используйте следующую модель.
<?php
session_start();
$_GET ['lb1'] = "lb1";
$lb1 = $_GET ['lb1'];
$_GET ['lb1'] = $_SESSION["lb1"];
$_SESSION["lb1"] = $lb1;
//echo "Hey LB1 " . $lb1;
$lb1_session = $lb1;
$_GET ['lb2'] = "lb2";
$lb2 = $_GET ['lb2'];
$_GET ['lb2'] = $_SESSION["lb2"];
$_SESSION["lb2"] = $lb2;
//echo "Hey LB2" . $lb2;
$lb2_session = $lb2;
$html = $lb1_session . "\n". $lb2_session;
echo '<textarea readonly style="border:none;resize:none" rows="50" cols="116">'. $html .'</textarea>';
?>
<a href="check_get_sessions.php">Check GET sessions</a>
check_get_sessions.php
<?php
session_start();
if(isset($_SESSION['lb1'])){
$lb1_session = $_SESSION['lb1'];
echo $lb1_session;
}if(isset($_SESSION['lb2'])){
$lb2_session = $_SESSION['lb2'];
echo $lb2_session;
}
$html = $lb1_session . "\n". $lb2_session;
echo '<textarea readonly style="border:none;resize:none" rows="50" cols="116">'. $html .'</textarea>';
Это лучшее, что я могу вам предложить.
дела $html = $lb1_session . "\n". $lb2_session;
ты можешь использовать "\n"
в качестве разделителей между каждой переменной, которая будет отражена. Или же, <br>
если ты хочешь; Выбор за вами.
Вышеуказанное присваивает $html
переменная в цепочку переменных. Вы можете добавить другие, которые должны быть добавлены $lb3, $lb4, $lb5
и т.п.
Удачи! (Буон Фортунато)
Других решений пока нет …