2012-06-29 78 views
0

我使用Codeigniter框架+ Tank_Auth註冊庫。他們的工作很好,但我只需要更改註冊表。使用Codeigniter + Tank Auth的電子郵件創建用戶名

我想從電子郵件地址生成用戶名,而不是從註冊表中獲取用戶名。我添加了一個簡單的函數庫/ Tank_auth.php文件。這裏是我的用戶名發生器功能:

function _create_username_from_email($email) 
{ 
$user = strstr($email, '@', true); // As of PHP 5.3.0 
return $user; 
} 
  1. 請讓我知道我需要運行我的功能,並將其寫入到數據庫中。

  2. 我還需要從註冊表中刪除用戶名字段。所以我需要我可以通過我的控制器中的用戶名字段的表單驗證。

如果你們中的任何一位能夠幫助我解決這些問題,我將非常高興。

感謝

回答

1

在行121application/models/tank_auth/users您有:

/** 
* Create new user record 
* 
* @param array 
* @param bool 
* @return array 
*/ 
function create_user($data, $activated = TRUE) 
{ 
    $data['created'] = date('Y-m-d H:i:s'); 
    $data['activated'] = $activated ? 1 : 0; 

    if ($this->db->insert($this->table_name, $data)) { 
     $user_id = $this->db->insert_id(); 
     if ($activated) $this->create_profile($user_id); 
     return array('user_id' => $user_id); 
    } 
    return NULL; 
} 

就在if ($this->db->insert($this->table_name, $data)) {插入前:

$data['username'] = strstr($data['email'], '@', true); 

附: 我希望你瞭解它,但以防萬一 - 如果你有兩個或更多用戶使用同一個電子郵件的用戶名部分,如[email protected][email protected],他們都將具有相同的用戶名,這可能會導致意外的行爲。

相關問題