133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
|
|||||||||||
1 | |||||||||||
Запрет многократного нажатия на кнопку на PHP03.01.2016, 21:56. Показов 4734. Ответов 18
Метки нет (Все метки)
Как запретить многократную отправку формы через button , иначе ломается счетчик верных ответов. Отвечаем на 1 вопрос верно нажав на нее +100500 раз, столько и выводит потом счетчик правильных ответов.
на чистом PHP это можно сделать не прибегая к java & ajax? Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
0
|
03.01.2016, 21:56 | |
Ответы с готовыми решениями:
18
После нажатия на кнопку выполнять сценарий php и javascript (или 2 сценария php) Возможность многократного нажатия при зажимании По событию нажатия на кнопку вызвать функцию, в которой ждать нового нажатия на ту же самую кнопку Вытягивание из базы в текстовое поле, после нажатия на кнопку в PHP |
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
|
03.01.2016, 22:22 | 2 |
Именно нажатие на кнопку средствами PHP запретить нельзя. Можно запретить повторное добавление данных в БД.
0
|
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
|
|
03.01.2016, 22:27 [ТС] | 3 |
добавления там нету, там идет типо тест(викторина) человек отвечает на вопрос , если верно выводится след рандомный вопрос. В счетчик добавляется +1 , как только в счетчике натикало 5 верных ответов подряд, вопросы усложняются и выводятся уже более сложные.
А если нажать на 1 верный ответ +100500 раз то все ломается. С бд мы максимум работаем как с выборкой , ничего не инсертим. максимум мы работаем с сессией , верное число ответов записывается в сессию
0
|
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
|
03.01.2016, 23:31 | 4 |
Добавляйте также идентификаторы вопросов, а при выборе верного ответа проверяйте, не отвечал ли юзер уже на этот вопрос.
И сложность, получается, тоже нужно хранить в сессии.
0
|
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
|
||||||
04.01.2016, 00:18 [ТС] | 5 | |||||
А как собственно мне исключить эти вопросы на которые ответили?
Допустим я запишу их при выборке и запишу в массив из под сессии,а дальше как? Подкиньте индейку) Код я выложил в первом посту
Потом уже привожу результат запроса к числу , и заношу в переменную $qrand и с ее помощью вытаскиваю уже все остальное
0
|
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
|||||||||||
04.01.2016, 02:13 | 6 | ||||||||||
Допустим, пользователь верно ответил на вопрос. Добавляем этот ответ в массив:
0
|
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
|
||||||
04.01.2016, 14:54 [ТС] | 7 | |||||
0
|
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
|
04.01.2016, 17:34 | 8 |
maruo,
1. Код скрипта. 2. Точное описание ошибки.
0
|
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
|
|||||||||||
04.01.2016, 22:07 [ТС] | 9 | ||||||||||
ааа все у меня крышняк поедет скоро.
ДЕнь , целый день бьюсь с этой формой и кнопкой. Не могу предотвратить на java повторное нажатие и отправка. Прошу уже ткните носом где проблема. пробовал убивать кнопку так
Если че весь код в первом посту
0
|
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
|
04.01.2016, 22:31 | 10 |
Некорректно ставите задачу.
Что происходит при отправке формы? Браузер посылает запрос серверу, сервер возвращает html-страницу, которую браузер отображает. Т.е. после отправки формы вы переходите на новую страницу, даже если её содержимое не отличается от старой. Разумеется, никакие блокировки на повторное нажатие работать не будут, поскольку вы не совершаете повторных нажатий - после каждого нажатия страница перезагружается. На мой взгляд, самое простое - хранить верные ответы в сессиях/куках, об этом я писал ранее. Можно ещё придумать что-нибудь с AJAX (отправка формы без перезагрузки страницы, после чего блок кнопки), но это будет значительно сложней, и опытный юзер легко обойдёт эту защиту.
0
|
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
|
|
04.01.2016, 22:42 [ТС] | 11 |
Ммм как бы сказать, мне надо что бы когда дали ответ на вопрос он сразу проверился, и если не верно, то кыш отсюда нафиг
Помогите тогда исправить мне код, покажите где нужно исправить Добавлено через 6 минут и да хранить верные ответы в сессии не подойдет. Вопросов может быть +100500 и получается +100500 вопросов * +100500 вариантов ответов будет не логично.
0
|
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
|
04.01.2016, 22:45 | 12 |
maruo, ну это не идёт вразрез с моим предложением.
Проверяете правильность ответа. Если неправильный - "кыш". Если правильный - проверяете в сессии, не отвечал ли юзер на этот вопрос (или давал ли он ранее такой же ответ, впринципе нет разницы), если не отвечал - идём дальше, если отвечал - "кыш". Добавлено через 1 минуту Я предлагаю хранить в сессии вопросы или ответы, которые были конкретным юзером пройдены. Разумеется, все существующие хранить нет смысла.
0
|
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
|
|
04.01.2016, 22:47 [ТС] | 13 |
Над этим я работаю уже по вашим подсказкам.
Но мне не дает покоя эта проблема с многократным нажатием , ведь пользователь просто сломает весь код этим клацаньем
0
|
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
||||||
04.01.2016, 23:00 | 14 | |||||
maruo,
А разве это проблема? Ну тыкнет юзер несколько раз по кнопке, с тем же успехом можно зажать Ctrl+F5.
Для этого нужно весь код полностью видеть, ну и разбираться долго...
Вот маленький пример концепции, тыкнуть любую из кнопок можно только 1 раз:
0
|
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
|
|
04.01.2016, 23:03 [ТС] | 15 |
Это еще какая проблема)
1 верный ответ 1 очко. Что бы перейти на более сложные ответы нужно 5 верных ответов. Если пользователь нажимает на верный ответ +100500 раз, то столько ему очков и прилетает, а далее вы уже понимаете в чем проблема. Весь код я могу кинуть он не такой большой в принципе весь код в 1м посту
0
|
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
|
04.01.2016, 23:08 | 16 |
А, ну это как раз описанным выше способом решается.
Ок, кидайте, только посмотрю скорее всего завтра, сейчас уже время позднее.
0
|
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
|
|||||||||||
05.01.2016, 14:38 [ТС] | 17 | ||||||||||
quest.php
answer.php
Добавлено через 15 часов 25 минут А можно ли про этот способ узнать ? и как его пофиксить можно? Что бы нельзя было обойти
0
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
05.01.2016, 15:06 | 18 |
Чтобы нельзя было обойти - проверка всего на стороне сервера. А как это на клиенте реализовано - новый вопрос на новой странице, подгрузка вопросов аяксом, или еще что - не имеет значения.
0
|
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
|
05.01.2016, 17:17 | 19 |
Я с AJAX не очень хорошо знаком, лучше в разделе JavaScript спросить. Но, как сказали выше, любые проверки с помощью JS/AJAX легко обходятся. Если нужна надёжность - проверка только на стороне PHP.
0
|
05.01.2016, 17:17 | |
05.01.2016, 17:17 | |
Помогаю со студенческими работами здесь
19
После нажатия на кнопку TBitBtn сделать кнопку не действующей Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |