0

Как я могу отобразить выводимые данные, которые (contents.html), чтобы перейти в мою форму textarea (edit.html). Я использую JS HTML WYSIWYG редактор (TinyMCE) на странице формы, чтобы упростить для людей, не имеющих HTML-кода, внести изменения.Отображение выводимых данных в моей форме, поэтому я могу редактировать

(я знаю об атаках XSS, но я бы просто хотел, чтобы это работало сейчас.) Я пробовал эхо, но это не сработает, кто-нибудь знает, как я могу это достичь?

С уважением

edit.php // Отправляет данные формы в contents.html

<?php file_put_contents("content.html", print_r($_POST['content'], true)); ?> 
<form method="post"> 
<textarea name="content" style="width:960px; margin: 0 auto;" rows="20" cols="20"> 


</textarea> 
<input type="submit" name="save" value="Submit" /> 
</form> 

contents.html

не // Blank пока что-то представляется с формой

index.php

// Получение данных из contents.html и отображает его

<?php echo file_get_contents('content.html');?> 
+0

Вы уверены, что на самом деле это написано в этом файле? И что путь правильный в вызове file_get_contents? – profitphp

+0

, когда я перехожу на content.html, он был там написан, и когда я перехожу к index.php, он также был эхом отобран в этот файл. Я просто хочу, чтобы иметь возможность отображать его в данных, которые я ввел в текстовую область формы, поэтому я могу фактически редактировать вместо перезаписывания. – tom

ответ

0

Просто распечатайте содержимое в текстовое поле, после избежать его. Это предотвратит XSS в вашей форме (edit.php) и приведет к правильному отображению содержимого HTML.

Оператор if проверяет, была ли форма отправлена ​​или нет. Если это так, содержимое от $_POST['content'] будет записано в content.html. Примечание: isset($_POST['save']) и name="save" являются необязательными для проверки, была ли форма отправлена ​​или нет, но если у вас несколько параметров отправки (например, кнопка предварительного просмотра), это необходимо.

<?php 
if(isset($_POST['save']) && filter_has_var(INPUT_POST, 'content')){ 
    file_put_contents("content.html", filter_input(INPUT_POST, 'content')); 
} 
?> 

<form method="post"> 
<textarea name="content" style="width:960px; margin: 0 auto;" rows="20" cols="20"><?php 
echo htmlentities(file_get_contents("content.html")); 
?></textarea> 
<input type="submit" name="save" value="Submit" /> 
</form> 
+0

Когда я нажму кнопку «Отправить», он отобразит содержимое, но если я перезагружу страницу, данные исчезнут. Я не уверен, вызвана ли эта проблема выражением PHP над формой. – tom

+0

Да, это было. Повторите мой ответ. – Lekensteyn

+0

Спасибо большое Лекенштейну, это сработало! – tom

Смежные вопросы