В поисках лучшего пути (вопрос Ajax, HTML-флажок) - PullRequest
1 голос
/ 22 февраля 2011

Я работаю над проектом. Предположим, если администратор установит флажок для подтверждения, учетная запись активируется с помощью ajax. и если администратор установит флажок «забанен», то пользователь деактивируется из базы данных. Я не знаю, каков наилучший способ сделать это. Любой совет, большое спасибо.

Это флажок для одобренных.

<input type="checkbox" id="q" value="<?php echo $userid;?>" onchange="User(this.value)"/>
<input type="hidden" name="doAction" id="doAction" value="Approved" />

Это флажок для одобренных.

<input type="checkbox" id="q" value="<?php echo $userid;?>" onchange="User(this.value)"/>
<input type="hidden" name="doAction2" id="doAction2" value="Banned" />

А это мой короткий код Ajax

if('Approved' == doAction) 
{

    xmlhttp.open("GET","adminPanel.php?q="+str+"&doAction="+doAction,true);
    xmlhttp.send();
}
else if ('Banned' == doAction2) 
{


    xmlhttp.open("GET","adminPanel.php?q="+str+"&doAction="+doAction2,true);
    xmlhttp.send();
}

Ответы [ 2 ]

1 голос
/ 22 февраля 2011

Да, это разумный способ сделать это. Хотя вы не должны выводить значение userid в форме и полагаться на него для авторизации пользователя. Потому что вы не можете доверять, что параметр "q" указывает правильного пользователя. Вместо этого вам следует проверить, какой ИД пользователя соответствует куки-сессии пользователя. Если этот идентификатор пользователя является обычным пользователем, а не администратором, этот пользователь, очевидно, не может запретить других пользователей. Затем, как всегда, проверьте параметр doAction в adminPanel.php, иначе вы будете открыты для атак с использованием SQL-инъекций.

Также ознакомьтесь с jQuery, который значительно упрощает вызовы AJAX.

0 голосов
/ 22 февраля 2011

Теперь мой код работает.вот мои изменения.

<input type="checkbox" id="q" value="<?php echo $userid;?>"  onchange="approveUser(this.value,doAction.value)" />
<input type="hidden" name="doAction" id="doAction" value="Approved" />

<input type="checkbox" id="q" value="<?php echo $userid;?>"  onchange="approveUser(this.value,doAction.value)" />
<input type="hidden" name="doAction" id="doAction" value="Approved" />

Я передал еще один параметр в функцию ajax.Сейчас работает

xmlhttp.open("GET","adminPanel.php?q="+str+"&doAction="+action,true);
    xmlhttp.send();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...