|
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/...00000000io7.jpg
Установку 2 раза перепроверял, все сделал по шагам.
Пологаю, что собака зарыта здесь: файл usercp_register.php в коде, отвечающим за UPDATE после изменения личных данных в профиле
сам разобраться не смог, буду благодарен за помощь
PHP код:
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 )
{ и т.д....
В инструкции по поводу изменений в данном коде написано следующее:
|
|