Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Cms > PhpBB
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 06-04-09, 20:11   #1 (permalink)
 
L'avatar di Inverter
 
Data di registrazione: Jun 2008
Messaggi: 135
[Tutorial] Intergrazione login con PHPBB3.

Vista la confusione dei post in inglese su questo argomento mi ero ripromesso di fare un breve tutorial su come si implementare il sistema di login del noto forum PHPBB3 con il vostro sito personale.

Iniziamo subito creando il file config.php che dovrà essere incluso in ogni pagina che necessità di un controllo sull'identità dell'utente.
config.php
Codice PHP:
<?php
/** Inizializzazione sessione PHPBB3 */
    
define('IN_PHPBB'true);
    
define('ROOT_PATH'"cartella/del/forum"); //Scrivete l'indirizzo della cartella in cui è contenuto il forum

    
if (!defined('IN_PHPBB') || !defined('ROOT_PATH')) {
        exit();
    }

    
$phpEx "php";
    
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH ROOT_PATH '/';
    include(
$phpbb_root_path 'common.' $phpEx);

    
$user->session_begin();
    
$auth->acl($user->data);
    
$user->setup();
/* Fine della gestione sessioni */
?>
A questo punto abbiamo accesso ai dati dell'utente, per cui, per controllare se l'utente è loggato o no ci basta un semplice if:
Codice PHP:
if ($user->data['user_id'] == ANONYMOUS//Se NON è loggato...
{
       echo 
"Devi effettuare il login!";
}
else 
// Invece se è loggato
{
       echo 
"Benvenuto ".$user->data['username']."!" ;          

Creiamoci quindi la pagina con il form in html per effettuare il login.
login.php
Codice HTML:
                    <form action="ucp.php?mode=login" method="post">
                            <label>Username</label><br />                        
                            <input type="text" name="username" value="" /><br /><br />                        
                            <label>Password</label><br />                    
                            <input type="password" name="password" /><br /><br />    
                            <label>Ricordami:</label>
                            <input type="checkbox" id="autologin" name="autologin" /><br /><br />                                                    
                            <input type="submit" value="Invia" />
                    </form>
Abbiamo indirizzato l'action del form alla pagina ucp.php che contiene il codice php per il login e il logout dell'utente. Vediamo come deve essere fatta.
ucp.php
Codice PHP:
<?php
if (!isset($_GET['mode']))
    
header("Location: index.php");
else 
    
$mode $_GET['mode'];
    
include_once 
'config.php'//Inclusione del file config.php

switch ($mode)
{
    case 
"login":  //Codice per effettuare il login
        
$username $_POST['username'];
        
$password $_POST['password'];
        
$remember = (isset($_POST['autologin'])) ? true false//Se è stata selezionata la casella dall'autologin allora $remembar è true altrimenti è false e non verrà considerato nel login
        
$auth->login($username$password$remember10); //login
        
header("Location: index.php"); //redirect verso l'homepage
        
break;
    case 
"logout"//Codice per effettuare il logout
        
$user->session_kill(); //Ditrugge le vecchie sessioni
        
$user->session_begin();
        
header("Location: index.php"); //redirect verso l'homepage  
        
break;
}
?>
dal codice della pagina ucp.php si può dedurre infine che per effettuare il logut dell'utente basta creare un link così:
Codice HTML:
<a href="ucp.php?mode=logout">LOGOUT</a>
Tutto qui
Spero di essere stato utile.. ciao!
Inverter non in linea   Rispondi citando
Vecchio 08-04-09, 15:44   #2 (permalink)
Consiglio Direttivo
 
L'avatar di Samyorn
 
Data di registrazione: Dec 2007
Ubicazione: Catania
Messaggi: 5,847
Invia un messaggio tramite ICQ a Samyorn Invia un messaggio tramite Skype a Samyorn
Ciao Inverter.

Grazie infinite del Tutorial, in molti lo han cercato e finalmente grazie a te è disponibile.

Sposto in area phpBB 3, che è più consona, ma la linko anche dal thread Risorse utili della sezione PHP-MySQL dato il notevole interesse di molti.
__________________
Qui, Quo, Qua
Si parla poco di SMF? Sentiamo l'opinione di chi lo ha provato. Ti amo...brindiAMO?
Conosci GTLab? Devi scegliere un CMS per Forum e non sai quale? Guarda quì!!
Samyorn ora è in linea   Rispondi citando
Vecchio 08-02-10, 11:53   #3 (permalink)
User
 
Data di registrazione: Apr 2006
Messaggi: 14
Ciao Inverter,
ho utilizzato la tua guida per integrare la login al mio sito...chiarissima ed utilissima ma...mi si verifica il seguente errore:

[phpBB Debug] PHP Notice: in file /includes/session.php on line 1007: Cannot modify header information - headers already sent by (output started at C:/xampp/htdocs/miosito/config.php:18)

[phpBB Debug] PHP Notice: in file /includes/session.php on line 1007: Cannot modify header information - headers already sent by (output started at C:/xampp/htdocs/miosito/config.php:18)

[phpBB Debug] PHP Notice: in file /includes/session.php on line 1007: Cannot modify header information - headers already sent by (output started at C:/xampp/htdocs/miosito/config.php:18)

Da cosa è dipeso?
Tonhyw non in linea   Rispondi citando
Vecchio 17-08-10, 10:57   #4 (permalink)
 
Data di registrazione: Apr 2007
Messaggi: 68
Invia un messaggio tramite MSN a ecavalli Invia un messaggio tramite Skype a ecavalli
Grazie Inverter,
era proprio quello che stavo cercando.
__________________
Ibiza e Formentera
ecavalli non in linea   Rispondi citando
Vecchio 27-11-10, 12:24   #5 (permalink)
User Newbie
 
Data di registrazione: Nov 2010
Ubicazione: CS
Messaggi: 1
Ciao, non ho capito bene dove inserire

php
Quote:
if ($user->data['user_id'] == ANONYMOUS) //Se NON è loggato...
{
echo "Devi effettuare il login!";
}
else // Invece se è loggato
{
echo "Benvenuto ".$user->data['username']."!" ;
}
e come implementare il logout, bisogna implementare un form?
.
neurone non in linea   Rispondi citando
Vecchio 08-09-11, 16:01   #6 (permalink)
User Newbie
 
Data di registrazione: Sep 2011
Ubicazione: latina
Messaggi: 1
Come si può inserire un errore se i dati sono sbagliati?
ho provato ad inserire un DIE in questa riga ma non va..

Codice PHP:
$auth->login($username$password$remember10); //login 


Grazie
deepphoto non in linea   Rispondi citando
Rispondi


Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 19:19.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.