ExBB Community » Файловый ExBB » Общие вопросы » Общие вопросы

Страниц (20): « 1 2 [3] 4 5 6 7 8 9 ... » В конец
 

31. altjo - 29 июля 2009 — 17:26 - перейти к сообщению
Извиняюсь, если не туда, возможно, пишу... собственно хотелось бы прикрепить captcha к гостям...
Скажите плиз, как определить залогинился ли пользователь, или он гость?... =>

пока это виглядит так

post.php
сразу после
CODE:
if ($fm->input['action'] == 'addnew' || $fm->input['action'] == 'addreply') {

вставил
CODE:
if (!defined('IS_ADMIN')) {
if ($fm->input['captcha'] == '' || !isset($_SESSION['captcha']) || $fm->input['captcha'] !== $_SESSION['captcha']) {
$fm->_Message('Защита от спама', 'Неверный код.');
}
}


post_addnew.tpl
добавил
CODE:
if (!defined('IS_ADMIN')) {
echo <<<DATA
<tr>
<td class="row4"><img src="regimage.php" border="0" alt="captcha"></td>
<td class="row4"><input type="text" style="width: 130px" name="captcha" size="13" maxlength="10"></td>
</tr>
DATA;
}


при создании новой темы появляется защитный код Ха-ха

для админа идет проверка
CODE:
if(!defined('IS_ADMIN'))
, а как для прочих зарегистрированных пользователей проверить?
можно вроде через $_spam_msgs, но хотелось бы чтобы зарегистрированным юзверям код не показывался...

пробовал так
CODE:
if (!(defined('IS_ADMIN') || defined('IS_LOGIN'))) {

но не работает (

Заранее благодарен...
32. yura3d - 29 июля 2009 — 18:05 - перейти к сообщению
altjo пишет:
а как для прочих зарегистрированных пользователей проверить?

Нужно проверять значение $fm->user['id'], это id зарегистрированного пользователя. Для гостей это значение равно нулю. Ваше выражение выше:
CODE:
if (!defined('IS_ADMIN')) {
if ($fm->input['captcha'] == '' || !isset($_SESSION['captcha']) || $fm->input['captcha'] !== $_SESSION['captcha']) {
$fm->_Message('Защита от спама', 'Неверный код.');
}
}

не совсем корректно, лучше составить его таким образом:
CODE:
if (!$fm->user['id'] && (!isset($_SESSEION['captcha']) || $fm->_Intval('captcha') != $_SESSION['captcha']))
$fm->_Message('Защита от спама', 'Неверный код');

Строки Защита от спама и Неверный код неплохо бы вынести в языковой файл lang_front_forums.php, чтобы можно было выводить сообщения на любом языке

Аналогично:
CODE:
if (!defined('IS_ADMIN')) {
echo <<<DATA
<tr>
<td class="row4"><img src="regimage.php" border="0" alt="captcha"></td>
<td class="row4"><input type="text" style="width: 130px" name="captcha" size="13" maxlength="10"></td>
</tr>
DATA;
}

Заменяем на:
CODE:
if (!$fm->user['id']) {
echo <<<DATA
<tr>
<td class="row4"><img src="regimage.php" border="0" alt="captcha"></td>
<td class="row4"><input type="text" style="width: 130px" name="captcha" size="13" maxlength="10"></td>
</tr>
DATA;
}
33. altjo - 30 июля 2009 — 12:31 - перейти к сообщению
в плане отображения капчи все норм,
но, есть одна странность...

$_SESSEION['captcha'] => лишняя "E"
если её убрать, то гости тоже могут создавать новые темы не вводя капчу,

если оставить $_SESSEION['captcha'],
то гости, даже при правильно введенной капче, все-равно не смогут создать новой темы...

работает так
CODE:
if (!$fm->user['id'] && ($fm->input['captcha'] == '' || !isset($_SESSION['captcha']) || $fm->input['captcha'] !== $_SESSION['captcha'])) {
$fm->_Message('Защита от спама', 'Неверный код');
}

(условие проверки капчи бралось не с потолка, такой код используется в register.php)

Спасибо, все работает,
теперь и при создании сообщений тоже вышло...
34. yura3d - 30 июля 2009 — 15:56 - перейти к сообщению
altjo пишет:
если её убрать, то гости тоже могут создавать новые темы не вводя капчу

Во всём виновата небольшая ошибка в условии, вместо инициализации входящей переменной с кодом каптчи как целочисленной, нужно инициализировать её как строку, т.е. вызов функции $fm->_Intval() заменить вызовом функции $fm->_String():
CODE:
if (!$fm->user['id'] && (!isset($_SESSION['captcha']) || $fm->_String('captcha') !== $_SESSION['captcha']))
$fm->_Message('Защита от спама', 'Неверный код');


altjo пишет:
лишняя "E"

Как всегда мои опечатки Огорчение

altjo пишет:
(условие проверки капчи бралось не с потолка, такой код используется в register.php)

Всё дело в том, что использованию переменных входящих данных (в контексте $fm->input) обязательно должна предшествовать инициализация этих переменных. В Вашем случае $fm->input['captcha'] вызывается без инициализации (хотя в register.php эта инициализация есть, просто она записана выше условия), и это в некоторых случаях может приводить к выводу сообщений об ошибках (пресловутых notice'ов, которые не так давно обсуждались)
35. News5000 - 31 июля 2009 — 18:54 - перейти к сообщению
Тоже не знаю куда написать, а то мои сообщения постоянно удаляют. Прошу сначала ответить, а потом уже удалять.

Как изменить правила, которые появляются при регестрации (где надо нажать "Я согласен"Подмигивание?

Изменил их в файле lang_front_help_rules.php, но они изменились только в Помощи, а при регистрации остались такими же.
36. yura3d - 31 июля 2009 — 19:03 - перейти к сообщению
News5000 пишет:
Тоже не знаю куда написать, а то мои сообщения постоянно удаляют.

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

Ваше сообщение и ответ на Ваш вопрос Вы можете найти здесь
37. News5000 - 31 июля 2009 — 19:50 - перейти к сообщению
yura3d, спасибо за помощь, теперь разобрался.
38. Assassin - 31 июля 2009 — 20:16 - перейти к сообщению
Мне нужно, чтобы при авторизации на форуме, на гл странице сайта отображалась стока с гл страницы форума (Здравствуйте Assassin ( Выход · Объявления · Админцентр · Правила форума ). Какой код на страницу вставить? Ато PHP знаю плохо. Не понял
39. yura3d - 1 августа 2009 — 09:03 - перейти к сообщению
Assassin
Оставьте ссылку на Ваши сайт и форум
40. Assassin - 1 августа 2009 — 17:30 - перейти к сообщению
yura3d пишет:
Assassin
Оставьте ссылку на Ваши сайт и форум

Я на денвере
test1.ru/for
41. bruno - 28 августа 2009 — 04:12 - перейти к сообщению
yura3d
Решил в этой темке черкануть вопросик.
Я насколько помню в ExBB была проблема с большими темами. Вся тема хранилась в одном файле, и как только она росла, то это начинало напрягать хостинг.
Как в твоей модификации решена эта проблема? Я вижу тут темы есть довольно большие и явно ты как-то всё это дело улучшил.... если не сложно напиши в двух словах что сделано.
42. yura3d - 28 августа 2009 — 10:13 - перейти к сообщению
bruno
Во-первых, слишком объёмные темы разбиваются на части (наглядный пример - раздел Релизы, в котором находятся 2 части темы ExBB FM 1.0 RC1). Разбиение на части происходит автоматически, поэтому разрастание тем до неприличных размеров теперь невозможно. А во-вторых существенно оптимизированы механизмы обработки сообщений, что позволило при сохранении (и даже увеличении) функциональности существенно повысить скорость
43. bruno - 28 августа 2009 — 10:21 - перейти к сообщению
yura3d
Понятно.
Но тоже не совсем гуд.
А нельзя разве как-то стыковть два файла вместе при этом не нарушая визуальной целостности темы?
Т.е. разбивать точно также файл темы на части, но при этом не разделяя саму тему?
По-моему технически это примерно также может выглядеть.
44. 1Bot - 28 августа 2009 — 20:11 - перейти к сообщению
bruno пишет:
А нельзя разве как-то стыковть два файла вместе при этом не нарушая визуальной целостности темы?

А листать как когда страниц будет за 300?
45. bruno - 29 августа 2009 — 02:42 - перейти к сообщению
1Bot пишет:
А листать как когда страниц будет за 300?

Всмысле как листать. Как и во всех форумных движках - по странично.
А представь если дублей одной темы будет 100.
Это хорошо если маленький форум и темы только типа вопрос-ответ.
А есть люди которые создают темы и там потом создаётся 500 страниц (!)

Яндекс.Метрика   

Powered by ExBB
[Script Execution time: 0.035]     [ ]