ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Снова php
  #1  
Старый 20.03.2006, 21:11
Аватар для Utochka
Utochka
Постоянный
Регистрация: 21.12.2005
Сообщений: 620
Провел на форуме:
1867718

Репутация: 268


По умолчанию Снова php

У меня есть скрипт в нем форма для постинга сообщений, метод передачи данных POST. Вроде все ok,после того как я добавил сообщение и перезагрузил страницу оно появляеться на странице, но если нажать обновить в браузере, то добавляеться еще одна запись с предыдущими данными! Как профиксить?
 
Ответить с цитированием

  #2  
Старый 20.03.2006, 23:24
Аватар для DetMyl
DetMyl
Участник форума
Регистрация: 17.12.2005
Сообщений: 121
Провел на форуме:
551495

Репутация: 227
По умолчанию

Конечно что появляется, броузер повторяет полностью Post запрос и скрипт его обрабатывает.
Надо ставить флажок в сессии, что данные уже пришли и были обработаны, и при повторном постинге не реагировать на них, есть и другие методы, но не имея понятия что твой скрипт делает тяжело что-то конкретное посоветовать, уточняй
 
Ответить с цитированием

  #3  
Старый 20.03.2006, 23:39
Аватар для k1b0rg
k1b0rg
Тут может быть ваша реклама.
Регистрация: 30.07.2005
Сообщений: 1,243
Провел на форуме:
4520553

Репутация: 1316


По умолчанию

обнуляй данные после добавления
 
Ответить с цитированием

  #4  
Старый 21.03.2006, 12:09
Аватар для ferryman
ferryman
Познающий
Регистрация: 13.02.2006
Сообщений: 88
Провел на форуме:
304371

Репутация: 16
Отправить сообщение для ferryman с помощью ICQ
По умолчанию

можно и проще
Код:
if ($_SERVER['REQUEST_METHOD']=="POST"){
// add data
header("Location: ".$_SERVER['PHP_SELF']."?data=added);
}else{
// form
}
т.е. после добавления даных тебя перекинет и пост масив будет убит...
 
Ответить с цитированием

  #5  
Старый 21.03.2006, 12:13
Аватар для xPow
xPow
Новичок
Регистрация: 23.06.2005
Сообщений: 28
Провел на форуме:
80272

Репутация: 0
По умолчанию

1) добавить спец айди и проверять его, на наличие в БД
2) проверять все поля, на наличие в БД
3) как было сказано выше: редирект
 
Ответить с цитированием

  #6  
Старый 21.03.2006, 15:55
Аватар для D1mOn
D1mOn
Постоянный
Регистрация: 02.10.2005
Сообщений: 490
Провел на форуме:
2333839

Репутация: 212
По умолчанию

откуда знаешь что бд???
 
Ответить с цитированием

  #7  
Старый 21.03.2006, 22:35
Аватар для Trinux
Trinux
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,149
Провел на форуме:
941818

Репутация: 569


По умолчанию

2 xPow
Ты предлогаешь при каждом постинге прогонять всю БД и искать наличие точного вхождения? =))) герой. Ты после того как пропылесосишь ковер тоже на коленках полаешь и ищешь, не осталась ли пыль где-нить? =))

2 NeX
все просто, пишешь
<form action='add.php'>
в add.php пишешь код, что нужен, далее
header("Location: ".$_SERVER['HTTP_REFERER']);echo 'exit';exit;
и все. Хоть пообжимайся F5
 
Ответить с цитированием

  #8  
Старый 22.03.2006, 01:14
Аватар для xPow
xPow
Новичок
Регистрация: 23.06.2005
Сообщений: 28
Провел на форуме:
80272

Репутация: 0
По умолчанию

Trinux, уважаемы перед тем как ехидничать немного сначала почитали б доки.
и если ты лишь поверхносно знаком с бд, в часности реляционными, то знал бы, что даже с миллионами записей, по индексу будет искать мгновенно.

Цитата:
2 NeX
все просто, пишешь
<form action='add.php'>
в add.php пишешь код, что нужен, далее
header("Location: ".$_SERVER['HTTP_REFERER']);echo 'exit';exit;
и все. Хоть пообжимайся F5
двумя постами выше это есть


Цитата:
header("Location: ".$_SERVER['HTTP_REFERER']);
к мому же еще совет даешь бажный!


Цитата:
echo 'exit';exit;
die('exit'); ?


умник нашелся...

вотъ.

Последний раз редактировалось xPow; 22.03.2006 в 01:19..
 
Ответить с цитированием

  #9  
Старый 22.03.2006, 11:16
Аватар для ferryman
ferryman
Познающий
Регистрация: 13.02.2006
Сообщений: 88
Провел на форуме:
304371

Репутация: 16
Отправить сообщение для ferryman с помощью ICQ
По умолчанию

Какой выгон уже начали писать, зачем айди??? зачем база обыкновенный пост или гет...
...
сюда
 
Ответить с цитированием

  #10  
Старый 22.03.2006, 12:44
Аватар для Trinux
Trinux
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,149
Провел на форуме:
941818

Репутация: 569


По умолчанию

2 xPow
Парень, поверь на слово, с sql я знаком не поверхностно а на практике. Смотри nnm.ru, моя работа, стоит на mysql и уж поверь, за год поддержки нового движка я перееюзал все возможные способы оптимизации. И поверь мне на слово, если в миллионной таблице ты ставишь индекс хотя бы на поле типа CHAR\VARCHAR то твой сайт умрет после 100 хитов в день. А опираясь на твою вторую рекомендацию, мне получается и все текстовые поля придется глядеть? =))) а на них чего поставим? Текстовые поля никакая реляционная БД не индексит =))) mysql предлагает FULLTEXT. Да, работает он достаточно быстро, но не на миллионе записей. Проверять наличие записей по все БД глупо! Архитекторы не разбирают свое зданить после того как они его построили, чтобы убедится что все верно было сделано.

P.S. Знаешь, любитель доков, в мире не существует ни одной реляционной БД на текущей момент.

Цитата:
двумя постами выше это есть
Да, одно и то же. Только в моес способе это отдельный файл, а "двумя постами выше" человек предлогал пихать код прям туда же

Цитата:
к мому же еще совет даешь бажный!
да, признаю, правильно:
header('Location: '.str_replace("\n", "\r", $_SERVER['HTTP_REFERER']));

Цитата:
die('exit'); ?
echo 'exit';exit; ?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
На PHP, как на "Новые ворота"... Mertvii-Listopad Чужие Статьи 7 18.09.2006 12:42
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Пишем Php код, устойчивый к ошибкам k00p3r Чужие Статьи 0 10.07.2005 22:34
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ