Что я делаю не так в jquery?
Есть кнопка для получения бонуса это страница например 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
<?@session_start();
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
$username = (isset($_SESSION["username"]) ) ? $_SESSION["username"] : false;
if($username!=false){
if(isset($_POST["fac"])){
if($_POST["fac"] == 'bonus'){
require_once($_SERVER['DOCUMENT_ROOT'].'/class/base.php');
Получение бонуса...
$mysqli->close();
}else{
$eror ='Ошибка запроса';
}
if($eror != '0'){
$error .= "<div class=\"error\">".$eror."</div>";
}
........
}
}
}?>
Суть вопроса в том что все работает хорошо $_POST["fac"] == 'bonus' и все работает хорошо бонус начисляется , но возникает какой то косяк а именно:
Если взять и через консоль разработчика в браузере(просмотреть код) поменять например в кнопке вместо fac=bonus на fac=bonus23 и нажать на кнопку, то он должен показать код ошибки "error " т.к. bonus23!=bonus но происходит другая вещь, бонус все равно начисляется. Т.е. сколько не меняй в файле many.php значение "fac" через браузер , в bonus.php значение $_POST["fac"] посылается как мы указали в файле many.php и он не как на изменения через браузер не реагирует.
Дополнение:
При нажатии при правильных параметрах когда fac=bonus, то бонус начисляется и в консоле пишет что был один запрос.
А когда при изменении параметра на fac=bonus23, то в консоле два запроса и бонус все равно начисляется.
Вопрос? Как сделать так что бы на изменения через браузер он реагировал т.е. если человек указал через браузер fac=bonus121 то в bonus.php $_POST["fac"] = bonus121 и выводилась ошибка и был один запрос а не два?
|