簡體   English   中英

Joomla 2.5使用PHP腳本創建用戶而沒有電子郵件地址

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM