In questa pillolina vediamo come riconoscere gli utenti in un sito che ha il forum phpBB 2 (spero che valga anche per l'1 ma non so con precisione) anche perchè questo forum sta diventando il più commerciale di tutti dato la sua licenza molto vantaggiosa
IPOTESI:
abbiamo a disposizione un bel dominio
www.miosito.it/
in cui abbiamo creato una cartella per metterci dentro il phpBB
www.miosito.it/forum/
io inoltre ho creato una cartella dove mettere tutte le pagine
www.miosito.it/page/
Bene a questo punto vogliamo creare un sito che contenga una registrazione utenti ma gli stessi dati del forum siano uguali a quelli del sito.
In questa pagina viene spiegato anche abbastanza bene ma ho pensato di tradurlo per la felicità di tanta gente che come me non sa l'inglese.
Senza contare che io non ho fatto la stessa cosa...io ho copiato il file che ci servirà e lo ho modificato a mio piacimento. Comunque siete liberi di usare sia il file originario del phpBB che il mio, reperibile esattamente qui .
Per cominciare apriamo index.php il file che conterrà il form di user e pass e tra le prime righe mettiamo questo codice
Importante per i meno esperti: questo codice va messo all'inizio di tutta la pagina ancora prima di <html> o di qualsiasi <script> o <style>.Codice PHP:
<?php
session_start();
define('IN_PHPBB', true);
$phpbb_root_path = 'forum/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
?>
Adesso vediamo di creare il form che andrà in homepage
Come potete vedere io il form non lo invio all'url forum/login.php bensì all'url page/login.php, directory dove ho messo il mio file modificato.codice:Effettua il log-in <form action="page/login.php" method="POST"> <input type="text" name="username" size="16" maxsize="25" value="username"> <input type="password" name="password" size="16" maxsize="25"> Ricordati di me<input type="checkbox" name="autologin"> <input type="submit" value="Invia" name="login"> </form>
Il perchè di tutto questo lo vedremo dopo.
Se invece all'inizio avete scelto di utilizzare il file originale del phpBB allora dovete sostituire questo
Che vi piaccia o no, abbiamo finito.codice:<form action="forum/login.php" method="POST">
Se dopo volete abbellire il codice del mio file siete liberi di farlo.
Voglio spiegarvi adesso perchè non ho fatto il login con il file originario del phpBB.
Se voi inviereste il form a forum/login.php ottereste una pagina che vi dice: Benvenuto al forum xxx, oppure User o password errata. In entrambi i casi il redirect vi spedirebbe in una pagina del forum stesso(index.php per il primo caso, login.php nell'altro), che a mio modestissimo parere è una cosa molto sgradevole poichè l'utente inesperto dovrebbe cliccare il tasto INDIETRO del suo browser ochissà chè :rollo: .
La pagina che che ho modificato io agisce in vari casi:
-> se l'user e la pass è giusta si collega a ../index.php che sarebbe www.miosito.it/
-> se l'user è giusto e la pass sbagliata si presenta una facciata del phpBB che vi dice "user o pass errati" e il redirect va a finire sempre a www.miosito.it/
-> se l'user è sbagliato compare una schermata bianca con scritto CIAO HAI SBAGLIATO DATI, frase da personalizzare con un eventuale modifica al file page/login.php.
PS: notare che le cartelle forum/ o page/ possono essere aggirate a piacimento modificando una riga nelle 2 pagine, quindi se avete una struttura diversa basta solo cambiare le prime la path nelle prime righe di login.php e index.php
Tutto finito ! Spero di essere stato utile a qualche persona