форум vBSupport.ru > vBulletin > vBulletin 4.2.x > Вопросы по vBulletin 4.2.x
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
Liked
Специалист
 
Liked's Avatar
Default Обход маркера безопасности
0

Пишу модуль обновления строки БД, набросал небольшой код:

PHP Code:
if(isset($_POST['vban']) AND $vbulletin->bbuserinfo['userid'] == "1")
{
$ban_user $db->query_write("UPDATE " TABLE_PREFIX "user SET usergroupid = '35' WHERE userid = $vbulletin->$post['userid']");

А в HTML form + input (name="vban").


При нажатии на кнопку появляется ошибка:
Quote:
Ваш запрос не может быть обработан, так как маркер безопасности отсутствует.
Как должен выглядеть код, чтобы исчезла эта ошибка?

Last edited by Liked : 04-25-2014 at 08:40 PM.
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
kerk
k0t
 
kerk's Avatar
Default
1

Code:
<input type="hidden" name="securitytoken" value="$bbuserinfo[securitytoken]" />
 
 
Liked
Специалист
 
Liked's Avatar
Default
0

Quote:
Originally Posted by kerk View Post
Code:
<input type="hidden" name="securitytoken" value="$bbuserinfo[securitytoken]" />
Исправил на:
PHP Code:
<input type="hidden" name="securitytoken" value="{vb:raw bbuserinfo.securitytoken}" /> 
Ошибка исчезла. Группа не меняется.
 
 
kerk
k0t
 
kerk's Avatar
Default
0

Quote:
Originally Posted by Liked View Post
Группа не меняется.
а это что такое, можно поинтересоваться?
$vbulletin->$post['userid']
и вот это $vbulletin->bbuserinfo['userid']
 
 
Liked
Специалист
 
Liked's Avatar
Default
0

В коде статистики:
PHP Code:
$vbulletin->db->query_write(" UPDATE " TABLE_PREFIX "user SET showvsastats = '1' WHERE userid = " $vbulletin->userinfo['userid'] . " "); 
Соответственно, я брал оттуда.


Изменил код:

PHP Code:
if(isset($_POST['vban']) AND $vbulletin->$bbuserinfo['userid'] == "1")
{
$ban_user $db->query_write("UPDATE " TABLE_PREFIX "user SET usergroupid = '35' WHERE userid = " $vbulletin->$post['userid'] . " ");

Теперь пишет:
Quote:
Указано неправильное действие

Last edited by Liked : 04-25-2014 at 09:59 PM.
 
 
kerk
k0t
 
kerk's Avatar
Default
0

я собсно и спросил, что это
сравните $vbulletin->userinfo['userid'] и $vbulletin->$post['userid']
 
 
Liked
Специалист
 
Liked's Avatar
Default
0

Quote:
Originally Posted by kerk View Post
я собсно и спросил, что это
сравните $vbulletin->userinfo['userid'] и $vbulletin->$post['userid']
Посмотрите выше моё сообщение,я подправил код.

Нет разницы, ставить $ или нет. Ошибка та же

Вроде, когда в одном месте есть $, а в другом нет, то ошибки нет и группа не меняется, а когда в обоих местах синтаксис одинаковый, то ошибка:
Quote:
Указано неправильное действие

Last edited by Liked : 04-25-2014 at 10:02 PM. Reason: й
 
 
kerk
k0t
 
kerk's Avatar
Default
0

если вы не видите разницу, это не означает что ее нет
а разница таки есть
знак доллара перед строкой, это уже переменная
в данном контексте $vbulletin->$post['userid'] это вообще кривой код
т.к. $vbulletin это объект, а $post - массив, которого никогда не было в объекте $vbulletin
не нужно бездумно пихать все подряд в код по типу "авось прокатит", постарайтесь осмыслить то, что пишете (если пишете на пхп)
 
 
UniversalUserIS
Специалист
 
UniversalUserIS's Avatar
Default
0

Как-то так, м?
PHP Code:
if(isset($_POST['vban']) AND $vbulletin->$bbuserinfo['userid'] == "1")
{
$ban_user $db->query_write("UPDATE " TABLE_PREFIX "user SET usergroupid = '35' WHERE userid = " $postuser['userid'] . " "); 
 
 
Liked
Специалист
 
Liked's Avatar
Default
0

Quote:
Originally Posted by UniversalUserIS View Post
Как-то так, м?
PHP Code:
if(isset($_POST['vban']) AND $vbulletin->$bbuserinfo['userid'] == "1")
{
$ban_user $db->query_write("UPDATE " TABLE_PREFIX "user SET usergroupid = '35' WHERE userid = " $postuser['userid'] . " "); 
Переменной $postuser не существует.

Last edited by Liked : 04-25-2014 at 10:58 PM. Reason: Добавлено сообщение
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 03:54 PM.


Powered by vBulletin® Version 3.7.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Loading...