phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

Login con indirizzo mail

Cerchi una MOD? Chiedi in questo forum.
Questa sezione è supportata dagli utenti del forum, pertanto lo Staff potrebbe non eseguire tali richieste.
digreo
Utente
Utente
Messaggi: 265
Iscritto il: 02/10/2012, 12:23
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.3.16
Database: Mysql
Contatta:

Login con indirizzo mail

Messaggio da digreo » 18/01/2013, 15:44

Partendo con il dire di non propormi la mod (Prime Login via E-Mail) presente su phpbb.com, visto che ci sono diverse cose che non mi interessano (pannello amministratore, login anche con username, etc.);
Voglio cercare di realizzare un semplice login con soltanto l'indirizzo mail, senza altre strane funzioni!

Dunque, guardando la mod su phpbb.com, mi viene da pensare che i file da modificare sono:
includes/auth/auth_db.php function login_db()
includes/functions.php function login_box()
includes/functions_user.php function validate_username() & validate_email()
e infine i vari template e language!

Questa a prima occhiata.. ora bisogna approfondire!!
Se qualcuno ha già fatto qualcosa del genere o può semplificarmi l'operazione con qualche dritta.. sono qui per questo!!!

Grazie ancora :geek:

digreo
Utente
Utente
Messaggi: 265
Iscritto il: 02/10/2012, 12:23
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.3.16
Database: Mysql
Contatta:

Re: Login con indirizzo mail

Messaggio da digreo » 18/01/2013, 16:18

Ad esempio,
basterebbe inserire queste due righe di codice in includes/function.php, subito prima di $username=request_var('username', '', true);, nella funzione login_box() che richiama tutte le altre funzioni degli altri includes, per consentirci di fare il login con la mail (che ci consentirà di trovare lo username nel db e far funzionare tutte le altre funzioni normalmente.. OPPURE NO?!?)

Con questa var leggiamo l'input modificato del login, cioè attraverso la mail e andiamo a rintracciare lo username

Codice: Seleziona tutto

$email = request_var('email', '', true);

$sqluser = 'SELECT username, user_email FROM '.USERS_TABLE.' WHERE user_email = '.$email;
$resultuser = $db->sql_query($sqluser);
Così riscriviamo (visto che lo abbiamo cancellato!!) $username= request_var('username', '', true);
Ma non sono sicuro che il request_var TRUE (cookie se non sbaglio) serve ad altre funzioni diverse dal login!?! ..Però, in questo caso, si potrebbe creare un cookie subito dopo queste righe di codice! Vi viene in mente qualcosa?

Codice: Seleziona tutto

$username = $db->sql_fetchrow($resultuser);  

$db->sql_freeresult($resultuser);

digreo
Utente
Utente
Messaggi: 265
Iscritto il: 02/10/2012, 12:23
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.3.16
Database: Mysql
Contatta:

Re: Login con indirizzo mail

Messaggio da digreo » 28/01/2013, 16:48

Nessuno sa rispondermi? ...Se non rincorro in errori?!

digreo
Utente
Utente
Messaggi: 265
Iscritto il: 02/10/2012, 12:23
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.3.16
Database: Mysql
Contatta:

Re: Login con indirizzo mail

Messaggio da digreo » 05/02/2013, 20:49

Ricapitoliamo:
includes/function.php, nella funzione login_box().
Cancelliamo $username=request_var('username', '', true); e inseriamo::

Codice: Seleziona tutto

$email = request_var('email', '', true);
$sqluser = 'SELECT username, user_email FROM '.USERS_TABLE.' WHERE user_email = '.$email;
$resultuser = $db->sql_query($sqluser);
$username = $db->sql_fetchrow($resultuser);
$username = $username['username'];
$db->sql_freeresult($resultuser);
Vorrei sapere se incorrerò in qualche problema..!? O se mi consigliate un codice diverso.. etc.

Soshen
phpBB Expert
phpBB Expert
Messaggi: 39
Iscritto il: 04/11/2011, 16:45
Sesso: Maschio
Versione: 3.0.11
Server: UNIX/Linux
PHP: 5
Database: mysql 5
Contatta:

Re: Login con indirizzo mail

Messaggio da Soshen » 07/02/2013, 22:34

Ma l'username lo vuoi tenere o proprio togliere?
Cerco aiuto per ottimizzazione di template html5 e xhtml.
se vi interessa contattatemi via pm. XD

digreo
Utente
Utente
Messaggi: 265
Iscritto il: 02/10/2012, 12:23
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.3.16
Database: Mysql
Contatta:

Re: Login con indirizzo mail

Messaggio da digreo » 08/02/2013, 21:38

la variabile username penso sia essenziale per altri script e per il database, lo user=>data, etc.!
Sto provando a fare il login con la email e poi rintracciare lo username per creare la variabile.

Avatar utente
ludwig
Utente
Utente
Messaggi: 28
Iscritto il: 04/02/2013, 13:06
Sesso: Maschio
Versione: 3.0.11

Re: Login con indirizzo mail

Messaggio da ludwig » 09/02/2013, 20:46

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 :D ).

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?. :shock:

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! :lol:

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.

digreo
Utente
Utente
Messaggi: 265
Iscritto il: 02/10/2012, 12:23
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.3.16
Database: Mysql
Contatta:

Re: Login con indirizzo mail

Messaggio da digreo » 09/02/2013, 21:09

Capisco benissimo, però non mi sembra differisca molto da quello che ho fatto io.. però, secondo me, è una soluzione (la tua) che non funziona :twisted: ; in quanto $username deve essere uguale a $user->data['username'] perchè è quello che si aspettano molte altre funzioni dei file includes (es. function_user)!
...Ma posso sbagliarmi.

Avatar utente
ludwig
Utente
Utente
Messaggi: 28
Iscritto il: 04/02/2013, 13:06
Sesso: Maschio
Versione: 3.0.11

Re: Login con indirizzo mail

Messaggio da ludwig » 10/02/2013, 0:46

digreo ha scritto:non mi sembra differisca molto da quello che ho fatto io
:lol: :lol: :lol: :lol: :lol: :lol: :lol:
Spero seriamente tu stia scherzando... le differenze sarebbero palesi anche per un cieco (si agisce proprio su un file differente)!
digreo ha scritto:però, secondo me, è una soluzione (la tua) che non funziona ; in quanto $username deve essere uguale a $user->data['username'] perchè è quello che si aspettano molte altre funzioni dei file includes (es. function_user)!
Testata in locale.... risultato:
la mia funziona (forse proprio perché io ho capito a che serve quel $user->data['username']... e che non c'entra niente con il login utente ma solo con il login del PCA), la tua no (ed ecco già scovata, senza accorgersene, la prima differenza fra le due versioni :lol: )!

P.S.: In ogni caso io cercavo di aiutare. Ho cercato di farti capire che stavi agendo nella posizione e nelle modalità sbagliate (sebbene avessi pochissimo tempo a mia disposizione... cosa che, come io stesso ho affermato, non ha reso la modifica un gioiello della programmazione). Puoi provarla e constatarne il funzionamento, oppure, se preferisci, del tutto ignorare il mio intervento! ;)

Ho solo una domanda da fare, alla cui risposta non replicherò: che senso ha chiedere aiuto se si pensa di sapere più degli altri?

digreo
Utente
Utente
Messaggi: 265
Iscritto il: 02/10/2012, 12:23
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.3.16
Database: Mysql
Contatta:

Re: Login con indirizzo mail

Messaggio da digreo » 10/02/2013, 21:21

E' qui lo sbaglio! :D .. Adesso sò! :P

Grazie infinite!.. Probabilmente proverò prima la tua soluzione. :*

Rispondi

Torna a “Richiesta MOD”

Chi c’è in linea

Visitano il forum: Nessuno e 57 ospiti