2012-06-29 5 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. 또한 사용자 이름 입력란을 등록 양식에서 제거해야합니다. 그래서 난 내 컨트롤러에서 사용자 이름 필드에 대한 양식 유효성 검사를 전달할 수 있어야합니다.

여러분 중 누구라도 이러한 문제에 관해 도움을 주시면 정말 기쁩니다.

감사

application/models/tank_auth/users 라인 121에서

답변

1

당신은이 :

/** 
* 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); 

P.S. 당신이 이해하기를 바랍니다. 다만, 동일한 이메일의 사용자 이름이 두 명 이상인 사용자가 [email protected][email protected] 인 경우 둘 다 동일한 사용자 이름을 가지므로 예기치 않은 동작이 발생할 수 있습니다.

관련 문제