Fóruns

The great place to discuss topics with other users

Better Fake User generator

'
Join the Conversation Resposta ao Post
Jane Marcia
Admin
Joined: 2025-05-17 02:14:16
2026-02-06 11:45:04

Generate fake users that make sense :) 

You will need to edit core file for this but you an alwys come back here later and find the tutorial again :P

Download the file and check the installation tab for tutorial

Download the new faker and upload fakerphp inside the folder root/vendor

Open includes/traits/tools.php 

look for 

 public function fake_users_generator($users_num, $default_password, $random_avatar, $names_language)
  {
    global $db, $system, $date;
    /* default password */
    $default_password = ($default_password) ? $default_password : "123456789";
    /* random Avatar */
    $random_avatar = ($random_avatar) ? true : false;
    /* init Faker */
    $faker = Faker\Factory::create($names_language);
    /* random genders */
    $genders = ['male', 'female'];
    /* fake generator */
    $generated = 0;
    while ($generated < $users_num) {
      $fake_username = strtolower(str_replace(".", "_", $faker->userName)) . "_" . get_hash_key(4);
      $fake_email = $fake_username . "@" . $_SERVER['HTTP_HOST'];
      $fake_gender = array_rand($genders);
      $fake_firstname = $faker->firstName($genders[$fake_gender]);
      $fake_lastname = $faker->lastName;
      if ($random_avatar) {
        try {
          $fake_avatar = save_picture_from_url($this->get_random_profile_picture());
        } catch (Exception $e) {
          $fake_avatar = 'null';
        }
      } else {
        $fake_avatar = 'null';
      }
      /* insert new user */
      $query = $db->query(sprintf(
        "INSERT INTO users (
          user_name, 
          user_email, 
          user_password, 
          user_firstname, 
          user_lastname, 
          user_gender, 
          user_registered, 
          user_activated, 
          user_picture, 
          user_approved,
          is_fake
        ) VALUES (%s, %s, %s, %s, %s, %s, %s, '1', %s, '1', '1')",
        secure($fake_username),
        secure($fake_email),
        secure(_password_hash($default_password)),
        secure(ucwords($fake_firstname)),
        secure(ucwords($fake_lastname)),
        secure($fake_gender + 1, 'int'),
        secure($date),
        secure($fake_avatar)
      ));
      if (!$query) continue;
      $generated++;
    }
    return $generated;
  }

and replace with 

 public function fake_users_generator($users_num, $default_password, $random_Avatar, $language)
{
  global $db, $system, $date;

  $default_password = ($default_password) ?: "123456789";
  $random_Avatar    = ($random_Avatar) ? true : false;

  $faker   = Faker\Factory::create($language);
  $genders = ['male', 'female'];
  $generated = 0;

  while ($generated < $users_num) {

    /* ---------- BASIC PROFILE DATA ---------- */
    $gender     = $genders[array_rand($genders)];
    $firstname  = ucfirst($faker->firstName($gender));
    $lastname   = ucfirst($faker->lastName);
    $birthdate  = $faker->dateTimeBetween('-50 years', '-18 years')->format('Y-m-d');
    $gender_val = ($gender == 'male') ? 1 : 2;

    /* ---------- UNIQUE USERNAME ---------- */
    $base_username = strtolower(preg_replace('/[^A-Za-z0-9]/', '', $firstname));
    if ($base_username == '') {
      $base_username = strtolower(substr($firstname, 0, 1)) . rand(100,999);
    }
    $username = $base_username;

    $check = $db->query(sprintf("SELECT COUNT(*) AS c FROM users WHERE user_name = %s", secure($username)))->fetch_assoc();
    if ($check['c'] > 0) {
      $alt_username = strtolower(preg_replace('/[^A-Za-z0-9]/', '', $firstname . $lastname));
      $username = $alt_username;
      $check2 = $db->query(sprintf("SELECT COUNT(*) AS c FROM users WHERE user_name = %s", secure($username)))->fetch_assoc();
      if ($check2['c'] > 0) {
        $username = $alt_username . rand(10, 99);
      }
    }

    /* ---------- EMAIL ---------- */
    $email = $username . "@gmail.com";

    /* ---------- GENDER-CORRECT AVATAR ---------- */
    if ($random_Avatar) {
      try {
        if ($gender == 'male') {
          // pick a male avatar
          $male_avatars = [
            'https://randomuser.me/api/portraits/men/' . rand(1, 90) . '.jpg',
            'https://xsgames.co/randomusers/assets/avatars/male/' . rand(1, 90) . '.jpg'
          ];
          $avatar_url = $male_avatars[array_rand($male_avatars)];
        } else {
          // pick a female avatar
          $female_avatars = [
            'https://randomuser.me/api/portraits/women/' . rand(1, 90) . '.jpg',
            'https://xsgames.co/randomusers/assets/avatars/female/' . rand(1, 90) . '.jpg'
          ];
          $avatar_url = $female_avatars[array_rand($female_avatars)];
        }
        $avatar = save_picture_from_url($avatar_url);
      } catch (Exception $e) {
        $avatar = 'null';
      }
    } else {
      $avatar = 'null';
    }

    /* ---------- EMAIL VERIFICATION + CODE ---------- */
    $code = rand(100000, 999999);

    /* ---------- INSERT ---------- */
    $sql = sprintf(
      "INSERT INTO users (
        user_name,
        user_email,
        user_password,
        user_firstname,
        user_lastname,
        user_gender,
        user_birthdate,
        user_registered,
        user_activated,
        user_approved,
        user_email_verified,
        user_email_verification_code,
        user_picture,
        is_fake
      ) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, '1', '1', '1', %s, %s, '1')",
      secure($username),
      secure($email),
      secure(_password_hash($default_password)),
      secure($firstname),
      secure($lastname),
      secure($gender_val, 'int'),
      secure($birthdate),
      secure($date),
      secure($code),
      secure($avatar)
    );

    if ($db->query($sql)) {
      $generated++;
    }
  }

  return $generated;
}