LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
26.05.2012, 23:05:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Как программно зарегистрировать нового пользователя?  (Прочитано 3879 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
~angel~
Гость
« : 01.05.2007, 22:41:52 »

Обычно, регистрация нового пользователя происходит при помощи стандартной формы.
Как зарегистрировать нового пользователя без использования графического интерфейса, только при помощи функций PHP?

Я делаю запрос к базе данных Jooml'ы, к таблице jos_users на вставку нового пользователя.
При этом я пишу следующий запрос:

insert into jos_users (username, password, usertype) values ('vasya', '$password', 'Publisher')

в командной строке SQL пишет мне, что field 'params' doesn't have a default value.
Чему должно быть равно это значение? и какие ещё поля обязательны к заполнению, и как их корректно нужно заполнять?

Я попробовала ввести запрос:
insert into jos_users (username, password, usertype, params) values ('vasya', '$password', 'Publisher', 'editor=')
значение 'editor=' почему-то записывает в таблицу Joomla для зарегистрированных через форму пользователей... Такой запрос исполняется, пользователь регистрируется.
Только что означает 'editor='? (-:

Нет ли более удобного способа решить эту задачу? Нет ли в Joomla специальной функции, при помощи которой можно зарегистрировать пользователя?


-----------------
И ещё вопрос:
как мне сделать, чтобы пользователям с различными типами доступа  отображалось разное меню (mainmenu)?
(как я поняла в Joomla есть типы пользователей: Super Administrator, Administrator, Manager, Autor, Editor, Publisher или что-то подобное)

я создаю в mainmenu в админке новый пункт, и для него можно выбрать "Уровень доступа", но там всего 3 значения: public, registered и special.
Как назначить разное меню автору, эдитору, паблишеру, администратору и т.п.?
Записан
maverick_den
Осваиваюсь на форуме
***

Репутация: +9/-0
Offline Offline

Пол: Мужской
Сообщений: 89


« Ответ #1 : 01.05.2007, 22:58:38 »

Во-первых пароль шифруется МД5 (кажись именно им), то есть $password надо поменять на md5($password).
Во-вторых не забывайте указывать почту.
По params - ну напишите что-нибудь, раз просит. Editor - редактор по умолчанию.

Цитировать
Нет ли более удобного способа решить эту задачу? Нет ли в Joomla специальной функции, при помощи которой можно зарегистрировать пользователя?
Shocked Shocked Shocked Там даже компонент специальный для этого есть. И через админку по-моему можно.

ЗЫ. Меню, наверное, править надо. Хотя не уверен.
Записан
~angel~
Гость
« Ответ #2 : 01.05.2007, 23:06:13 »

Смысл именно в том, чтобы регистрацию проводил не сам пользователь, а мой программный код. Админка и визуальный компонент - это не то, что нужно.

Про мд5 я догадалась  Grin
но всё-равно спасибо

А как править меню?
Записан
yAnTar
Завсегдатай
*****

Репутация: +80/-3
Offline Offline

Пол: Мужской
Сообщений: 479



« Ответ #3 : 01.05.2007, 23:31:42 »

http://joomlaforum.ru/index.php/topic,5770.0.html
Записан
~angel~
Гость
« Ответ #4 : 01.05.2007, 23:34:38 »

Спасибо, yAnTar Azn
Записан
~angel~
Гость
« Ответ #5 : 01.05.2007, 23:54:07 »

ой-ой..
я пишу как smart написал:

global $database, $acl;

$user = new mosUser( $database );

$user->id=0;
$user->gid= $acl->get_group_id( 'Registered', 'ARO' );
$user->block = 0;
$user->name = 'Vasya';
$user->username = 'Vasya';
$user->password = md5( '12345678' );
$user->email = 'vasya@mail.ru';
$user->registerDate    = date( 'Y-m-d H:i:s' );

$user-store();


В базе данных появляется новая запись, только когда я под ней пытаюсь войти, выдаётся сообщение о том, что неправильный логин или парль..
Записан
beliyadm
Профи
********

Репутация: +1438/-61
Offline Offline

Пол: Мужской
Сообщений: 8893


Севастополь==Россия


« Ответ #6 : 02.05.2007, 09:45:40 »

~angel~ - насколько я помню, за пользователей отвечают еще таблицы:
jos_users
jos_core_acl_aro
jos_core_acl_groups_aro_map
Записан
~angel~
Гость
« Ответ #7 : 02.05.2007, 10:50:04 »

beliyadm, а если добавлять пользователя средствами Joomla, через $user->, Joomla сама следит за связями в своих таблицах?

--------------
а если написать ещё и $user->params = 'editor='; , то можно и авторизироваться созданным пользователем (-:

какие-то очень важные params видимо жизненно необходимы (-:
Записан
beliyadm
Профи
********

Репутация: +1438/-61
Offline Offline

Пол: Мужской
Сообщений: 8893


Севастополь==Россия


« Ответ #8 : 02.05.2007, 11:34:08 »

Не особо вникал в ход регистрации, скорее всего где то это прячется. Попробуй зарегистрировать пользователя и посмотри на изменения в таблицах.
Кто подскажет - есть под MySQl аналог MS SQL Server - Profiler - в таких случаях безумно полезная вещь... ?
Записан
~angel~
Гость
« Ответ #9 : 02.05.2007, 11:44:58 »

не знаю, что такое MS SQL Server - Profiler, но я пользуюсь DBDesigner -ом, забавная вещь для работы с базами данных
Записан
yAnTar
Завсегдатай
*****

Репутация: +80/-3
Offline Offline

Пол: Мужской
Сообщений: 479



« Ответ #10 : 02.05.2007, 11:48:14 »

Все работает, сам проверял, просто у Smarta опечатка
Вместо 
Код:
$user-store();
напишите
Код:
$user->store();
Записан
beliyadm
Профи
********

Репутация: +1438/-61
Offline Offline

Пол: Мужской
Сообщений: 8893


Севастополь==Россия


« Ответ #11 : 02.05.2007, 11:53:06 »

не знаю, что такое MS SQL Server - Profiler, но я пользуюсь DBDesigner -ом, забавная вещь для работы с базами данных
По моему это немного не то, профайлер дает возможность посмотреть трассировку запросов при обращении к БД - что где исполнилось в какой момент.
Можно попробовать его прикрутить к MySQL, но этож заморачиваться надо... Azn
Записан
~angel~
Гость
« Ответ #12 : 02.05.2007, 12:11:09 »

ааа, понятно )

заморачиваться моя не хотеть, моя хотеть как пороще (-:
Записан
~angel~
Гость
« Ответ #13 : 04.05.2007, 20:27:13 »

Скажите, пожалуйста, что означает:

$user->gid= $acl->get_group_id( 'Registered', 'ARO' );

что такое 'ARO'?
Записан
yAnTar
Завсегдатай
*****

Репутация: +80/-3
Offline Offline

Пол: Мужской
Сообщений: 479



« Ответ #14 : 04.05.2007, 21:33:47 »

На английском языке здесь
Записан
~angel~
Гость
« Ответ #15 : 04.05.2007, 21:41:03 »

спасибо )
Записан
aljoom
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #16 : 11.07.2009, 12:10:08 »

а если написать ещё и $user->params = 'editor='; , то можно и авторизироваться созданным пользователем (-:

зесь по подробнее можно, как авторизоваться?
Записан
aljoom
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #17 : 11.07.2009, 12:34:30 »

не получается, в базе не появляется запись...
где смотреть помогоите пожалуйста.

Записан
era
Dev Team
******

Репутация: +333/-4
Offline Offline

Пол: Мужской
Сообщений: 2258


В туалете лучше быть пользователем, чем админом.


« Ответ #18 : 11.07.2009, 12:38:59 »

ну дак у тебя навреное Joomla 1.5
Записан
asterix
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 12


« Ответ #19 : 23.01.2010, 17:39:28 »

вопрос как проверить права доступа у пользователя J 1.5
с фронта зайти могу
в панель администратора нет
хотя по базе  права стоят супера
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet