SMItalia WebinWeb.net
24 Maggio 12, 05:13:20 *
Benvenuto, Visitatore. Per favore, effettua il login o registrati.
Hai perso la tua email di attivazione?

Login con username, password e lunghezza della sessione
News: SMItalia & SimpleMachines ... è il Progresso che vale per Tutti.
 
  Home   Forum   Help Login Registrati  
Pagine: [1]   Vai Giù
  Stampa  |  Bookmarks  
Autore Topic: Intergrazione login con PHPBB3.  (Letto 415 volte)
0 Utenti e 2 Visitatori stanno guardando questo topic.
Danko
Jr. Member
**
Offline Offline

Sesso: Maschile
Posts: 90



Guarda Profilo
« il: 07 Febbraio 11, 15:34:18 »

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
/** 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:
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:
                    <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
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:
<a href="ucp.php?mode=logout">LOGOUT</a>

Tutto qui
Spero di essere stato utile.. ciao!
Loggato

bubusan
Newbie
*
Offline Offline

Sesso: Maschile
Posts: 2


Guarda Profilo
« Risposta #1 il: 10 Giugno 11, 08:48:24 »

scusa se lo chiedo ma è possibile fare lo stesso usando smf?
Loggato
Emanuele
Supporter
***
Offline Offline

Posts: 2.640

SMI Staff


Guarda Profilo
« Risposta #2 il: 10 Giugno 11, 09:58:48 »

Prova a guardare qui:
http://custom.simplemachines.org/mods/index.php?mod=3008
Loggato

Se vedo "urgente" nell'oggetto rispondo il giorno dopo.
Se ricevo un PM per sollecitare rispondo due giorni dopo. (e chi mi manda il PM finisce nella ignore list)

Aiutateci ad aiutarvi: spiegate bene il vostro problema!! (no, "non funziona" non è una spiegazione!)
bubusan
Newbie
*
Offline Offline

Sesso: Maschile
Posts: 2


Guarda Profilo
« Risposta #3 il: 10 Giugno 11, 11:01:39 »

questo è una mod per wordpress funziona anche per un sito propio?
Loggato
Emanuele
Supporter
***
Offline Offline

Posts: 2.640

SMI Staff


Guarda Profilo
« Risposta #4 il: 10 Giugno 11, 13:43:06 »

* Emanuele dovrebbe smettere di drogarsi...

Chiedo venia, non so dove abbia letto wordpress nel titolo del topic... Embarrassed

Per poter usare gli utenti di SMF in un qualunque script php (diciamo qualunque che non abbia già un suo meccanismo di autenticazione), puoi usare il file SSI.php:
Codice:
require_once('path/to/SMF/SSI.php');
Ed a quel punto puoi ad esempio fare:
Codice:
global $user_info;

if($user_info['is_guest'])
//...cose da mostrare a chi non è loggato
else
//...cose da mostrare a chi è loggato
Loggato

Se vedo "urgente" nell'oggetto rispondo il giorno dopo.
Se ricevo un PM per sollecitare rispondo due giorni dopo. (e chi mi manda il PM finisce nella ignore list)

Aiutateci ad aiutarvi: spiegate bene il vostro problema!! (no, "non funziona" non è una spiegazione!)
Pagine: [1]   Vai Su
  Stampa  |  Bookmarks  
 
Salta a:  


+ Thread Correlati o Similari
Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines | TinyPortal v0.9.7 © Bloc XHTML 1.0 Valido! CSS Valido!

Tutti i contenuti di SMItalia sono pubblicati secondo la licenza di utilizzo di Creative Commons, salvo diverse indicazioni. Lo Staff non assume alcuna responsabilità nel caso di eventuali errori contenuti negli articoli o di errori in cui fosse incorso nella loro riproduzione sul sito. Tutte le pubblicazioni su SMItalia avvengono senza eventuali protezioni di brevetti d'invenzione; inoltre, i nomi coperti da eventuale marchio registrato vengono utilizzati senza tenerne conto.

Pagina creata in 0.099 secondi con 25 queries.| ServerUptime: 289 days, 6 hours, 42 minutes