Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Codeigniter+;从电子邮件创建用户名;坦克认证_Php_Codeigniter_Codeigniter 2_Tankauth - Fatal编程技术网

Php 使用Codeigniter+;从电子邮件创建用户名;坦克认证

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; } 请让我

我使用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;
}
  • 请让我知道我需要在哪里运行我的函数并将其写入数据库

  • 我还需要从注册表中删除用户名字段。所以我需要如何在控制器中通过用户名字段的表单验证

  • 如果你们中有人能帮我解决这些问题,我将非常高兴


    感谢
    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
    它们都具有相同的用户名,这可能会导致意外行为