Цитата: Artsem от 12.02.2018, 19:52
Есть кнопка для получения бонуса это страница например many.php:
<span class=\\\"green\\\" onclick=\\\"post(\\\'bonus.php\\\', \\\'fac=bonus\\\');\\\">Получить бонус!</span>
Ее обработчик событий :
function post(link, zapros) {
$.ajax({
url: link, type: \\\'POST\\\', data: zapros, dataType: json,
error: function (infa){eval(infa.error);},
success: function(infa) {eval(infa.succes);}
});
}
И условия выполнения в файле bonus.php
// Какие то проверки
...........................................
if(isset($_POST[\\\"fac\\\"])){
if($_POST[\\\"fac\\\"] == \\\'bonus\\\'){
Получение бонуса...
}else{
error =\\\'Ошибка запроса\\\';
}
}
.................................
// Какой то вывод
Суть вопроса в том что все работает хорошо $_POST[\\\"fac\\\"] == \\\'bonus\\\' и все работает хорошо бонус начисляется , но возникает какой то косяк а именно:
Если взять и через консоль разработчика в браузере(просмотреть код) поменять например в кнопке вместо fac=bonus на fac=bonus23 и нажать на кнопку, то он должен показать код ошибки \\\"error \\\" т.к. bonus23!=bonus но происходит другая вещь, бонус все равно начисляется. Т.е. сколько не меняй в файле many.php значение \\\"fac\\\" через браузер , в bonus.php значение $_POST[\\\"fac\\\"] посылается как мы указали в файле many.php и он не как на изменения через браузер не реагирует.
Вопрос? Как сделать так что бы на изменения через браузер он реагировал т.е. если человек указал через браузер fac=bonus121 то в bonus.php $_POST[\\\"fac\\\"] = bonus121 и выводилась ошибка?
Цитата: Pretorian от 12.02.2018, 19:55
Цитата: Artsem от 12.02.2018, 19:52
Есть кнопка для получения бонуса это страница например many.php:
<span class=\\\"green\\\" onclick=\\\"post(\\\'bonus.php\\\', \\\'fac=bonus\\\');\\\">Получить бонус!</span>
Ее обработчик событий :
function post(link, zapros) {
$.ajax({
url: link, type: \\\'POST\\\', data: zapros, dataType: json,
error: function (infa){eval(infa.error);},
success: function(infa) {eval(infa.succes);}
});
}
И условия выполнения в файле bonus.php
// Какие то проверки
...........................................
if(isset($_POST[\\\"fac\\\"])){
if($_POST[\\\"fac\\\"] == \\\'bonus\\\'){
Получение бонуса...
}else{
error =\\\'Ошибка запроса\\\';
}
}
.................................
// Какой то вывод
Суть вопроса в том что все работает хорошо $_POST[\\\"fac\\\"] == \\\'bonus\\\' и все работает хорошо бонус начисляется , но возникает какой то косяк а именно:
Если взять и через консоль разработчика в браузере(просмотреть код) поменять например в кнопке вместо fac=bonus на fac=bonus23 и нажать на кнопку, то он должен показать код ошибки \\\"error \\\" т.к. bonus23!=bonus но происходит другая вещь, бонус все равно начисляется. Т.е. сколько не меняй в файле many.php значение \\\"fac\\\" через браузер , в bonus.php значение $_POST[\\\"fac\\\"] посылается как мы указали в файле many.php и он не как на изменения через браузер не реагирует.
Вопрос? Как сделать так что бы на изменения через браузер он реагировал т.е. если человек указал через браузер fac=bonus121 то в bonus.php $_POST[\\\"fac\\\"] = bonus121 и выводилась ошибка?
А вы пишете неправильное имя имено добавляя в конце пару цыфр? Пробовали в браузере открыть ф12 и посмотреть как реагирует консоль на нажатие кнопки?
В именах нельзя указывать цифры в начале имени переменой, я надеюсь вы не указываете их в начале имени?
Цитата: Pretorian от 12.02.2018, 19:59
в любом сулчае другое имя не пройдет эту проверку
f(isset($_POST[\\\"fac\\\"])){
if($_POST[\\\"fac\\\"] == \\\'bonus\\\'){
разве что после else у вас стоит тот же самый mysql запрос что и в случае прохождения проверки. Было бы не плохо если бы вы написали полный код кнопки, события и запроса, безусловно ценные коды для вас в нутри проверки можете затереть.
Цитата: Misha от 12.02.2018, 21:05
У тебя обработчик не перенавешивается. Через консоль вызови код и так смотри.
post(\\\'bonus.php\\\', \\\'fac=\\\')