[英]Joomla 2.5 create user in php script without email address
我有一個PHP函數,可用於在Joomla 2.5中創建新用戶。 此功能用於將外部客戶數據庫與Joomla同步。
新要求是,電子郵件地址必須為可選字段。 沒有電子郵件地址,我似乎無法讓JFactory函數正常工作。 還有另一種方法來創建用戶嗎?
function add_joomla_user($username, $email, $name, $password, $group) {
// Creates a new user in Joomla database with passed in information
$return_message = '';
$mainframe =& JFactory::getApplication("site");
$mainframe->initialise();
$user = JFactory::getUser(0); // it's important to set the "0" otherwise your admin user information will be loaded
jimport('joomla.application.component.helper'); // include libraries/application/component/helper.php
$usersParams = &JComponentHelper::getParams( 'com_users' ); // load the Params
$userdata = array(); // place user data in an array for storing.
$userdata['username'] = $username;
$userdata['email'] = $email;
$userdata['name'] = $name;
$userdata['password'] = $password;
$userdata['password2'] = $password;
$defaultUserGroup = $usersParams->get('new_usertype', $group);
$userdata['groups']=array($defaultUserGroup);
$userdata['block'] = 0; // set this to 0 so the user will be added immediately.
if (!$user->bind($userdata)) { // bind the data and if it fails raise an error
JError::raiseWarning('', JText::_( $user->getError())); // something went wrong!!
$return_message = 'Error binding data: ' . $user->getError();
}
if (!$user->save()) {
JError::raiseWarning('', JText::_( $user->getError()));
$return_message = 'Error creating user: ' . $user->getError();
} else {
$return_message = 'Created user';
}
return $return_message;
}
Joomla用戶處理絕對需要為每個用戶提供唯一的電子郵件地址。 這很棘手,我有點猶豫地提出這個建議,但是如果缺少它,您可以做的是替換隨機字符串或基於數據庫信息生成的字符串(例如$userdata['email'] = $username . '@noemail';
這樣他們就可以很容易找到后來當然,這意味着密碼重置等功能不會有任何效果,但如果用戶沒有電子郵件地址,將反正是真實的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.