- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Сабж.
Создаем сессию $_SESSION['mess'] = rand( 0, 1000 );
В форме <input type="hidden" name="nodub" value=($_SESSION['mess']) />
Публикуем первое сообщение от пользователя и опять $_SESSION['mess'] = rand( 0, 1000 );
Ловим повторное сообщение if( $_POST['nodub'] <> $_SESSION['mess'] ) $err = 'повтор';
Борьба против любителей жать F5 (как ни странно любителей очень много :) )
P.S> надеюсь всё понятно, если что спрашивайте)
Удобно, хорошая идея.
Можно проще: после сохранения записи делать
header('Location: {урл например этой же страницы или страницы со списком комментов}');exit;После этого хоть зазажимайся F5 - обновляться будет уже другая страница и никакие данные никуда не пересылаются :)
Можно проще: после сохранения записи делать
header('Location: {урл например этой же страницы или страницы со списком комментов}');exit;После этого хоть зазажимайся F5 - обновляться будет уже другая страница и никакие данные никуда не пересылаются :)
скорей всего IE всё таки отошлёт (осёл как ни как :D ).. но надо попробовать)
Real-Unior добавил 26.01.2009 в 23:52
Удобно, хорошая идея.
единственное, что cookes должен быть включен, иначе пропустит ( но я хочу это использовать для авторизованных пользователей, тоесть авторизация это почти гарантия на включеный приём пиченег :) )
скорей всего IE всё таки отошлёт (осёл как ни как :D ).. но надо попробовать)
Не будет, т.к. обновляется открытая страница, а не введённая.
Не будет, т.к. обновляется открытая страница, а не введённая.
точно) всё окей) отличное решение)
Интересные идеи, а вот от двойного клика как спастись ?
Есть редковато применяемое решение, выгодное с 4 точек зрения
Пихать в каждую форму юзеру uniqueid, валидный только на 1 пост запрос.
В чем бонусы
1) Можно не перезагружать страницу юзеру, не мучая его редиректом.
2) Нет лишнего редиректа, нет лишней загрузки полной страницы, серверу хоть чутка но полегче.
3) Чутка становится лучше по безопасности, т.к. примется только мессага с уникальным ИД, которое сайт сам выдал юзеру (на левых сайтах уже формочки не пройдут).
Это не спасет от одинаковых сообщений как таковых, но спасет от сообщений из одной формы, которые могут быть одинаковы.
4) Слегка помогает от спамеров, по причине пункта 3. Т.к. некоторые спам-боты тупо постят стандартные данные в форму из своей базы, а не сканируют форму каждый раз.
Непосредственно от посылки одинаковых сообщений, спасает банальная проверка на такое же сообщение от юзера в течении предыдущих Х минут (или просто в этом же топике от него же).
По ситуации - можно или склеивать с предыдущим (при условии что запощено в тот же топик) или просто не пропускать.
P.S.: От двойного клика так же есть смысл в любом случае "защищаться" яваскриптом, делая кнопку субмита неактивной сразу после клика на ней. Это конечно не защита, но тоже бывает полезно.
Борьба против любителей жать F5
AJAX. Сейчас уже работает везде. реализуется просто. проблем с F5 не имеет, как и со многим другим. Юзабельность выше.