By default, you can register a user's nickname with any length and characters. This is very bad, there is no filtering.
This mod is lost, but it is very important and I will post it again.
This is not my mod, I restored it from my gallery.
Description: this mod checks the nickname when registering a user for forbidden characters and the length of the nickname.
By default, this mod allows the length of nicknames from 2 to 25 characters. As well as only English and Russian letters, numbers, space. But you can change that.
This MOD works on 4images 1.8 and PHP 7.4.4
[ Changed Files ]
includes/constants.php
register.php
templates/register_form.html
lang/<your language>/main.php
[ Installation ]
First Backup your Files
Step 1
Open register.php
Find
$captcha = (isset($HTTP_POST_VARS['captcha'])) ? un_htmlspecialchars(trim($HTTP_POST_VARS['captcha'])) : "";
$error = 0;
below insert
//Mod UNEXPECTED CHARS START
function comprobar_username($nombre_usuario){
$long_max = MAX_USER_KEYWORD_LENGTH;
$long_min = MIN_USER_KEYWORD_LENGTH;
$sag = '';
if (strlen($nombre_usuario)<$long_min){
$sag = 2; // devuelve 2, como diciendo "error 2"
return $sag;
}
if (strlen($nombre_usuario)>$long_max){
$sag = 3; // devuelve 3, como diciendo "error 3"
return $sag;
}
$permitidos = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzЙЦУКЕЁНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮйцукеёнгшщзхъфывапролджэячсмитьбю0123456789 ";
for ($i=0; $i<strlen($nombre_usuario); $i++){
if (strpos($permitidos, substr($nombre_usuario,$i,1))===false){
$sag = $sag.substr($nombre_usuario,$i,1);
}
}
if ($sag != ''){
return $sag;
}
return true;
}
//Mod UNEXPECTED CHARS END
You can change this string and enter your allowed characters.
$permitidos = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzЙЦУКЕЁНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮйцукеёнгшщзхъфывапролджэячсмитьбю0123456789 ";
Find
$msg .= (($msg != "") ? "<br />" : "").$lang['username_exists'];
$error = 1;
}
below insert
//Mod UNEXPECTED CHARS START
elseif (comprobar_username($user_name) != 1)
{
$long_car = '';
for ($i=0; $i<strlen(comprobar_username($user_name)); $i++){
$long_car = $long_car.'#';
}
$resultado_func = comprobar_username($user_name);
if(strlen($resultado_func) >= 1 and $resultado_func != 2 and $resultado_func != 3){
$msg .= (($msg != "") ? "<br />" : "").$lang['username_bad_characters'];
$msg .= ": ".$resultado_func;
}
if($resultado_func == 2){
$msg .= (($msg != "") ? "<br />" : ""). $lang['user_name_short'];
}
if($resultado_func == 3){
$msg .= (($msg != "") ? "<br />" : ""). $lang['user_name_long'];
}
$recom = strtolower($user_name);
$recom = strtr($recom, " ", "_");
$recom = strtr($recom,comprobar_username($user_name), $long_car);
for ($i=0; $i<strlen($recom); $i++){
if (strpos($recom,'#')=== false){
}else{
$recom = substr($recom, 0,strpos($recom,'#')).substr($recom, strpos($recom,'#')+1);
}
}
$recom = trim($recom);
$long_max = MAX_USER_KEYWORD_LENGTH;
$recom = substr($recom,0,$long_max);
$username_option = $lang['user_name_option'].$recom;
$error = 1;
}
//Mod UNEXPECTED CHARS END
Step 2
Open templates/register_form.html
Find
<input type="text" name="user_name" size="30" value="{user_name}" class="input" />
below insert
<br>Allowed characters: A-Z a-z А-Я а-я 0-9 space<br>Nickname length: minimum 2, maximum 25 characters.
Step 3
Open includes/constants.php
Find
?>
above insert
//Mod UNEXPECTED CHARS AND LENGHT NICKNAME
define('MIN_USER_KEYWORD_LENGTH', 2);
define('MAX_USER_KEYWORD_LENGTH', 25);
(these values are the minimum and maximum length of the nickname, edit as you need.)
Step 4
Open templates/main.php
Find
?>
above insert
//Mod UNEXPECTED CHARS AND LENGHT NICKNAME
$lang['user_name_short'] = "The entered nickname is too short. The minimum value is 2 characters.";
$lang['user_name_long'] = "The entered nickname is too long. The maximum value is 25 characters.";
$lang['username_bad_characters'] = "Nickname contains invalid characters";