![]() |
Показаны 1 сообщений на этой странице |
Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- Хаки от Netadmin или "Сделай сам" (http://netadmin.ws/forum/forumdisplay.php?forumid=65)
-- Hack censorUserFields (http://netadmin.ws/forum/showthread.php?threadid=7561)
Hack censorUserFields
Или запрет ввода определенной последовательности символов, запрещенных администратором в профайле пользователя в кустомных полях. Ð_азработчик Grimnir для портала поддержания выделенных игровых серверов www.dedicated-server.ru
вставить в /$vb-path/admin/functions.php
после функции customcensortext
//Grimnir
function censoruserfield($text) {
global $DB_site;
$ctCensorUserFields=$DB_site->query_first("SELECT value FROM setting WHERE varname='ctCensorUserFields'");
$ctCensorUserFields=$ctCensorUserFields['value'];
if ($ctCensorUserFields=="")
{
return false;
}
$ctCensorUserFields = preg_quote($ctCensorUserFields);
$ctCensorUserFields = str_replace('/', '\\/', $ctCensorUserFields);
$ctcensoruserfield = explode(' ', $ctCensorUserFields);
while (list($key, $val) = each($ctcensoruserfield)) {
if ($val != '') {
if (substr($val, 0, 1) == '{')
{
$val = substr($val, 1, -1);
if (strlen($text)==strlen($val))
{
$result=stristr($text,$val);
}
else
{
$result=stristr($text," ".$val." ");
}
} else {
$result=stristr($text,$val);
}
}
}
return $result;
}
//Grimnir
Вставить в /$vb-path/register.php
в куске кода addmember
// check extra profile fields
$userfields="";
$userfieldsnames="(userid";
$profilefields=$DB_site->query("SELECT maxlength,profilefieldid,required,title
FROM profilefield
WHERE editable = 1
ORDER BY displayorder");
while ($profilefield=$DB_site->fetch_array($profilefields)) {
$havefields = 1;
$varname="field$profilefield[profilefieldid]";
if ($profilefield[required] and $$varname=="") {
eval("standarderror(\"".gettemplate("error_requiredfieldmissing")."\");");
exit;
}
$$varname=censortext($$varname);
// ENTER ANY CUSTOM FIELD VALIDATION HERE!
//Make sure user didn't try to bypass the maxchars for the fields
$$varname=substr($$varname,0,$profilefield[maxleng
th]);
$userfieldsnames.=",field$profilefield[profilefieldid]";
$userfields.=",'".addslashes(htmlspecialchars($$varname))."'";
}
$userfieldsnames.=')';
сделать так
// check extra profile fields
$userfields="";
$userfieldsnames="(userid";
$profilefields=$DB_site->query("SELECT maxlength,profilefieldid,required,title
FROM profilefield
WHERE editable = 1
ORDER BY displayorder");
while ($profilefield=$DB_site->fetch_array($profilefields)) {
$havefields = 1;
$varname="field$profilefield[profilefieldid]";
if ($profilefield[required] and $$varname=="") {
eval("standarderror(\"".gettemplate("error_requiredfieldmissing")."\");");
exit;
}
$$varname=censortext($$varname);
// ENTER ANY CUSTOM FIELD VALIDATION HERE!
//Make sure user didn't try to bypass the maxchars for the fields
//Grimnir
if (censoruserfield($$varname))
{
eval("standarderror(\"".gettemplate("error_censorfield")."\");");
exit;
}
//Grimnir
$$varname=substr($$varname,0,$profilefield[maxleng
th]);
$userfieldsnames.=",field$profilefield[profilefieldid]";
$userfields.=",'".addslashes(htmlspecialchars($$varname))."'";
}
$userfieldsnames.=')';
UPDATE setting SET displayorder='9' WHERE varname='ctCensorMod';
INSERT INTO setting VALUES (182,28,'CensorUserFields','ctCensorUserFields',''
,'Запрет регистрации с криво заполнеными пользовательскими полями. Степень кривизны определяет администратор.','',8);
Добавление запрещенных слов и словосочетаний в админ панели, параметр CensorUserFields
правила заполнения те же что и для всех остальных censor* параметров
| Формат времени GMT. Текущее время 00:27. | Показаны 1 сообщений на этой странице |
Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.