Submitter Human Emulator — случайные данные для форм
Обновлено в августе 2026.
См. объект API submitter и статью отправка данных.
Видео Работа с фейковыми данными в Human Emulator
Создание случайных данных для автозаполнения различных форм и полей.
Последнее время очень много сайтов требуют от нас регистрации для получения доступа к их контенту. При этом не хочется оставлять свои реальные данные на чьём-то сайте ради того, что бы скачать или прочитать что-то. Поэтому мы заполняем такие формы регистрации так называемыми"фейковыми" данными, то есть неправдивыми. Хорошо если такие действия нам приходится выполнять раз в пятилетку, ну а если у нас есть необходимость постоянно регистрироваться, тут уже понадобиться десятки, а может и сотни таких неправдивых данных. Специально для этого в Human Emulator добавлен объект submitter.
Этот объект содержит методы по получению случайного профиля пользователя его имени и фамилии, его географического положения, а также функции создания случайного набора букв и цифр. Весь функционал работает в двух языковых режимах: "en" - английский, "ru" - русский. В RU режиме также можно указывать пол.
Логин и пароль.
Для генерации логина и пароля в объекте submitter можно использовать функции:
- Ник $submitter->generate_random_nick_name
- Текст $submitter->generate_random_text
- Число $submitter->generate_random_number
Пример:
// получить случайный ник $len_nick = $submitter->generate_random_nick_name(rand(7,12)); echo "случайный ник : ".$len_nick."<br>"; // случайный ник с цифрой на конце: $len_nick = $submitter->generate_random_nick_name(5,7).rand(100,999); echo "случайный ник с цифрой на конце : ".$len_nick."<br>"; // случайных текст английский $rand_pwd_en = $submitter->generate_random_text(rand(8,12),1); echo "случайных текст английский : ".$rand_pwd_en."<br>"; $rand_pwd_ru = $submitter->generate_random_text(rand(8,12),2); echo "случайных текст кириллица : ".$rand_pwd_ru."<br>"; echo "generate_random_number : ".$submitter->generate_random_number(1,10,true)."<br>"; echo "mt_rand : ".mt_rand(1,10)."<br>"; // // получить составной пароль echo "составной пароль : ".$pwd = strtoupper($submitter->generate_random_text(rand(1,3),1)). mt_rand(10,100).$submitter->generate_random_text(rand(1,3),1).mt_rand(1,1000);
Результат:
случайный ник : moqaruf случайный ник с цифрой на конце : boduq654 случайных текст английский : fjzuhtce случайных текст кириллица : дожэгвичащ generate_random_number : 5 mt_rand : 2 составной пароль : AWV62xex57
Как видим из примера функция $submitter->generate_random_number аналогична функциям php rand и mt_rand, единственное её отличие это возможность генерировать вещественное число, то есть число вместе со знаками после запятой.
Используя "чистый"(без использование объектов хуман эмулятора) пхп код можно также генерировать логин и пароль.
Пример:
// генерация логина
echo "логин : ".generate_login(rand(5,12))."<br>";
// генерация пароля
echo "пароль : ".generate_password(rand(5,12))."<br>";
// возвращает 128-битный хеш-код
echo "id : ".$id = md5(uniqid(rand(),true))."<br>";
echo "пароль2 : ".generate_password2(rand(5,12));
function generate_password2($number)
{
$arr = array("a","b","c","d","e","f",
"g","h","i","j","k","l",
"m","n","o","p","r","s",
"t","u","v","x","y","z",
"A","B","C","D","E","F",
"G","H","I","J","K","L",
"M","N","O","P","R","S",
"T","U","V","X","Y","Z",
"1","2","3","4","5","6",
"7","8","9","0",".",",",
"(",")","[","]","!","?",
"&","^","%","@","*","$",
"<",">","/","|","+","-",
"{","}","`","~");
// Генерируем пароль
$pass = "";
for($i = 0; $i < $number; $i++)
{
// Вычисляем случайный индекс массива
$index = rand(0, count($arr) - 1);
$pass .= $arr[$index];
}
return $pass;
}
// функция генерации пароля
function generate_password($len)
{
$string = "";
for ($i=0; $i<$len; $i++)
{
$ch = "";
$d = (int)rand(1,3);
if ($d==1)
{ $ch = chr((int)rand(0, 9)+48); }
if ($d==2)
{ $ch = chr((int)rand(0,25)+65); }
if ($d==3)
{ $ch = chr((int)rand(0,25)+97); }
$string.=$ch;
}
return $string;
}
// функция генерации логина
function generate_login($len)
{
$r = "";
$allowedSymbols = array("b","a","c","e","d","o","f","i","g","u","h","o","j","e","k","o","l","e","m","u","n","o","p","a","q","e","r","o","s","i","t","u","v","e","w","a","x","o","y","i","z");
for ($i=0; $i<$len; $i++)
{
$rand=array_rand($allowedSymbols);
if ($i % 2 == 0)
{
while($rand% 2 != 0)
{$rand=array_rand($allowedSymbols);}
$r.=$allowedSymbols[$rand];
}
else
{
while($rand% 2 == 0)
{$rand=array_rand($allowedSymbols);}
$r.=$allowedSymbols[$rand];
}
}
return $r;
}
Результат:
логин : xuwuyuqopi пароль : tE05n7d6Au id : 9f52e3de6c07cbc82df1eb971d17e674 пароль2 : yPROH|6x
В сети можно найти огромное количество различных примеров для генерации логина и пароля на PHP под любые требования к их созданию.
Для записи полученных логина и пароля в файл можно использовать следующий код:
$textfile->add_string_to_file("путь к файлу с аккаунтами",$len_nick.":".$pwd."\r\n",60);
описание функции add_string_to_file
Имя и фамилия.
Для генерации случайных имени и фамилии используются следующие функции:
Пример:
// /////////////////////////// английские имя и фамилия
echo "английские имя и фамилия : ";
$f_name = $submitter->generate_random_name("EN");
$l_name = $submitter->generate_random_second_name("EN");
echo $f_name." ". $l_name ."<br>";
// ///////////////////////////////////// русские имя и фамилия
// пол
$i_gender=rand(0,1);
$str_gender="man";
if($i_gender==1)
$str_gender="woman";
echo "пол : ".$str_gender."<br>";
// Имя
$f_name = $submitter->generate_random_name("RU",$str_gender);
// Фамилия
$l_name = $submitter->generate_random_second_name("RU",$str_gender);
echo "русские имя и фамилия : ".$f_name." ". $l_name ."<br>";
// переводим имя и фамилию в латиницу
echo "переводим имя и фамилию в латиницу : " . $full_name_lat = rus2translit($f_name." ".$l_name);
// функция перевода текста с кириллицы в траскрипт
function rus2translit($str)
{
// сначала заменяем "односимвольные" фонемы.
$str = strtr($str, "абвгдеёзийклмнопрстуфхъыэ", "abvgdeeziyklmnoprstufh"ie");
$str = strtr($str, "АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ", "ABVGDEEZIYKLMNOPRSTUFH"IE");
// Затем - "многосимвольные".
$str = strtr($str, array(
"ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",
"щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",
"Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH",
"Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA",
"ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye"));
// Возвращаем результат.
return $str;
}
Результат:
английские имя и фамилия : Hanski Jimenez пол : man русские имя и фамилия : Андрей Андроников переводим имя и фамилию в латиницу : Andrey Andronikov
Как видно из примера мы можем создавать как английские, так и русские имена и фамилии и в случае необходимости транслитерировать русские имена и фамилии с использованием латиницы.
Дата рождения и возраст.
Для генерации случайной даты рождения и вычисления возраста используется php функционал.
Пример:
// ////////////////////////////////// день рождения
// день
$day = rand(1,28);
// добавим ноль в начало если меньше 10
if($day<10)
$day="0".$day;
// месяц
$month=rand(1,12);
if($month<10)
$month="0".$month;
// год
$year = rand(1970,1993);
echo "дата рождения : ".$day.".".$month.".".$year ."<br>";
// использование функционала date php для создания случайной даты в заданном диапазоне
// начало диапазона дат
$sDateFrom = "1970-01-01";
// конец диапозона дат
$sDateTill = "2000-01-01";
$sDate = date("d.m.Y", mt_rand(strtotime($sDateFrom), strtotime($sDateTill)));
echo "дата рождения с использованием date : ".$sDate."<br>";
// вычислим возраст
echo "возраст : ".calculate_age($sDate);
// вычислить возраст по дате рожения
function calculate_age($birthday) {
$birthday_timestamp = strtotime($birthday);
$age = date("Y") - date("Y", $birthday_timestamp);
if (date("md", $birthday_timestamp) > date("md")) {
$age--;
}
return $age;
}
результат:
дата рождения : 15.10.1984 дата рождения с использованием date : 30.11.1979 возраст : 37
В зависимости от того каким образом надо будет вводить дату в форму, либо это несколько выпадающих списков для отдельного ввода дня, месяца и года или же это просто поле для ввода даты рождения, мы можем сгенерировать необходимые нам данные и в дальнейшем определить возраст по полученному дню рождения.
Местоположение.
Для создания местоположения используются следующие функции:
- Улица $submitter->generate_random_street
- Город $submitter->generate_random_city
- Регион $submitter->generate_random_region
- Страна $submitter->generate_random_country
пример:
// местоположение на русском
echo "местоположение на русском <br>";
echo "регион : ".$submitter->generate_random_region("RU")."<br>";
echo "страна : ".$submitter->generate_random_country("RU")."<br>";
echo "город : ".$submitter->generate_random_city("RU")."<br>";
echo "улица : ".$submitter->generate_random_street("RU")."<br>";
// местоположение на английском
echo "местоположение на английском <br>";
echo "регион : ".$submitter->generate_random_region("EN")."<br>";
echo "страна : ".$submitter->generate_random_country("EN")."<br>";
echo "город : ".$submitter->generate_random_city("EN")."<br>";
echo "улица : ".$submitter->generate_random_street("EN")."<br>";
результат:
местоположение на русском регион : Замбия страна : Гайана город : Верхняя тура улица : Балаклавская, ул. местоположение на английском регион : Vermont страна : Belarus город : Hillersleben улица : Iniscarn Road
Как видно из примера все функции генерят полностью случайные и не связанные между собой локации.
Для того что бы получать связанные локации можно использовать php код из сети. Вот например есть API Вконтакте с уже готовыми базами данных https://vk.com/dev/database. Берём и адаптируем это для наших нужд.
Пример:
$lang = 0; // russian
$headerOptions = array(
"http" => array(
"method" => "GET",
"header" => "Accept-language: ru\r\n" .
"Cookie: remixlang=$lang\r\n"
)
);
// получаем список стран используя api.vk.com
$methodUrl = "http://api.vk.com/method/database.getCountries?v=5.5&need_all=1&count=1000";
$streamContext = stream_context_create($headerOptions);
// содержимое базы
$json = file_get_contents($methodUrl, false, $streamContext);
// массив со странами
$arr = json_decode($json, true);
//echo "Total countries count: " . $arr["response"]["count"] . " loaded: " . count($arr["response"]["items"])."<br>";
// берём случайный элемент массива
$num = rand(0,$arr["response"]["count"]-1);
// получаем случайный id страны
$countryId = $arr["response"]["items"][$num]["id"];
echo "<br>страна : ";
$countryName = $arr["response"]["items"][$num]["title"];
// $countryId = 1; // Russia
// выведем в панель отладки название страны
echo $countryName = iconv("utf-8", "windows-1251//IGNORE", $countryName);
// получаем регионы используя api.vk.com и полученный выше $countryId
$methodUrl = "http://api.vk.com/method/database.getRegions?v=5.5&need_all=1&offset=0&count=1000&country_id=" . $countryId;
$streamContext = stream_context_create($headerOptions);
// читаем файл
$json = file_get_contents($methodUrl, false, $streamContext);
// получаем массив с регионами
$arr1 = json_decode($json, true);
//echo "Total regions count: " . $arr["response"]["count"] . " loaded: " . count($arr["response"]["items"]);
//print_r($arr["response"]["items"]);
// случайный элменет массива
$num = rand(0,$arr1["response"]["count"]-1);
// id региона
$regionId = $arr1["response"]["items"][$num]["id"];
echo "<br>регион : ";
$RegionName = $arr1["response"]["items"][$num]["title"];
// выведем в панель отладки название региона
echo $RegionName = iconv("utf-8", "windows-1251//IGNORE", $RegionName);
// получаем города используя api.vk.com и полученный выше $countryId и $regionId
$methodUrl = "http://api.vk.com/method/database.getCities?v=5.5&country_id=" . $countryId . "®ion_id=" . $regionId . "&offset=0&need_all=1&count=1000";
$streamContext = stream_context_create($headerOptions);
$json = file_get_contents($methodUrl, false, $streamContext);
// заполняем массив
$arr2 = json_decode($json, true);
//echo "Total cities count: " . $arr["response"]["count"] . " loaded: " . count($arr["response"]["items"]);
//print_r($arr["response"]["items"]);
// случайный элемент массива
$num = rand(0,$arr2["response"]["count"]-1);
// id города
$cytiId = $arr2["response"]["items"][$num]["id"];
echo "<br>город : ";
$СytiName = $arr2["response"]["items"][$num]["title"];
// выведем в панель отладки название города
echo $СytiName = iconv("utf-8", "windows-1251//IGNORE", $СytiName);
Результат:
страна : Чили регион : Regin de la Araucana город : Teodoro Schmidt
Вот подробная статья на тему использование данного API ВКонтакте
Ну а для получения номера дома и номера квартиры используем функции rand(1,28); или mt_rand(1,28); с нужными диапазонами.
Как видим, помимо использования встроенного в Хуман Эмулятор функционала для генерации различных данных, разработчикам скриптов автоматизации в Human Emulator доступен любой код на php. Вы можете легко внедрять в программу любые готовые классы и функции и использовать их вместе со встроенным функционалом программы.