Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> добавление записи после обновления страницы 
:(
    Опции темы
*^angel^*
  Дата 19.1.2005, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 5.3.2003
Где: Столица нашей нео бъятной Родины

Репутация: нет
Всего: нет



Добрый день!

я добавляю запись в БД, после чего появляется стрнаица с фразой "Новость создана. Вернуться к просмотру всех новостей" и ссылка на все новости. Если находясь на этой стрнаицы сделать refresh, то созданная запись продублируется и появится в БД (естественно со своим id).

Что нужно сделать, чтобы после обновления страницы запись не дублировалась?
PM MAIL ICQ   Вверх
Mont
Дата 19.1.2005, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Vingrad developer
Сообщений: 274
Регистрация: 13.11.2004
Где: Altay

Репутация: 8
Всего: 12



Первое что пришло на ум - в сессиях хранить переменную, о том что добавилась новость... при выводе формы присвоить ей 0, при удачном занесении в БД - 1. И по ней потом ориентироваться при рефреше.

Второй вариант проверить в базе наличие такой новости.


--------------------
"Если однажды Вдруг
Меня не окажется вовсе
в заповедной заветной тарелке
Твоего праведного сновидения
Знай - Неуловимые мстители настигли меня."
© Егор Летов
PM MAIL ICQ   Вверх
Mal Hack
Дата 19.1.2005, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Все проще. Надо убить POST потоки.
header( "Location:" . $_SERVER['SCRIPT_NAME'] );
exit;
PM ICQ   Вверх
*^angel^*
Дата 19.1.2005, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 5.3.2003
Где: Столица нашей нео бъятной Родины

Репутация: нет
Всего: нет



2 Mal Hack

а куда вставлять?
PM MAIL ICQ   Вверх
Opik
Дата 19.1.2005, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



*^angel^*
после запроса добавления в базу. Но перед выводом чего либо на экран.
PM MAIL Skype   Вверх
*^angel^*
Дата 19.1.2005, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 5.3.2003
Где: Столица нашей нео бъятной Родины

Репутация: нет
Всего: нет



пишет ошибку:
Код

Warning: Cannot modify header information - headers already sent by (output started at
z:\home\wssite.ru\www\admin\addnews.php:11) in z:\home\wssite.ru\www\admin\addnews.php on line 25

это строка, где написан headr(...)

вот код
Код

<html>
<head>
<title>добавление новости</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link rel="StyleSheet" type="text/css" href="style.css">
</head>
<body>
<?php
include "../config.php";
// Проверим - достаточно ли информации для занесения в базу данных
if(empty($_POST['zagolov'])) links("Отсутствует заголовок");
if(empty($_POST['info'])) links("Содержание не введено");

// Заменяем одинарные кавычки обратными, чтобы избежать конфликта
// при добавлении информации в таблицу
$_POST['zagolov'] = str_replace("'", "`", $_POST['zagolov']);
$_POST['info'] = str_replace("'", "`", $_POST['info']);

// Формируем и выполняем SQL-запрос на добавление новости
$query = "INSERT INTO news (zagolovok, info, d_o_n) VALUES('$zagolov','$info', now())";
header( "Location:" . $_SERVER['SCRIPT_NAME'] );
exit;
$result = mysql_query($query);
// Выполнить запрос. Если произойдет ошибка - вывести ее.  
if ($result)
{
echo "<b>Новость добавлена в базу данных.</b><br>";
echo "<a href=\"index-a.php\">Перейти на страницу администрирования новостей</a>";
}
else puterror("Ошибка запроса к таблице новостей.");

?>

</body>
</html>


Это сообщение отредактировал(а) *^angel^* - 1.2.2005, 18:46
PM MAIL ICQ   Вверх
Opik
Дата 19.1.2005, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



*^angel^*
читаем внимательнее:
Цитата
Но перед выводом чего либо на экран.
, а это значит, что должно быть так:

Код

<?php
include "../config.php";
// Проверим - достаточно ли информации для занесения в базу данных
if(empty($_POST['zagolov'])) links("Отсутствует заголовок");
if(empty($_POST['info'])) links("Содержание не введено");

// Заменяем одинарные кавычки обратными, чтобы избежать конфликта
// при добавлении информации в таблицу
//$_POST['zagolov'] = str_replace("'", "`", $_POST['zagolov']); лучше делать не так :)
//$_POST['info'] = str_replace("'", "`", $_POST['info']);
$zalogov = mysql_escape_string($_POST['zagolov']); // аналогично со вторым.

// Формируем и выполняем SQL-запрос на добавление новости
$query = "INSERT INTO news (zagolovok, info, d_o_n) VALUES('$zagolov','$info', now())";
$result = mysql_query($query);
header( "Location:" . $_SERVER['SCRIPT_NAME'] );
exit;
// Всё что после exit - не имеет смысла, т.к произойдет редирект

?>
<html>
<head>
<title>добавление новости</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link rel="StyleSheet" type="text/css" href="style.css">
</head>
<body>
а выводить значит ничего и не будет, значит "пихаем" это в отдельный файл :)
</body>
</html>

PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0785 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.