Fóruns
The great place to discuss topics with other users
Better Fake User generator
'
Join the Conversation
Responder a publicação
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;
}