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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с гостевой на РНР, Написал гостевую, а она.... 
V
    Опции темы
Bester
Дата 27.1.2008, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Проблема такая, создал я гостевую и она даже работает!!! Но, работает не так как хотелось бы. Проблема такая: 
Пишу я сообщение в гостевую, оно добавляется. Но когда я после этого обновляю страницу, то добавляется в гостевуху копия предыдущего сообщения. Написал, пять раз обновил - имею шесть копий. Как сдеть так, что б при обновлении страници предыдущее сообщение не добавлялось ище раз?
PM MAIL   Вверх
source777
Дата 28.1.2008, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

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



Поставить ограничение: не более одного сообщения в минуту... 
P.S. Учитывай что при обновлении страницы некоторые браузеры повторно отсылают POST-запросы, так что это не баг, это фича smile 


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
SelenIT
Дата 28.1.2008, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

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



Цитата(source777 @  28.1.2008,  00:20 Найти цитируемый пост)
это не баг, это фича

В данном случае эта фича явно лишняя. Стандартный выход - редирект после поста (см. здесь).


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Bester
Дата 28.1.2008, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



SelenIT, как должна выглядеть эта строка, если я хочу браузер перенаправить на туже самую страницу, но без данных формы? Если я пишу ее так, то страница грузится безконечно.
Код

header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']); 
exit;


Это сообщение отредактировал(а) Bester - 28.1.2008, 08:40
PM MAIL   Вверх
GeneralElectric
Дата 28.1.2008, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Эта строка должна выглядеть точно так же.
А вот вставлять её надо туда, где ты добавляешь сообщения. А не просто абы куда, в любое место скрипта.
то есть, срабатывать она долдна только тогда, когда у тебя пришли данные формы. Логично?
PM MAIL   Вверх
Bester
Дата 28.1.2008, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Решил я свою проблему только тогда, когда я вставил в скрипт такой код:
Код

if($_POST['msg'] != "") {header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']); 
exit;}

PM MAIL   Вверх
source777
Дата 28.1.2008, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

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



Вообще-то логичнее было бы вызвать вышеуказанный код "header(...)" сразу после добавления записи в БД...


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Bester
Дата 28.1.2008, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



source777, пробовал я так, но при єтом у меня гостевая, после нажатия "Отправить" грузится бесконечно.
PM MAIL   Вверх
GeneralElectric
Дата 28.1.2008, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Bester, скажи, а ты как-то проверяешь, что тебе форму отправили? Или записываешь новое сообщение при любом вызове скрипта?
PM MAIL   Вверх
Bester
Дата 28.1.2008, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Я после редактирования скрипта, обновляю его на сервере через ФТП и проверяю его. А два часа назад установил себе Apache. Юзая Apache тоже проверял скрипт, результаты без изменений.
PM MAIL   Вверх
GeneralElectric
Дата 28.1.2008, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



речь не о редактировании скрипта, а о редактировании гостевой книги.
у тебя все функции гостевой книги в одном скрипте? И отображение и добавление?
PM MAIL   Вверх
Bester
Дата 28.1.2008, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



GeneralElectric, да.
PM MAIL   Вверх
GeneralElectric
Дата 28.1.2008, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



а запись в базу у тебя делается при каждом вызове скрипта, или только когда форму отправляют?
что-то подобное if($_POST['msg'] != "") , только для записи - есть?
PM MAIL   Вверх
Staind
Дата 29.1.2008, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 17.12.2007
Где: Планета сокровищ

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



2Bester, не напрягай человека, выложи наконец хотя бы тот кусок кода, где ты добавляешь сообщение. А то так гадать можно вечно.
--------------------
Ничто так не раздражает человека, как просьба успокоиться
PM MAIL WWW ICQ   Вверх
source777
Дата 29.1.2008, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

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



Цитата(GeneralElectric @  28.1.2008,  23:56 Найти цитируемый пост)
что-то подобное if($_POST['msg'] != "") , только для записи - есть?
видимо нет, раз в цикл впадает, интересно сколько у него уже пустых записей в этой несчастной таблице накопилось?.. Я уж молчу про фильтрацию ввода и SQL-инъекции...



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

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

Внимание:

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

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

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


 




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


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

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