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

Pagina personalizzata

Supporto per phpBB 3.0.x.
Avatar utente
Tiger
phpBB Expert
phpBB Expert
Messaggi: 1998
Iscritto il: 24/05/2011, 12:37
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.3.28
Database: MySQL(i) 5.5.35-cll
Località: Roma
Contatta:

Re: Pagina personalizzata

Messaggio da Tiger » 07/01/2014, 12:43

Allora,ricapitolando:

per stabilire una connessione con il database,ed ottenere quindi tutte le funzioni di phpBB in una pagina esterna abbiamo bisogno del seguente codice:

Codice: Seleziona tutto

<?php
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
*/

/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup(); 
Poi come ti ha accennato Segnalo,per settare dei permessi speciali,ad esempio l'obbligo di effettuare il login per gli utenti registrati,
diventerebbe cosi':

Codice: Seleziona tutto

<?php
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
*/

/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

if ($user->data['user_id'] == ANONYMOUS)
{
        login_box('', $user->lang['LOGIN']);
} 
Fin qui,chiunque sia in quel momento "loggato" nel tuo forum,e tramite link (http://tuodominio/forum/tuapagina.php)accederebbe come utente registrato,senza dover effettuare il login:

Ora,il discorso cambierebbe se la pagina personalizzata si troverebbe "al di fuori della cartella forum",cioe':

http://tuodominio/tuapagina.php

quindi la parte per la connessione al database rimarebbe invariata,cambierebbe soltanto il codice per mantenere la sessione dell'utente attiva:

Codice: Seleziona tutto

<?php    
define('IN_PHPBB', true);    
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('common');

if($user->data['is_registered'])
{
    //User is already logged in
}
else
{
    $username = request_var('username', '', true);
    $password = request_var('password', '', true);
    $autologin = (!empty($_POST['autologin'])) ? true : false;

    $result = $auth->login($username, $password, $autologin);

    if ($result['status'] == LOGIN_SUCCESS)
    {
        //User was successfully logged into phpBB
        $redirect = request_var('redirect', "{$phpbb_root_path}index.$phpEx");

        // append/replace SID
        $redirect = reapply_sid($redirect);

        meta_refresh(0, $redirect);
        trigger_error('You have been successfully logged in');
    }
    else
    {
        //User's login failed
    }
} 
N.b.
Qui si dovra' prestare attenzione alla path dove risiede il phpBB rispetto alla pagina personalizzata se essa e' collocata al di fuori della directory:
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';

Segnalo
Utente
Utente
Messaggi: 244
Iscritto il: 08/12/2013, 18:40
Sesso: Maschio
Versione: 3.0.12
Server: Windows
PHP: 5.3
Contatta:

Re: Pagina personalizzata

Messaggio da Segnalo » 07/01/2014, 13:43

$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';

./forum/, indica l indirizzo dove risiede phpbb rispetto al file php della pagina personalizzata

stefanofracasso
Utente
Utente
Messaggi: 12
Iscritto il: 06/01/2014, 22:51
Sesso: Maschio
Versione: 3.0.12
Server: Windows
PHP: 5.3.15
Database: mysql

Re: Pagina personalizzata

Messaggio da stefanofracasso » 07/01/2014, 14:29

Allora la radice del domino http://www.miodominio.xxx è la cartella phpBB del forum, come sottocartella c'è moduli dove contiene la pagina in questione.

Il codice implementato è:

Codice: Seleziona tutto

<?php

define('IN_PHPBB', true);

$phpbb_root_path = '../';

$phpEx = substr(strrchr(__FILE__, '.'), 1);



include($phpbb_root_path . 'common.' . $phpEx);



    $user->session_begin();

    $auth->acl($user->data);

    $user->setup();

    

if ($user->data['is_registered'])

{

        echo "risulti registrato"; 

}

else

{
 //Recupera la sessione
    $username = request_var('username', '', true);

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

    $autologin = (!empty($_POST['autologin'])) ? true : false; 

    $result = $auth->login($username, $password, $autologin);



    if ($result['status'] == LOGIN_SUCCESS)

    {

        //User was successfully logged into phpBB

        $redirect = request_var('redirect', "{$phpbb_root_path}index.$phpEx");



        // append/replace SID

        $redirect = reapply_sid($redirect);



        meta_refresh(0, $redirect);

        trigger_error('You have been successfully logged in');

        

        echo "sessione recuperata, inserisci il codice html"; 

    }

    else

    {


//effettua nuovo login
        login_box('', $user->lang['LOGIN']);

    

    }

    

} 

con questo codice se su una finestra sono loggato nel forum e apro a mano il file http://www.formweb.net/moduli/modulo.php funziona, invece non funziona se io carico la pagina in un iframe dentro il post


Potete provare al link http://www.formweb.net

accedere con le user e password che ti invio in privato

forum Formazione, Modulo1

ti lascio come amministratore per vedere il tutto

P.S. Grazie mille per il supporto

stefanofracasso
Utente
Utente
Messaggi: 12
Iscritto il: 06/01/2014, 22:51
Sesso: Maschio
Versione: 3.0.12
Server: Windows
PHP: 5.3.15
Database: mysql

Re: Pagina personalizzata

Messaggio da stefanofracasso » 07/01/2014, 15:30

ok soluzione trovata, era un errore nel link in quanto mettevo come codice http://indirizzo_ip/..... invece di nomedomino.xxx e quindi le sessioni non giravano.


Chiedo scusa per la svista, ma grazie per il suppoto

Segnalo
Utente
Utente
Messaggi: 244
Iscritto il: 08/12/2013, 18:40
Sesso: Maschio
Versione: 3.0.12
Server: Windows
PHP: 5.3
Contatta:

Re: Pagina personalizzata

Messaggio da Segnalo » 07/01/2014, 21:29

Se i problemi non li risolvi con le tue mani non capirai mai. Noi, più che darti dei consigli, non possiamo fare

Angolo
Leader Traduttori
Leader Traduttori
Messaggi: 7237
Iscritto il: 11/03/2011, 17:37
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.6.18
Database: MySQL 5.6.33-log
Contatta:

Re: Pagina personalizzata

Messaggio da Angolo » 07/01/2014, 21:47

Come sopra... ennesimo messaggio inutile! Piantala!

Rispondi

Torna a “[3.0.x] Forum di Supporto”

Chi c’è in linea

Visitano il forum: Nessuno e 68 ospiti