Добрый вечер ребята У меня такой вопрос Допустим html form отправляет данные на пхп обработчик и этот обработчик записывает данные в файл а потом перенаправляет юзера , я хочу чтоб перед тем как записывать данные он проверял что эти данные уже записывались или нет , как бы хочу защитится от флуда без капчи Буду рад услышать ваши предложении
ну можно хэш всех полей конкатинированных в mysql UNIQUE куда нить записывать. и проверять при записи. можно и без UNIQUE на самом то деле , но с ним уже 100% 2 одинаковых записей не будет. можешь прямо отбельную ячейку для хэша в таблице сделать. и сделать ее UNIQUE . только про trim не забудь. или вообще все пробельные символы вырежи. и в нижний регистр заодно
PHP: $file=file('file.txt'); $p='123'.PHP_EOL;//что искать +символ перевода строки if(in_array($p,$file)){ echo 'Запись присутствует!'; }else{ echo 'Отсутствует!'; }
Без синхронизации доступа к файлу(e.g. flock), на момент проверки, нет гарантий что повтора не будет.
а почему нет ? почему файл а не mysql ? данные в файлах могут только очень начинающие хранить. гибкость выборок и вставок в файл просто курит в стороне .потому и бд. есть спец миханизмы называющиеся базы данных специально для этого предназначенные. пока ты свои парсеры будешь писать я 1 запрос добавлю. к тому же не засираю систему лишними файлами а использую 1 дополнительную ячейку в строке.