Intellect Board — cистема управления сайтом

Построение сайта на основе форума

Intellect Board — cистема управления сайтом »   Разное »   Пользователь : //НиЧеЙ//
RSS

Пользователь : //НиЧеЙ//

Текущий рейтинг темы: Нет
Выводить сообщения
Правила раздела

<<Назад  Вперед>>Страницы: 1 * 2
Модераторы: aerograf, wsx
Печать
 
aost
Начинающий


Всего сообщений: 42
Рейтинг пользователя: 2


Ссылка


Дата регистрации на форуме:
8 дек. 2009
Отломал возможность использования слэшей, возможно, вместе с этим отломал еще что-то, не думаю, что разработчики так бездумно вставили это в регулярное выражение. На самом деле большого смысла иметь в разрешенных символах "точку с запятой" или "запятую" - я не вижу. Отломал до кучи и их.


# cvs diff -u profile.php
Index: profile.php
===================================================================
RCS file: /usr/home/cvsroot/IBoard/profile.php,v
retrieving revision 1.1
diff -u -r1.1 profile.php
--- profile.php 8 Dec 2009 09:13:56 -0000       1.1
+++ profile.php 9 Jan 2010 22:24:29 -0000
@@ -25,7 +25,7 @@
   $styleselect = build_select("SELECT * FROM ".$GLOBALS['DBprefix']."StyleSet WHERE st_show=1",$udata['u_stid']);
   unset($udata['u__name']);
   unset($udata['u__email']);
-  if (!$GLOBALS['opt_nameletters']) $GLOBALS['opt_nameletters']='\w\d ;,+\\-*\/=ю-ъЮ-Ъ';
+  if (!$GLOBALS['opt_nameletters']) $GLOBALS['opt_nameletters']='\w\d +-*=ю-ъЮ-Ъ';
   user_profile($newaction,"profile",$udata,$styleselect,$langselect,build_avatar_select());
}

@@ -178,7 +178,7 @@
   if ($GLOBALS['inuserlevel']<1000) $sqldata="WHERE st_show=1";
   else $sqldata="";
   $styleselect = build_select("SELECT * FROM ".$GLOBALS['DBprefix']."StyleSet $sqldata",$udata['u_stid']);
-  if (!$GLOBALS['opt_nameletters']) $GLOBALS['opt_nameletters']='\w\d ;,+\\-*\/=ю-ъЮ-Ъ';
+  if (!$GLOBALS['opt_nameletters']) $GLOBALS['opt_nameletters']='\w\d +-*=ю-ъЮ-Ъ';
   user_profile("do_edit","profile",$udata,$styleselect,$langselect,build_avatar_select());
}

@@ -655,7 +655,7 @@
     $newname = trim(getvar("u__name"));
     $newname = preg_replace('/  +/',' ',$newname);    
    
-    if (!$GLOBALS['opt_nameletters']) $GLOBALS['opt_nameletters']='\w\d ;,+\\-*\/=ю-ъЮ-Ъ';
+    if (!$GLOBALS['opt_nameletters']) $GLOBALS['opt_nameletters']='\w\d +-*=ю-ъЮ-Ъ';
     if (!preg_match('/^['.$GLOBALS['opt_nameletters'].']+$/',$newname)) error(MSG_e_u_cyrforbidden);
     if ($newname=="Guest" || $newname=="System" || $newname=="NewUser") error(MSG_e_u_reservedname);
     require('canonize.php');

---
Best regards!
Gram
Администратор

Gram
Откуда: Нижний Новгород
Всего сообщений: 1011
Рейтинг пользователя: 38


Ссылка


Дата регистрации на форуме:
23 июля 2003
aost, спасибо, только я бы всё-таки оставил вот такой набор — "\wА-Яа-я\-\_"
aost
Начинающий


Всего сообщений: 42
Рейтинг пользователя: 2


Ссылка


Дата регистрации на форуме:
8 дек. 2009
Не согласен.

Лично я часто пользуюсь пробелом при указании имени и фамилии в качестве ника на форуме, точку часто используют для буквы отчества (Alla V. Kalinina например). Кто-то, наткнувшись на похожий псевдоним, пытается сделать ник уникальным добавлением года рождения: т.е. цифры нужны однозначно.

Для чего может быть использована запятая в имени - я просто не знаю. Точка с запятой может быть использована для инъекции, слэши - откровенно мешают.

---
Best regards!
Gram
Администратор

Gram
Откуда: Нижний Новгород
Всего сообщений: 1011
Рейтинг пользователя: 38


Ссылка


Дата регистрации на форуме:
23 июля 2003
aost, с пробелом я действительно перестарался, исправляемся — '\w А-Яа-я\-\_'

Точки, запятые и прочие символы в логине не нужны. А цифры и у меня в наборе есть, если что.

И так, на всякий случай — в настройках форума можно задать как раз этот набор, правда там символ \ не корректно сохраняется.
aost
Начинающий


Всего сообщений: 42
Рейтинг пользователя: 2


Ссылка


Дата регистрации на форуме:
8 дек. 2009

Gram написал:
[q]

Точки, запятые и прочие символы в логине не нужны.
[/q]

Кому "не нужны"? \":)\"

Обычно, при решении таких вопросов, я исхожу из того, что если символы не мешают процессу - значит клиент может их использовать. Зачем создавать искусственные ограничения на ровном месте?

---
Best regards!
assessor
Долгожитель форума


Всего сообщений: 495
Рейтинг пользователя: 14


Ссылка


Дата регистрации на форуме:
13 фев. 2007
Привет, специалистам.

Подскажите, что и где мне прописать, чтобы имена участников были только:

Русский: а-я, А-Я
Инглиш: a-z, A-Z
Цифры: 0-9
Символы: ТОЧКА, ПОДЧЕРКИВАНИЕ, МИНУС
aost
Начинающий


Всего сообщений: 42
Рейтинг пользователя: 2


Ссылка


Дата регистрации на форуме:
8 дек. 2009

assessor написал:
[q]

Привет, специалистам.Подскажите, что и где мне прописать, чтобы имена участников были только:Русский: а-я, А-ЯИнглиш: a-z, A-ZЦифры: 0-9Символы: ТОЧКА, ПОДЧЕРКИВАНИЕ, МИНУС
[/q]


Выше был дан дифф - там минусом в начале строки обозначено старое, а плюсом - новое. Ищете и поправляете выражение так, как Вам удобно.

---
Best regards!
assessor
Долгожитель форума


Всего сообщений: 495
Рейтинг пользователя: 14


Ссылка


Дата регистрации на форуме:
13 фев. 2007
Понял. Думал что мне строку регулярного выражения напишут. Для моей ситуации.
Придется учебник открывать.

Такую вот прописал в админпанели строчку

@([А-Яа-я0-9A-Za-z_\.\s]+)@i

Алфавит, точка, подчеркивание, пробел в любом регистре
aost
Начинающий


Всего сообщений: 42
Рейтинг пользователя: 2


Ссылка


Дата регистрации на форуме:
8 дек. 2009

assessor написал:
[q]

Понял. Думал что мне строку регулярного выражения напишут. Для моей ситуации.Придется учебник открывать.Такую вот прописал в админпанели строчку@([А-Яа-я0-9A-Za-z_\.\s]+)@iАлфавит, точка, подчеркивание, пробел в любом регистре
[/q]

Программист должен обладать определенной степенью лени, чтобы не пытаться писать все с нуля, а использовать "опыт предыдущих поколений". \":)\"

Так в приведенном выше диффе была строка регулярного выражения:


+  if (!$GLOBALS['opt_nameletters']) $GLOBALS['opt_nameletters']='\w\d +-*=ю-ъЮ-Ъ';


Я бы, на Вашем месте, попытался разобраться что означают приведенные символы (обратите внимание на то, что русский явно в другой кодировке), и убрал те, которые Вам не нужны (очевидно, это будут "пробел", "плюс" и т.д.). Насколько я понял, из админпанели это не рулится, или не работает. Вобщем, надо просто поправить код.

---
Best regards!
assessor
Долгожитель форума


Всего сообщений: 495
Рейтинг пользователя: 14


Ссылка


Дата регистрации на форуме:
13 фев. 2007
aost, спасибо.
<<Назад  Вперед>>Страницы: 1 * 2
Модераторы: aerograf, wsx
Печать
Intellect Board — cистема управления сайтом »   Разное »   Пользователь : //НиЧеЙ//
RSS

1 посетитель просмотрел эту тему за последние 10 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
Ограничение доступа
не отображаются разделы
Архив версий
Установка стиля на Intellect Board 2.22
Завершилась работа над новой версией 3.00

Самые активные 5 тем RSS


Время выполнения скрипта: 0.0417. Количество выполненных запросов: 17, время выполнения запросов 0.0000
Creative Commons License Rambler's Top100 Rambler's Top100 Рейтинг@Mail.ru Valid HTML 4.01 Transitional Valid CSS!