0 Пользователей и 1 Гость просматривают эту тему.
  • 20 Ответов
  • 8993 Просмотров

У меня есть компонент.
Мне надо добовлять пользователей следующим образом - имя пользователя, логин, пароль, мыло должно добавляться в таблицу #__users, а в таблицу моего компонента (#__c_users) id из #__users, и другие данные, которых нет в таблице #__users, например URL

Подскажите пожалуйста, как можно добавить даные в таблицу #__users средствами Joomla

Сейчас я это делаю так, но знаю, что можно сделать проще:

Код
<?php

mysql_query("INSERT INTO j_users (`name`, `username`, `registerDate`, `password`, `gid`, `usertype`, `email`) VALUES ('".$fulname."', '".$user."', '".date( 'Y-m-d H:i:s' )."', '".md5($pass)."', '18', 'Registered', '".$email."')");
$idu = mysql_insert_id();

mysql_query("INSERT INTO j_core_acl_aro (`section_value`, `value`, `name`) VALUES ('users', '".$idu."', '".$fulname."')");
$aroid = mysql_insert_id();

mysql_query("INSERT INTO j_core_acl_groups_aro_map (`aro_id`, `group_id`) VALUES ('".$aroid."', '18')");

$query = "INSERT INTO `#__selfpage_users` (`user_id`, `pack`) VALUES ('".$idu."', '".$url."')";
$database->setQuery( $query );
if(!$result = $database->query()) {
echo $database->stderr();
return;
}
?>

Подскажите, пожалуйста.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Как добавить пользователя
« Ответ #1 : 05.09.2006, 15:41:47 »

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();

Re: Как добавить пользователя
« Ответ #2 : 05.09.2006, 15:54:28 »
Спасибо.

Очень помогло.

Re: Как добавить пользователя
« Ответ #3 : 05.09.2006, 16:02:24 »
Ещё такой вопрос?

А есть какая-то функция для проверки существующего пользователя или надо самому писать?
А то сколько раз добавляешь пользователей с одинаковыми именами, столько их и добавляется.

И ещё. Таким образом добавляется логин любой длины (даже 1 символ), а когда в админке меняешь что-либо в таком пользователе, он не хочет сохранять изменения, так, пишет что логин слишком короткий
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Как добавить пользователя
« Ответ #4 : 05.09.2006, 16:07:22 »
А есть какая-то функция для проверки существующего пользователя или надо самому писать?
да, есть, этим занимается метод check, класса mosUser. Вот доработанный код:


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' );

if (!
$user->check()) {
	
echo 
"<script> alert('".html_entity_decode($user->getError())."'); window.history.go(-1); </script>\n";
	
exit();
}

$user->store();
« Последнее редактирование: 03.05.2007, 11:51:16 от smart »

Re: Как добавить пользователя
« Ответ #5 : 05.09.2006, 16:14:57 »
Спасибо ещё раз.

Re: Как добавить пользователя
« Ответ #6 : 05.09.2006, 16:47:37 »
Ещё вопрос:

обновляеться юзер таким же оброзом, только вместо 0 ($user->id=0;) ставится id юзера. правильно понял?

есть ли какой-то метод для отображения даных пользователя (loadUsers(), $user->load или что-то подобное) или обычным способом через запрос?
*

yAnTar

  • Захожу иногда
  • 296
  • 81 / 3
Re: Как добавить пользователя
« Ответ #7 : 06.09.2006, 10:41:37 »
Большой респект smart'у, а я то ручками добавлял.
Firefox the best, Google the best, jQuery the best.
yAnTar блог
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Как добавить пользователя
« Ответ #8 : 06.09.2006, 11:59:43 »
есть ли какой-то метод для отображения даных пользователя (loadUsers(), $user->load или что-то подобное) или обычным способом через запрос?


global $database;

$user = new mosUser$database );

if ( 
$user->load$id ) ) {
	
echo 
$user->name;
} else {
	
// user not found
}

Re: Как добавить пользователя
« Ответ #9 : 09.09.2006, 21:15:19 »
При добавлени пользователя, вроде  бы как все поля добавляются. Но при попытке авторизироваться выдает ошибку, что неправильный логин или пароль.
Подскажите, что не правильно в добавлении пользователя, а именно пароля.


$user 
= new mosUser$database );
...
$user->password md5$password );
...
$user-store();


Если всё правильно, то почему не проходит авторизация?
« Последнее редактирование: 10.09.2006, 18:26:44 от Beginner »

Re: Как добавить пользователя
« Ответ #10 : 10.09.2006, 18:28:50 »
Что ни делал, ничего не помогает.
Помогите, пожалуйста.
*

yAnTar

  • Захожу иногда
  • 296
  • 81 / 3
Re: Как добавить пользователя
« Ответ #11 : 11.09.2006, 10:39:25 »
У меня работает, все так как смарт писал.
Firefox the best, Google the best, jQuery the best.
yAnTar блог
*

yAnTar

  • Захожу иногда
  • 296
  • 81 / 3
Re: Как добавить пользователя
« Ответ #12 : 02.05.2007, 11:50:11 »
У Smart'а опечатка: вместо
Код
$user-store();
должно быть
Код
$user->store();
Firefox the best, Google the best, jQuery the best.
yAnTar блог
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Как добавить пользователя
« Ответ #13 : 03.05.2007, 11:52:33 »
У Smart'а опечатка: вместо
угу, спасибо исправил... приношу извинения за непредумышленную ошибку в примере...

Re: Как добавить пользователя
« Ответ #14 : 14.04.2009, 16:33:57 »
Если я обновил данные пользователя в бд, как сделать его текущим?
*

aljoom

  • Новичок
  • 4
  • 0 / 0
Re: Как добавить пользователя
« Ответ #15 : 11.07.2009, 12:34:57 »
не получается, в базе не появляется запись...
где смотреть помогоите пожалуйста.

использую Joomla 1.5.X - видимо в этой версии делать надо не так...
« Последнее редактирование: 11.07.2009, 12:47:17 от aljoom »
*

Aleks_El_Dia

  • Живу я здесь
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Re: Как добавить пользователя
« Ответ #16 : 11.07.2009, 16:17:45 »
Видимо это решение таки для Joomla! 1.0.x если тема в этом разделе))
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

obormot

  • Захожу иногда
  • 68
  • 1 / 2
Re: Как добавить пользователя
« Ответ #17 : 28.10.2009, 16:37:04 »
Допустим добавляю юзера таким, 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();

Как узнать id добавленного юзера?
*

obormot

  • Захожу иногда
  • 68
  • 1 / 2
Re: Как добавить пользователя
« Ответ #18 : 29.10.2009, 13:04:14 »
Странно.. Поставил локально две Жумлы - Одна - сайт с нуля, вторая - бэкап старого сайта, обе 1.0.12 - В новой после выполнения скрипта выше регистрация с фронт-энда проходит успешно, во втором пишеь - неверный логин или пароль...  В таблицах все одинаково... хм ((
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Как добавить пользователя
« Ответ #19 : 29.10.2009, 20:45:55 »
Как узнать id добавленного юзера?
сразу после строчки:
Допустим добавляю юзера таким, Smartовским способом:

Код
$user-store();
в поле $user->id уже находится реальное значение идентификатора пользователя...

*

obormot

  • Захожу иногда
  • 68
  • 1 / 2
Re: Как добавить пользователя
« Ответ #20 : 30.10.2009, 11:09:02 »
Цитировать
$user->id
- супер! как раз то, что надо!

Вообще при добавлении юзеров какие таблицы участвуют?
Эти точно -  #__users, #__core_acl_aro

А в #__core_acl_groups_aro_map  последнее поле - aro_id очень похоже на id юзеров - так ли это?
« Последнее редактирование: 30.10.2009, 11:23:08 от obormot »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Можно ли на страницу категории добавить текст между заголовками материалов?

Автор uhogorlonos

Ответов: 0
Просмотров: 6959
Последний ответ 30.11.2012, 17:09:14
от uhogorlonos
Как достать ID пользователя?

Автор nvhost

Ответов: 14
Просмотров: 8781
Последний ответ 31.05.2010, 18:23:55
от Pulimet
Как добавить скрипт на сайт?

Автор Sabres

Ответов: 3
Просмотров: 9613
Последний ответ 02.04.2010, 14:23:17
от Oriy
как вытащить имя пользователя, в PHP код и вывести?

Автор Privat

Ответов: 1
Просмотров: 2568
Последний ответ 19.02.2010, 19:33:01
от terr
Как программно зарегистрировать нового пользователя?

Автор ~angel~

Ответов: 19
Просмотров: 7295
Последний ответ 23.01.2010, 16:39:28
от asterix