Date Posted: 04-09-2018

In this Post we will explain Generate Username from User First and Last Name using codeigniter library

Step 1 : Go to folder application -> libraries

Step 2 : Create a PHP file with Unique_username_lib.php

Step 3 : Add the following code in Unique_username_lib.php. This code is used for create the unique user name.

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Unique_username_lib 
{
    var $CI;
    public function __construct($params = array())
    {
        $this->CI =& get_instance();
        $this->CI->load->database();
        
    }

    //Generate a unique username using Database
    function generate_unique_username($string_name="", $rand_no = "")
    {
      // echo $string_name."".$rand_no;
       while(true){
            $username_parts = array_filter(explode(" ", strtolower($string_name))); //explode and lowercase name
            $username_parts = array_slice($username_parts, 0, 2); //return only first two arry part
        
            $part1 = (!empty($username_parts[0]))?substr($username_parts[0], 0,8):""; //cut first name to 8 letters
            $part2 = (!empty($username_parts[1]))?substr($username_parts[1], 0,5):""; //cut second name to 5 letters
            $part3 = ($rand_no)?rand(0, $rand_no):"";
            
            $username = $part1. str_shuffle($part2). $part3; //str_shuffle to randomly shuffle all characters 
            
            $username_exist_in_db = $this->username_exist_in_database($username); //check username in database
            if(!$username_exist_in_db){
                return $username;
            }
        }
    }

    // User Name exist in Database.
    function username_exist_in_database($username="")
    {
      $sql = "SELECT * FROM ".DB_PREFIX.'users'." WHERE username = ?"; 
      $results = $this->CI->db->query($sql, array($username));
      if ( $results->num_rows() > 0) 
      {
      	# code...
      	return true;
      }
      else
      {
      	return false;
      }
      
    }
}

Step 4: Load the liabary into controller using below command.

$this->load->library('unique_username_lib');

Step 5: Once you load library file in above step, next calling library file in your controller method like below

$this->unique_username_lib->generate_unique_username($string_name = "Pheonix"."Solutions", $rand_no = mt_rand(1000, 9999))

 

 

Leave a Reply