эм) простите мне мое не знание, но ради расширения кругозора знаний.
подскажите или если не затруднит приведите элементарный пример или ссылку на реализацию данного метода.
xmoonlight: почему не в какие ворота? на сайтах частенько вижу форму для отправки анонимных комментариев так сказать.
то что Вы писали выше, $_SESSION['hash'] = md5($user_comment); Пошел POST и я проверяю if ($_SESSION['hash'] == md5($user_comment)) die(дубликат);
разве стоит на это полагаться? а если пользователь удалит сессию через консоль то проверки будут проходить впустую? Объясните пожалуйста я что то не понимаю(
простите за глупый вопрос но как получить hash? md5($user_name.$user_email.$user_comment); ? а если пользователь удалит сессию через консоль, с чем проверять? проверка пройдет так будто он добавляет свой первый комментарий?
Игорь: не пойму, вот пользователь(неавторизован) оставляет комментарий пошел POST запрос:
Каковы мои действия? это первая попытка
cookies/sessions пусто
значит сразу лезу в БД и вытаскиваю последний комментарий пользователя с (email + имя) или просто (email) не знаю даже как уникализировать и смотрю дату этого комментария если она скажем так больше чем текущее время + 1 минута, значит можно добавлять, а так же параллельно провести проверку на дубль комментария? Дальше что? $_SESSION['comment'] = now(); #пометил пользователя сессией
теперь вторая попытка и получается я сразу проверяю сессию? if (!empty($_SESSION['comment']) && $_SESSION['comment'] < now()) то опять та же проверка? ведь мне нужно проверить и на дубль? А если на дубль я бы не проверял то в случае условия TRUE я мог бы сразу публиковать?
какой то не логичный механизм) или я что то не понял?
так если вы предлагаете ещё проверять в базе зачем тогда метка в сессии? Я ведь каждый раз буду вынужден дергать БД. И как собственно проверить интервал? пользователи не авторизованы, как же мне идентифицировать пользователя? брать по имени или по мылу последний комментарий смотреть его дату добавления и сравнивать с текущей?
SELECT FROM FILES WHERE и т.д но не хотелось бы дергать БД и ищу альтернативу, наиболее оптимизированный вариант что бы без нагрузок и соответственно безопасный.
вот поэтому и копаю... т.е в данной ситуации в принципе все работает? но я делаю не так как нужно? а как нужно?
Алексей Уколов: Adamos: просто интересно, чем недостаточно preg_match тут ведь жесткая проверка по шаблону, если есть что то кроме маленьких латинских букв 403
Если не трудно ответьте на вышепоставленный вопрос, а на счет БД не хотелось бы дергать лишний раз БД
Алексей Уколов: ну а если скажем проверять приходящую от пользователя строку preg_match на разрешенные символы, и разрешить только маленькие латинские буквы?
Mikhail Osher: т.е получается в данной ситуации нет больше выхода кроме как загрузить массив на точке входа?) т.к его элементы используются практически везде т.к это локаль)
Виталий IIIFX Хоменко: по требованию это как?
ну вот допустим в данном случаем на главной странице нужно выводить 10 элементов этого массива, логично ведь что нужно загрузить его полностью и обратится к отдельным ячейкам?