Salve a tutti.
Mi sono scritto due funzioni per generare login e password.
Funzionano benissimo. Ho scritto una terza funzione che controlla se il login esiste, e qualora questo esista dovrebbe troncare l'ultima lettera di quello nuovo e aggiungerci un numero. L'ho provata ma non mi funziona...
In pratica il login deve essere unico, per cui in caso di omonimi, non dovrebbero uscire due login uguali.
Questa funzione dovrebbe fare così (ad esempio di due Mario Rossi):
primo login: mariorossi
secondo login: marioross0
eventuale terzo login: marioross1
etc. etc.
Codice PHP:
function checklogin($login) {
$querycheck = "miaquery WHERE login = '$login';";
mysql_query($querycheck);
if (mysql_affected_rows()==0) {
return $login;
} else {
$loginiscorrect = false;
while ($loginiscorrect == true) {
$isnumber = substr($login, (strlen($login)-1), 1); # prendo l'ultima lettera del login
if (ctype_digit($isnumber)) { # se la stringa contiene un numero
$isnumber = (int) $isnumber++; # lo converto in numero e lo aumento di +1
$login = substr($login, 0, (strlen($login)-1)); # prendo il login e gli tolgo l'ultima lettera
$login .= $isnumber; # aggiungo al login il numero
} else {
$login = substr($login, 0, (strlen($login)-1)); # prendo il login e gli tolgo l'ultima lettera
$login .= "0"; # al posto dell'ultima lettera ci metto uno 0
}
$querycheck = "miaquery WHERE login = '$login';";
mysql_query($querycheck);
if (mysql_affected_rows()==0) $loginiscorrect = true;
}
return $login;
}
}
Così facendo quando genero il login lo faccio con due funzioni:
$jmlogin = generatelogin($nome, $cognome);
dopodicchè controllo se esiste e qualora ne esista già uno ne creo uno diverso:
$jmlogin = checklogin($jmlogin);