PHP: генерировать HTML в виде открытого текста и вставлять текстовое поле

ссылаясь на предыдущий вопрос здесь Генератор 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> теги.

0

Решение

<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 и т.п.

Удачи! (Буон Фортунато)

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]