1. Как мне кажется, вторая функция отправки не нужна, ведь обе функции ведут на один и тот де обработчик. У вас вообще все готово почти. Достаточно в
updatePrice
, туда же в запрос, просто добавить значение поля kupon и если нужно выполнять updatePrice при изменении
kupon
, отправляйте так же через
on('change'
. А в php обработчике, проверяйте наличие переменной
kupon
+ что это не попытка подставить в ваш код что-то вредное, можно проверить регулярным выражением или хотя бы, что это не html код и прочее. Регулярные выражения для новичка не очень просто, однако они еще пригодятся и их придется учить. А до момента понимания, как писать регулярные используйте встроенные ф-ции и/или
регулярные выражения найденные в сети.
1.1. если вы используете
.on('change'
, я бы советовал добавить проверку по маске купона на стороне пользователя с помощью js, чтобы скрипт не ломился отправлять и соответственно обрабатывать ненужные запросы, тем самым вы сможете меньше нагружать процессор и БД, кажется что мелочь, но если пользователей на сайте будет много, тут, там-сям немного сэкономили, на круг уже будет заметно.
1.2. обязательно, возьмите за привычку проверять/сверять информацию, которую вводит пользователь! Перед запросом в БД нужно проверить наличие с помощью
isset(), если подразумевается число, значит функцией
is_numeric() и тд... В случае с купоном, можно проверить на кол-во символов (если это известно) и например прогнать через
strip_tags(),
htmlspecialchars() или использовать другие встроенные функции для фильтрации и/или обработки информации.
2. К слову о фильтрации и проверке информации.
НЕ обращайтесь к $_POST
на прямую, для получения значений
$_POST
и
$_GET
используйте функции фильтрации
filter_input(), если это массив
filter_input_array(). Они же могут определить является ли полученная переменная числом, адресом эл.почты и прочее.
Подробнее тут и
тут...
3. не используйте SQL-инъекции, используйте
PDO, посмотреть доступность на вашем сервере можно в
PhpInfo
Старайтесь совершать как можно меньше необоснованных запросов и оправок данных, а так же обязательно проверять все данные которые поступают из вне - возьмите за аксиому: каждый пользователь враг и хочет навредить вашему сайту, многие просто могу сделать это по приколу, ну а если вы собираетесь работать с деньгами, то тут уже вопрос безопасности нужно выводить на первое место и уделять проверкам особое внимание! Почитайте более подробно, например
на habr.com.
Пункты 2 и 3 обязательны для всех ваших скриптов!
И под конец для вас две новости, одна плохая и одна хорошая:
Плохая - придется исправлять все подключения и заменить переменные
$_POST
и
$_GET
...
Я в свое время решил эту проблему очень просто
1. Автозаменой заменил во всех файлах массивы $_POST
на $POST
и соответственно $_GET
на $GET
. Визуально практически ничего не изменив в тексте скрипта, но уже суть совсем другая )))
2. Задав в начале скрипта новым переменным значения через описанные выше функции фильтрации...
Хорошая - это будет не сложно и не очень объемно ;)
доп.: в самом начале каждого php файла (а проще в один, который добавляется везде, например конфиг) - советую прописать вывод ошибок на экран, если конечно вы этого еще не сделали
тут то, что нужно прописатьini_set('display_errors', true);
ini_set('display_startup_errors', true);
ini_set('error_reporting', -1);