Решаем проблему активации пользователя на Phpprobid
23.09.2011
C пользователями скрипта аукциона развернутого на сайте возникают иногда проблемы, особенно, если пользователь зарегистрировался с русским ником. Начинаются глюки активации по мейлу и прочие казусы.
Пертурбации возникают в основном из-за того, что скрипт не может корректно обработать русские символы в нике зарегистрировавшегося пользователя. Что-то закрывать или ограничивать юзера не хотелось бы. Пользователь пошел привередливый, может и не вернуться больше на сайт. Пойдем ему навстречу. Попробуем решить проблему от противного и удалить из частей скрипта, отвечающих за инициализацию пользователя, упоминание ника.
Ненужные строки закомментируем двойным слешем и допишем нужное в исправленном виде.
В папке /language/russian/mails/ находим файл register_confirm_user_notification.php делаем исправления:
//$activation_link = SITE_PATH . 'account_activate.php?user_id=' . $row_details['user_id'] . '&username=' . $row_details['username'];
$activation_link = SITE_PATH . 'account_activate.php?user_id=' . $row_details['user_id'];
открываем файл account_activate.php в корне сайта и так же осуществляем замену:
//$username = $db->rem_special_chars($_REQUEST['username']);
далее следующая строка под исправление
меняем на
//$is_user = $db->count_rows('users', "WHERE user_id=" . $user_id . " AND username='" . $username . "' AND mail_activated=0");
$is_user = $db->count_rows('users', "WHERE user_id=" . $user_id . " AND mail_activated=0");
Порядок исправления – находим строку, подлежащую исправлению, комментируем ее двойным слешем //, ниже пишем исправленный код.
Тестовая проверка показала, что ошибок не появилось, пользователь с русским ником инициализировался нормально. Пробуйте и применяйте в работе.
Если возникнут трудности или есть предложения по другой методике исправления ошибки, обращайтесь, будем только рады. А Вы каким образом решали подобную проблему или она не возникала у вас?