Показать выводимые данные в моей форме, чтобы я мог редактировать - PullRequest
0 голосов
/ 10 декабря 2010

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

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

С уважением

edit.php // Отправляет данные формы в content.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

// Пусто, пока что-то не будет отправлено с формой

index.php

// Извлекает данные из content.html и отображает их

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

1 Ответ

0 голосов
/ 10 декабря 2010

Просто распечатайте содержимое в текстовой области, после после его выхода. Это предотвратит 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>
...