Php 使用Codeigniter+;从电子邮件创建用户名;坦克认证
我使用Codeigniter框架+Tank_Auth库。他们的工作很好,但我只需要改变一下登记表 我想从电子邮件地址生成用户名,而不是从注册表中获取。我在libraries/Tank_auth.php文件中添加了一个简单的函数。以下是我的用户名生成器函数:Php 使用Codeigniter+;从电子邮件创建用户名;坦克认证,php,codeigniter,codeigniter-2,tankauth,Php,Codeigniter,Codeigniter 2,Tankauth,我使用Codeigniter框架+Tank_Auth库。他们的工作很好,但我只需要改变一下登记表 我想从电子邮件地址生成用户名,而不是从注册表中获取。我在libraries/Tank_auth.php文件中添加了一个简单的函数。以下是我的用户名生成器函数: function _create_username_from_email($email) { $user = strstr($email, '@', true); // As of PHP 5.3.0 return $user; } 请让我
function _create_username_from_email($email)
{
$user = strstr($email, '@', true); // As of PHP 5.3.0
return $user;
}
感谢
application/models/tank\u auth/users
中第121行的您有:
/**
* 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)){
insert之前:
$data['username'] = strstr($data['email'], '@', true);
附言。
我希望你能理解,但以防万一——如果你有两个或更多的用户使用同一封电子邮件的用户名部分,如john@hotmail.com
和john@gmail.com
它们都具有相同的用户名,这可能会导致意外行为