Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
загадочные дубликаты
|
|||
|---|---|---|---|
|
#18+
Всем привет. Вобщем есть простенькая админка для добавления платежей в БД сайта. Админка благополучно работает уже года 2. Но недавно появился баг, при добавлении платежей, дублируются записи в БД. Смотрел поле которое отображает время добавления платежей. Там оба платежа идут с одинаковым временем с точностью до секунды. Сам скрипт просто как двери, без циклов и ветвлений. Т.е. для дублирования причин нет. Код скрипта около килобайта, обычный insert вставляющий данные из пост запроса. Сам пост запрос смотрел парсером, смотрел ответ сервера, все выполняется ровно 1 раз. Сегодня дублирование исчезло. Причина гдето в БД или nginx? Ссылку на админку по понятным причинам скинуть не могу. Перезагрузку мускульного процесса делал но не помогло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2014, 17:55 |
|
||
|
загадочные дубликаты
|
|||
|---|---|---|---|
|
#18+
Да просто кликнули два раза подряд на кнопку. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2014, 18:08 |
|
||
|
загадочные дубликаты
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovДа просто кликнули два раза подряд на кнопку. нет, я проверял несколько раз. стоял над душой у людей, ставил парсер. Запрос на скрипт уходил по 1 разу. Я даже сделал на ява скриптах защиту от 2-ного клика, как только кликнули, кнопка становится не видимой до тех пор пока в БД не пропишется новая запись, потом появляется алерт, и после того как пользователь кликнет по алерту, только тогда появится кнопка чтобы добавить новый платеж. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2014, 19:03 |
|
||
|
загадочные дубликаты
|
|||
|---|---|---|---|
|
#18+
Ты недооцениваешь силу лагов. Проверяй лог доступа на сервере. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2014, 19:10 |
|
||
|
загадочные дубликаты
|
|||
|---|---|---|---|
|
#18+
"Я даже сделал на ява скриптах защиту от 2-ного клика, как только кликнули, кнопка становится невидимой до тех пор..." есть гарантия, что скрипт обязательно отработает между двумя нажатиями? Может, чел просто дабл кликает? У меня такое встречалось в наследии, разбирал недавно одну прогу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2014, 09:05 |
|
||
|
загадочные дубликаты
|
|||
|---|---|---|---|
|
#18+
forward12нет, я проверял несколько раз. стоял над душой у людей, ставил парсер. Запрос на скрипт уходил по 1 разу. Я даже сделал на ява скриптах защиту от 2-ного клика, как только кликнули, кнопка становится не видимой до тех пор пока в БД не пропишется новая запись, потом появляется алерт, и после того как пользователь кликнет по алерту, только тогда появится кнопка чтобы добавить новый платеж. От такого нужно не браузере защищаться, а на уровне БД. Примитивный способ - сгенерировать PK на клиенте и отправить серверу для INSERT. При попытке вставки 2-го значения с таким же ID гарантированно получишь облом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2014, 10:39 |
|
||
|
загадочные дубликаты
|
|||
|---|---|---|---|
|
#18+
forward12при добавлении платежей, дублируются записи в БДВ свойствах платежа (тех самых данных, которые вводятся оператором или передаются от другого процесса) обязаны быть однозначно идентифицирующие платёж данные. А в БД эта совокупность однозначно идентифицирующих запись данных (не генерируемая сервером, вроде автоинкремента, а именно свойства платежа) должна быть уникальным ключом. Соответственно вторая копия данных вставлена не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2014, 10:58 |
|
||
|
загадочные дубликаты
|
|||
|---|---|---|---|
|
#18+
DarkMasterforward12нет, я проверял несколько раз. стоял над душой у людей, ставил парсер. Запрос на скрипт уходил по 1 разу. Я даже сделал на ява скриптах защиту от 2-ного клика, как только кликнули, кнопка становится не видимой до тех пор пока в БД не пропишется новая запись, потом появляется алерт, и после того как пользователь кликнет по алерту, только тогда появится кнопка чтобы добавить новый платеж. От такого нужно не браузере защищаться, а на уровне БД. Примитивный способ - сгенерировать PK на клиенте и отправить серверу для INSERT. При попытке вставки 2-го значения с таким же ID гарантированно получишь облом. ну нечто подобное и планируется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2014, 21:17 |
|
||
|
загадочные дубликаты
|
|||
|---|---|---|---|
|
#18+
Akinaforward12при добавлении платежей, дублируются записи в БДВ свойствах платежа (тех самых данных, которые вводятся оператором или передаются от другого процесса) обязаны быть однозначно идентифицирующие платёж данные. А в БД эта совокупность однозначно идентифицирующих запись данных (не генерируемая сервером, вроде автоинкремента, а именно свойства платежа) должна быть уникальным ключом. Соответственно вторая копия данных вставлена не будет. согласен. Но БД проектировал не я. Вобщем старую таблицу я не могу расширить, но добавить дополнительную связанную с уникальными ИД можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2014, 21:19 |
|
||
|
|

start [/forum/topic.php?fid=26&msg=38833883&tid=1494310]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 281ms |
| total: | 414ms |

| 0 / 0 |
