Problemino del giorno! Come potrei fare per creare una pagina di registrazione utenti, che serva per il sito, ma che registri gli utenti anche nel forum (phpBB), in modo che questi non debbano loggarsi più volte?!?
E' sufficiente che faccia memorizzare i dati dell'utente nella tabella utenti del forum?
Ricordo di aver letto un post su questo argomento, ma non sono più riuscito a trovarlo...
non conosco bene il database del phpbb e come gestisce le query... ma dovresti inserire i dati nella tabella members o qualcosa del genere quando fai la registrazione...
Soluzione semplice che ho fatto sul mio sito: praticamente per la registrazione reindirizzo alla pagina di registrazione del phpBB... per il login ho messo un form che mi autentica con le funzioni del forum, in modo che le tabelle su cui va a aconfrontare siano le stesse del forum... in questo modo io ho fatto il minimo lavoro, il resto lo fa il motore del forum da sè.
Dunque, partiamo dallo schema logico che ho seguito:
- la pagina controlla se uno è loggato attraverso le funzioni del forum ... come fare questa cosa? A ben guardare i file del phpBB è sufficiente far uso delle funzioni che il forum stesso utilizza ... quindi basta che all'inizio del file ci siano dichiarati gli include che servono:
[code:1:909ce4baa7]
define('IN_PHPBB', true);
//qui dovete definire la vostra dir del phpbb
$phpbb_root_path=
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
[/code:1:909ce4baa7]
Successivamente per vedere se l'utente è già loggato usate un if di questo tipo:
[code:1:909ce4baa7]<?php
if ( $userdata['session_logged_in'] )
{
?>[/code:1:909ce4baa7]
e lì ci mettete quello che volete, tipo opzioni riservate a chi è loggato(potete anche ditinguere tra i vari livelli e i gruppi di appartenenza, basta vedere quali sono i parametri che vi servono.
Se l'utente nnon è loggato, allora andiamo nell'else e lì ci inserite il form, che è una cosa di questo tipo:
[code:1:909ce4baa7]
else
{
?>
<form name="cocaris" method="post" action="/login.php?login=true">
<font color="#E8F5FF">&nbsp;Nome utente<br></font>
&nbsp;
<input type="text" name="username" value="<? $username; ?>" size="10" maxlenght="10">
<br>
<font color="#E8F5FF">&nbsp;Password< ;br></font>
&nbsp;
<input type="password" name="password" value="<? $password; ?>" size="10" maxlenght="10">
&nbsp; <br><font color="#E8F5FF">&nbsp;Login automatico : </font>
<input type="checkbox" name="autologin" ><br><br>&nbsp;
<input type="button" class="mainoption" value="Invia" onClick="if (Controllo()) document.cocaris.submit();">
</form>
<hr>
<div align="justify"><span class="testo">Non sei registrato?<br>
Clicca <a href="/phpBB2/profile.php?mode=register" class="normal">qui</a> per creare il tuo account.</span></div>
<?
}
?>
[/code:1:909ce4baa7]
Chiaramente questo form è per il mio sito, e quindi anche l'aspetto grafico dipende dal layout, comunque potete modificarlo.
Il fom reindirizza ad un file che si chiama login.php e che ha come action login=true... io lo ho fatto basandomi su quello del phpbb, comunque è sufficiente collegarsi al database e confrontare i campi user e password con i campi nella tabella phpbb_users ...
Se poi vi serve, dite pure che posto anche il login.php, ma non è difficile da scrivere anche a mano.
Enjoy,
ah mi sono scordatod i dire che la funzione controllo è semplicemente un javascript che consente di verificare a livello utente se i campi sono vuoti, senza che lo facci ail server ... in questo modo solo riempiendo i campi, il form viene inviato e il server fa il suo bel lavoretto.