Недавно начал писать новостной модуль (_http://lightengine.exofire.net/?page=news), ничего особенного из себя не представляющий.
На страничке добавления хочу ввести функцию "Предосмотра новости перед публикацией",
но ума не приложу как это сделать, чтобы не потерять данные из формы добавления новости.
Вот страница для добавления новости:
if($_POST['add'] =='') {
echo "<hr><p><form enctype=\"multipart/form-data\" method=post action=\"?page=admin&act=news&command=add\">
<table width=\"450\" border=\"0\" cellpadding=\"1\" cellspacing=\"1\">
<tr><td>Название:</td><td><input class=\"input\" size=\"60\" type=\"text\" name=\"title\"></td> </tr>
<tr><td>Автор:</td><td><input class=\"input\" size=\"60\" type=\"text\" name=\"autor\"></td></tr>
<tr><td>Дата:</td><td><input class=\"input\" size=\"60\" type=\"text\" name=\"posted\"></td></tr>
<tr><td>Содержание:</td><td><textarea class=\"input\" name=\"body\" rows=\"10\" cols=\"45\"></textarea></td></tr>
<tr><td>Отображать:</td><td><input type=\"checkbox\" name=\"hide\"></td></tr>
<tr><td> </td><td><input type=\"submit\" name=\"add\" value=\"Добавить новость\"> <input type=\"submit\" name=\"preview\" value=\"Предварительный просмотр\"></td></tr>
</table>
</form></p>";
}
else {
$title = $_POST['title'];
$body = nl2br($_POST['body']);
$posted = $_POST['posted'];
$autor = $_POST['autor'];
$hide = $_POST['hide'];
$showhide = $_POST['hide'] ? 'show' : 'hide';
//Выполняем запрос
$query = @mysql_query ("INSERT INTO `light_news` VALUES ('', '".$title."', '".$body."', '".$posted."', '".$autor."', '".$showhide."');");
if($query) {echo "<head><meta http-equiv='Refresh' content='3; url=?page=admin&act=news'></head><hr><p class=\"block\"><strong>Поздравляем!</strong> Новость успешно добавлена, переадресация через 3 секунды.</p>";} else {echo '<hr><p class="block"><strong>Ошибка!</strong> Невозможно добавить новость.</p>';}
}
Данные из формы я вывожу через эхо:
echo "<h2>$title</h2>
<p class=\"timestamp\">Опубликовано $posted by $autor</p>
<p>$body</p>";
Будьте любезны подсказать как сделать такую фичу.
Если есть варианты исправления моего #####кода - пишите.
Спустя 25 минут, 57 секунд (1.01.2010 - 15:50) Romms написал(а):
1.
Цитата |
if($_POST['add'] =='') { |
может правильнее if(isset($_POST['add'])) {
2. Даные, перед отправки в базу нужно обработать с помощью mysql_real_escape_string();
3. Алгоритм передопросмотра:
Если нажато "предопросмотр" то отправляем даные с какойто позначкой на туже страницу где и форма, после прихода даных с позначкой, выводим нужный текст(преварительно обработав его(например заменив значки смайликов на изображения), и также выводим эту форму вот только в поля ставим значения например(для input))value="$_POST['name']", вот и всё!
Спустя 22 минуты, 52 секунды (1.01.2010 - 16:13) AtomoS написал(а):
Romms, спасибо. можно показать пример по третьему пункту?
а то как бы пхп только начал использовать((
а то как бы пхп только начал использовать((