Бормотухи.НЕТ

Вернуться   Бормотухи.НЕТ > Web-мастеру > vBulletin 3.х
Расширенный поиск

vBulletin 3.х Раздел о vBulletin и всем что касается этого скрипта

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2012, 15:09 Вверх   #1
Местный житель
 
Аватар для Retradon
Retradon вне форума
Доп. информация
По умолчанию Как корректно создать пользователя через базу данных

В общем добавляю в базу пользователя в таблицу user.
ID ему дается автоматически (поле с авто-инкрементом).
Только вот присутствует следующий глюк - в панели администратора в пользователях его невозможно отредактировать, потому что в ссылках не выставляется значение параметра "u".
Например, на зарегистрированного пользователя ссылка:
forum/admincp/user.php?do=edit&u=9
А если добавить через базу, то будет просто:
/forum/admincp/user.php?do=edit&u=
без номера.
Причем, если дописать id вручную и перейти по ссылке, то профиль все же показывается. Но даже после редактирования профиля ссылки нормальными не становятся.

В чем может проблема? Может еще куда надо прописывать нового юзера?
  Ответить с цитированием
Старый 22.01.2012, 17:41 Вверх   #2
Знаток
 
Аватар для Inferno
Inferno вне форума
Доп. информация
По умолчанию

А что мешает через админку создать пользователя?
  Ответить с цитированием
Старый 22.01.2012, 19:44 Вверх   #3
Местный житель
 
Аватар для Retradon
Retradon вне форума
Доп. информация
По умолчанию

Цитата Сообщение от Inferno Посмотреть сообщение
А что мешает через админку создать пользователя?
Если бы в жизни все было настолько просто, то этого форума бы вовсе не существовало...
Мешает то, что это должен быть автоматический скрипт. Есть 2 совсем разные базы и 2 системы с совсем разными способами авторизации.
Но вместе это один проект и 2 регистрации - очень неудобно.
Из-за такой разности я хочу просто при регистрации автоматически регистрировать по аккаунту с одинаковыми авторизованными данными в обоих проектах.

И невежливо отвечать вопросом на вопрос. Раз я спросил про базу и таблицы, значит мне именно это и надо узнать.
  Ответить с цитированием
Старый 22.01.2012, 20:56 Вверх   #4
Местный житель
 
Аватар для Retradon
Retradon вне форума
Доп. информация
По умолчанию

Наконец-то нашел! Надо было в userfield создать запись с id добавленного пользователя.
Теперь в панели администратора ссылки нормальные.
  Ответить с цитированием
Старый 27.01.2012, 19:14 Вверх   #5
Местный житель
 
Аватар для Retradon
Retradon вне форума
Доп. информация
По умолчанию

Нет, к сожалению это не все...

Почему-то пользователи в темах значатся как "гости", ник - просто текст, без ссылки.
Хотя внизу в "Посетителях" отображаются нормально и, при нажатии на ник, на странице профиля тоже все нормально.
Проблему в темах помогает решить "восстановление поврежденных профилей" из админки. Значит не полностью вписан был профиль.
Просто я не представляю куда еще вписать. Перерыл всю базу и нашел только в user и userfield строки, которые вставляются сразу при регистрации...

Так все-таки, как корректно вписать пользователя через базу?
Неужели на этом огромнейшем форуме ни один человек не может ответить на этот вопрос?
  Ответить с цитированием
Старый 28.01.2012, 08:09 Вверх   #6
Опытный пользователь
 
Аватар для FEARKILLER
FEARKILLER вне форума
Доп. информация
По умолчанию

А так не пробовал? Расписал, почти всё, что нужно.
PHP код:
<?php
    
/**************************
    * Указать полный путь к корневой папке форума, если файл лежит не в корне форума
    **************************/
/*    $forumpath = 'C:\***\www\forum'; // Полный путь к форуму

    if ($forumpath)
    {
        if (!is_dir($forumpath))
        {
            echo 'Указан неверный путь к корневой папке форума!';
            exit;
        }

        chdir($forumpath);
    }*/
    /*************************/
    
    
require_once('./global.php');
    
    
/**************************
    ******** Настройки ********
    **************************/
    
$username 'BrutalDeath';
    
$email 'BrutalDeath@bk.ru';
    
$password 'SecurityPassword';
    
$usergroupid 2;
    
$customtitle 0;
    
$showbirthday 2;
    
$birthday '06-06-1990'// dd-mm-yyyy
    
$dst 0;
    
$timezoneoffset 9;
    
$ip IPADDRESS;
    
/*************************/

    
$fk =& datamanager_init('User'$vbulletinERRTYPE_ARRAY); 
    
$fk->set('username'$username); // Ник юзера
    
$fk->set('email'$email); // Мыло(Электронный адрес) юзера
    
$fk->set('password'$password); // Пароль юзера
    
$fk->set('usergroupid'$usergroupid); // Основная группа юзера
    
$fk->set_usertitle(''false$vbulletin->usergroupcache["$usergroupid"], falsefalse); // Выставляет авто. статус выбранной группы
    
$fk->set('customtitle'$customtitle); // Тип статуса юзера (0=Нет; 1=Установка админа с HTML; 2=Установки юзера без HTML)
    
$fk->set('showbirthday'$showbirthday); // Тип отображения ДР (0=Скрывать; 2=Полная; 1=Только возраст; 3=Только месяц и день)
    
$birthday explode('-'$birthday); // Исключение символа "-"
    
$fk->set('birthday', array(
        
'day'    =>    $birthday[0],
        
'month'    =>    $birthday[1],
        
'year'    =>    $birthday[2]
    )); 
// Дата рождения юзера
    
$fk->set_dst($dst); // Переход на летнее/зимнее время автоматически (0=Авто выкл., Летнее выкл.; 1=Авто выкл., Летнее вкл.; 2=Авто;)
    
$fk->set('timezoneoffset'$timezoneoffset); // Часовой пояс / Пояса: (-12; -11; -10; -9; -8; -7; -6; -5; -4.5; -4; -3.5; -3; -2; -1; 0; 1; 2; 3; 3.5; 4; 4.5; 5; 5.5; 5.75; 6; 6.5; 7; 8; 9; 9.5; 10; 11; 12)
    
$fk->set('ipaddress'$ip); // IP-адресс юзера

    
$fk->pre_save();

    if (empty(
$fk->errors)) // Проверка на наличие ошибок
    
{
        
$fk->save(); // Сохранить юзера
        
$errorlist "<li>Юзер успешно создан!</li>";
    }
    else
    {
        
$errorlist '';
        foreach (
$fk->errors AS $index => $error)
        {
            
$errorlist .= "<li>$error</li>"// Вывод ошибок на страницу, если таковы имеются
        
}
    }

    unset(
$fk); // Очистить переменную
    
echo($errorlist);
?>
Так проще, но если ты решил реально вписывать в каждую таблицу ид и ник юзера, охохо (((= да ты круче шварцнегера, парень. Могу пожелать тебе только удачи и подсказать где посмотреть список(не полный) таблиц, в которых нужно создать иды и ник нового юзера. Не полный, потому что я скачивал помню давненько этот хак, очень нужен был, но походу хак писался для версии 3.6.x и с тех пор не обновлялся, так как в 3.7.х больше таблиц и 3.8.х темболее. У меня на тот момент стоял 3.8.х, пришлось самому дописывать.

Смотри в этом хаке кароче: http://www.bormotuhi.net/krfilesmana...&dlfileid=1104
Пост с описанием хака: http://www.bormotuhi.net/showpost.ph...&postcount=189
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Старый 04.12.2012, 09:52 Вверх   #7
Местный житель
 
Аватар для Retradon
Retradon вне форума
Доп. информация
По умолчанию

Цитата Сообщение от FEARKILLER Посмотреть сообщение
Так проще, но если ты решил реально вписывать в каждую таблицу ид и ник юзера, охохо (((= да ты круче шварцнегера, парень.
А оказалось, что всего-то в user, userfield и usertextfield надо добавлять. И вот за почти год никаких ошибок и побочных эффектов.

P.S.: Узнать нужные таблички удалось после использования функции "Восстановить поврежденные профили". Она и показала, где обязательно должны были быть записи у юзера, чтобы не было ошибок.
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 07:19. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
 

Время генерации страницы 0.11312 секунды с 10 запросами