PDA

View Full Version : Проблема При Входе На Форум после установки мода Yellow card 1.4.12


makfatum
22.08.2007, 09:12
Добрый день!
Предистория здесь: http://nukefiles.ru/forum/index.php?showtopic=14379

Кратко:
Php-nuke 7.9
Пользуюсь встроенным bb2nuke (версия phpbb 2.0.17)

После установки мода на форум - Yellow card 1.4.12 пользователи не могут войти на форум, будучи авторизованными на сайте. Просходит это после изменения личных данных в профиле. Т.е. поле user_active у пользователя после изменений в профиле становится "0", и пользователь не может попасть на форум
При входе на форум отображается следующее:

http://img292.imageshack.us/img292/338/1000000000io7.jpg (http://imageshack.us)


Установку 2 раза перепроверял, все сделал по шагам.
Пологаю, что собака зарыта здесь: файл usercp_register.php в коде, отвечающим за UPDATE после изменения личных данных в профиле

сам разобраться не смог, буду благодарен за помощь


if ( $mode == 'editprofile' )
{
if ( $email != $userdata['user_email'] && $board_config['require_activation'] != USER_ACTIVATION_NONE && $userdata['user_level'] != ADMIN )
{
$user_active = 0;

$user_actkey = gen_rand_string(true);
$key_len = 54 - ( strlen($server_url) );
$key_len = ( $key_len > 6 ) ? $key_len : 6;
$user_actkey = substr($user_actkey, 0, $key_len);

if ( $userdata['session_logged_in'] )
{
session_end($userdata['sid'], $userdata['user_id']);
}
}
else
{
$user_active = 1;
$user_actkey = '';
}

$sql = "UPDATE " . USERS_TABLE . " SET " . $username_sql . $passwd_sql . "user_email = '" . str_replace("\'", "''", $email) ."', user_icq = '" . str_replace("\'", "''", $icq) . "', user_website = '" . str_replace("\'", "''", $website) . "', user_occ = '" . str_replace("\'", "''", $occupation) . "', user_from = '" . str_replace("\'", "''", $location) . "', user_interests = '" . str_replace("\'", "''", $interests) . "', user_sig = '" . str_replace("\'", "''", $signature) . "', user_sig_bbcode_uid = '$signature_bbcode_uid', user_viewemail = '$viewemail', user_aim = '" . str_replace("\'", "''", str_replace(' ', '+', $aim)) . "', user_yim = '" . str_replace("\'", "''", $yim) . "', user_msnm = '" . str_replace("\'", "''", $msn) . "', user_attachsig = '$attachsig', user_allowsmile = '$allowsmilies', user_allowhtml = '$allowhtml', user_allowbbcode = '$allowbbcode', user_allow_viewonline = '$allowviewonline', user_notify = '$notifyreply', user_notify_pm = '$notifypm', user_popup_pm = '$popup_pm', user_timezone = '$user_timezone', user_dateformat = '" . str_replace("\'", "''", $user_dateformat) . "', user_lang = '" . str_replace("\'", "''", $user_lang) . "', user_style = '$user_style', user_active = '$user_active', user_actkey = '" . str_replace("\'", "''", $user_actkey) . "'" . $avatar_sql . "
WHERE user_id = '$user_id'";

if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not update users table', '', __LINE__, __FILE__, $sql);
} else {

getusrinfo($user);
docookie($userinfo["user_id"],$userinfo["username"],$userinfo["user_password"],$userinfo["storynum"],$userinfo["umode"],$userinfo["uorder"],$userinfo["thold"],$userinfo["noscore"],$userinfo["ublockon"],$userinfo["theme"],$userinfo["commentmax"]);
}

if ( !$user_active )
{ и т.д....


В инструкции по поводу изменений в данном коде написано следующее:


#-----[ Откройте ]------------------------------------------------
#
includes/usercp_register.php

#
#-----[ Найдите ]------------------------------------------------
#
$user_active = 1;
$user_actkey = '';

#
#-----[ Замените на ]----------------------------------------
#
$user_active = 'user_active';
$user_actkey = 'user_actkey';

#
#-----[ Найдите ]------------------------------------------------
#
$sql = "UPDATE " . USERS_TABLE . "
SET " . $username_sql . $passwd_sql . "user_email = '" . str_replace("\'", "''", $email) ."', user_icq = '" . str_replace("\'", "''", $icq) . "', user_website = '" . str_replace("\'", "''", $website) . "', user_occ = '" . str_replace("\'", "''", $occupation) . "', user_from = '" . str_replace("\'", "''", $location) . "', user_interests = '" . str_replace("\'", "''", $interests) . "', user_sig = '" . str_replace("\'", "''", $signature) . "', user_sig_bbcode_uid = '$signature_bbcode_uid', user_viewemail = '$viewemail', user_aim = '" . str_replace("\'", "''", str_replace(' ', '+', $aim)) . "', user_yim = '" . str_replace("\'", "''", $yim) . "', user_msnm = '" . str_replace("\'", "''", $msn) . "', user_attachsig = '$attachsig', user_allowsmile = '$allowsmilies', user_allowhtml = '$allowhtml', user_allowbbcode = '$allowbbcode', user_allow_viewonline = '$allowviewonline', user_notify = '$notifyreply', user_notify_pm = '$notifypm', user_popup_pm = '$popup_pm', user_timezone = '$user_timezone', user_dateformat = '" . str_replace("\'", "''", $user_dateformat) . "', user_show_quickreply = $user_show_quickreply, user_quickreply_mode = $user_quickreply_mode, user_lang = '" . str_replace("\'", "''", $user_lang) . "', user_style = '$user_style', user_active = '$user_active', user_actkey = '" . str_replace("\'", "''", $user_actkey) . "'" . $avatar_sql . "
WHERE user_id = '$user_id'";

#
#-----[ В линии, Найдите ]----------------------------------------
#
user_actkey = '" . str_replace("\'", "''", $user_actkey) . "'

#
#-----[ В линии, Замените на ]--------------------------------
#
user_actkey = '$user_actkey'

makfatum
24.08.2007, 07:59
рассмотрю вопрос решения данной проблемы за $

makfatum
25.08.2007, 23:19
Сделав намеренно ошибку в запросе на UPDATE - посмотрел, что там в нем передается....

Could not update users table

DEBUG MODE


UPDATE nuke_users SET user_email = 'электропочта@mail.ru', user_icq = '777777', user_website = 'мой сайт.ру', user_occ = '', user_from = 'Город', user_interests = ' интересы', user_sig = 'подпись', user_sig_bbcode_uid = 'dc5097c374', user_viewemail = '1', user_aim = '', user_yim = '', user_msnm = '', user_attachsig = '0', user_allowsmile = '1', user_allowhtml = '1', user_allowbbcode = '1', user_allow_viewonline = '0', user_notify = '1', user_notify_pm = '1', user_popup_pm = '1', user_timezone = '6', user_dateformat = 'D M d, Y H:i', user_show_quickreply = , user_quickreply_mode = , user_lang = 'russian', user_style = '1', user_active = 'user_active', user_actkey = 'user_actkey' WHERE user_id = '2'

Line : 524
File : usercp_register.php

Почему-то user_active и user_actkey в запросе не передаются как "0" или "1" подобно всем остальным данным!
Подскажите пожалуйста, Почему?

Val
28.08.2007, 02:03
пробовал сам ставить желтые карточки так форум вовсе перестал грузиться.
на днях попробую еще раз получиться - расскажу что у вас не так...

makfatum
28.08.2007, 09:33
спасибо, буду ждать!
у меня мод и форум работают, только вот с этим с блокированием пользователей проблемы.
2 раза мод переустанавливал уже по инструкции - проблема осталась...

Soniks
28.08.2007, 11:29
makfatum просто не производите изменения:
#
#-----[ Найдите ]------------------------------------------------
#
$user_active = 1;
$user_actkey = '';

#
#-----[ Замените на ]----------------------------------------
#
$user_active = 'user_active';
$user_actkey = 'user_actkey';
и все будет работать