La risposta di Soshen era, secondo me, più che legittima.... ne è prova il fatto che stavo per farla anch'io (intendiamoci non sto affatto sopravvalutando me stesso, sto solo affermando che siamo già in due a pensare la stessa cosa

).
Infatti, se all'interno del tuo forum il nome utente non serve, non è più facile dire (o forzare) l'inserimento diretto della email in fase di registrazione? (niente nome utente.... o meglio
nome utente = email utente).... anche perché se l'utente si registra con un nome utente, perché poi richiedere l'email in fase di login?.
Comunque mi attengo al minimo, e ti spiego come fare per eseguire il login con la password... lasciando che tutto il resto rimanga uguale.
Innanzitutto, non fare alcuna delle modifiche che hai pensato... anche perché penso non dovrebbero funzionare!
Al più prova così:
In
./includes/auth/auth_db.php.................
al posto di:
Codice: Seleziona tutto
$username_clean = utf8_clean_string($username);
$sql = 'SELECT user_id, username, user_password, user_passchg, user_pass_convert, user_email, user_type, user_login_attempts
FROM ' . USERS_TABLE . "
WHERE username_clean = '" . $db->sql_escape($username_clean) . "'";
inserisci
Codice: Seleziona tutto
//username_clean si suppone contenga l'email
$username_clean = utf8_clean_string($username);
$sql = 'SELECT user_id, username, user_password, user_passchg, user_pass_convert, user_email, user_type, user_login_attempts
FROM ' . USERS_TABLE . "
WHERE user_email = '" . $db->sql_escape($username_clean) . "'";
poi in
./includes/functions.php................
al posto di:
Codice: Seleziona tutto
// Check if the supplied username is equal to the one stored within the database if re-authenticating
if ($admin && utf8_clean_string($username) != utf8_clean_string($user->data['username']))
inserisci
Codice: Seleziona tutto
// Check if the supplied username is equal to the one stored within the database if re-authenticating
//l'accesso al PCA è garantito dall'email e non più dall'username
if ($admin && utf8_clean_string($username) != utf8_clean_string($user->data['user_email']))
inoltre in
./styles/prosilver/template/login_body.html dovresti
sostituire questo:
Codice: Seleziona tutto
<dt><label for="{USERNAME_CREDENTIAL}">{L_USERNAME}:</label></dt>
con
Codice: Seleziona tutto
<dt><label for="{USERNAME_CREDENTIAL}">{L_EMAIL}:</label></dt>
...così dovrebbe funzionare!
P.S.: ho cercato di modificare il codice il meno possibile... per non rendere questa pagina di spiegazioni troppo lunga (avevo poco tempo a disposizione)...ma ciò ha comportato l'utilizzo dei precedenti nomi per le variabili.... e quindi una confusione cognitiva all'interno del codice, tuttavia ci tengo a precisare che questo non è il mio solito modo di procedere nella programmazione.