Visualizzazione risultati 1 fino 10 di 10

Discussione: [PHPBB] Login esterno, errore nel config.php

  1. #1
    L'avatar di toradora
    toradora non è connesso Neofita
    Data registrazione
    24-01-2011
    Messaggi
    20

    Predefinito [PHPBB] Login esterno, errore nel config.php

    Salve a tutti, sto sviluppando un login esterno a PHPBB, quindi ho creato un file login.php, un index.php, un ucp.phpe un config.php.
    Quando effettuo il login, mi risulta quest' errore.
    Fatal error: Call to a member function session_begin() on a non-object in /membri/toradora/gdr/config.php on line 14
    Chi potrebbe aiutarmi?

    Questi sono i codici.
    config.php
    Codice PHP:
    <?php
    /** Inizializzazione sessione PHPBB3 */
        
    define('IN_PHPBB'true);
        
    define('ROOT_PATH'"/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 */
    ?>
    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;
    }
    ?>

  2. #2
    L'avatar di biccheddu
    biccheddu non è connesso AlterGuru 2500
    Data registrazione
    18-01-2009
    Residenza
    Cagliari
    Messaggi
    2,755

    Predefinito

    In ucp.php devi include il file common.php; sostituisci l'include del file config.php con:
    Codice:
    include($phpbb_root_path . 'common.' . $phpEx);
    Ti consiglio, poi, di utilizzare la funzione request_var() o comunque di fare un minimo di controlli sui dati passati via $_POST per il login.

    Se vuoi, invece, evitare più pagine esterne, basta che esegui il form alla pagina del login di phpBB3, poi nelle altre pagine personali, se vuoi "integrarle" a phpBB, basta che aggiungi all'inizio di ogni file, le seguenti righe:
    Codice PHP:
    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(); 
    e potrai usare le sessioni di phpBB.


  3. #3
    L'avatar di toradora
    toradora non è connesso Neofita
    Data registrazione
    24-01-2011
    Messaggi
    20

    Predefinito

    Citazione Originalmente inviato da biccheddu Visualizza messaggio
    In ucp.php devi include il file common.php; sostituisci l'include del file config.php con:
    Codice:
    include($phpbb_root_path . 'common.' . $phpEx);
    Ti consiglio, poi, di utilizzare la funzione request_var() o comunque di fare un minimo di controlli sui dati passati via $_POST per il login.

    Se vuoi, invece, evitare più pagine esterne, basta che esegui il form alla pagina del login di phpBB3, poi nelle altre pagine personali, se vuoi "integrarle" a phpBB, basta che aggiungi all'inizio di ogni file, le seguenti righe:
    Codice PHP:
    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(); 
    e potrai usare le sessioni di phpBB.

    Grazie mille per la risposta, ho provato a fare quanto scritto sopra, ma ottengo questi errori.

    ucp.php?mode=login
    Codice:
    Fatal error: Call to a member function login() on a non-object in /membri/toradora/gdr/ucp.php on line 15
    la riga incriminata sembra essere
    Codice PHP:
    $auth->login($username$password$remember10); //login 
    main.php (pagina "intergrata")
    Codice:
    Fatal error: Call to a member function session_begin() on a non-object in /membri/toradora/gdr/main.php on line 9
    e qua la riga incriminata a quanto pare è:
    Codice PHP:
    $user->session_begin(); 

  4. #4
    L'avatar di biccheddu
    biccheddu non è connesso AlterGuru 2500
    Data registrazione
    18-01-2009
    Residenza
    Cagliari
    Messaggi
    2,755

    Predefinito

    Ma hai sovrascritto tutto con la seconda parte di codice o hai modificato solo l'include?

    All'inizio di ucp.php e main.php aggiungi la stringa error_reporting(E_ALL); in modo da mostrare TUTTI gli errori della pagina perché mi sembra strano, credo ci sia un errore con l'include del file common.

    Per farti un esempio, ecco la pagina ucp.php come dovrebbe essere per essere "integrata" a phpBB:
    Codice PHP:
    <?php

    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();

    $mode request_var('mode''');

    switch (
    $mode)
    {
        case 
    'login':
            
    $username utf8_normalize_nfc(request_var('username'''true));
            
    $password request_var('password'''true);
            
    $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$remembertruefalse); //login. Andrebbero messe però delle condizioni nel caso il login sia true o false.
        
    break;

        case 
    'logout':
            
    // Ricorda che sarebbe bene usare la sessione (parametro sid=) per poter fare il logout, infatti phpBB ne forza l'utilizzo
            
    $user->session_kill(); //Ditrugge le vecchie sessioni
            
    $user->session_begin();
        break;    
    }

    header('Location: index.php'); //redirect verso l'homepage. L'ho inserito qui perché IN OGNI CASO viene fatto a questa pagina.
    exit;

    ?>
    Tutto questo codice, però, come scritto, è già in phpBB e basterebbe "puntare" i form a queste, proprio per evitare di avere altre pagine uguali e soprattutto rischiare di averle bacate.


  5. #5
    L'avatar di toradora
    toradora non è connesso Neofita
    Data registrazione
    24-01-2011
    Messaggi
    20

    Predefinito

    Grazie mille, adesso funziona :P ho corretto anche il percorso della root di phpbb.
    Però non ho capito ancora come utilizzare la funzione request_var(), ho cercato varie guide ma sono del tutto in inglese (ç_ç non ci capisco nulla).
    E per estrarre i dati dal database faccio i soliti "SELECT" o PHPBB ha già qualche funzione?
    (xD scusa per le tante domande, ma ne approfitto visto che finalmente qualcuno ne capisce.)

  6. #6
    L'avatar di biccheddu
    biccheddu non è connesso AlterGuru 2500
    Data registrazione
    18-01-2009
    Residenza
    Cagliari
    Messaggi
    2,755

    Predefinito

    request_var() è una funzione nativa di phpBB che permette di prendere i dati da $_GET (query string), $_POST (form) e nel caso $_COOKIE. Ci sono 4 valori da passare alla funzione:
    Codice PHP:
    request_var('nome_chiave_array''valore_default', (bool) 'supporto_caratteri_speciali_utf8''perndi_da_$_COOKIE'
    - Il primo valore è la chiave di $_GET/$_POST;
    - Il secondo è il valore di default assegnato alla variabile e ne assegnerà anche il tipo (string, bool, float, int, array);
    - Il terzo è il supporto per i caratteri speciali (nel caso sia settato su true, bisognerà inserire request_var() dentro utf8_normalize_nfc());
    - Il quarto ed ultimo valore dice alla funzione se prendere o meno il valore da $_COOKIE, lasciando stare $_GET/$_POST.

    Mentre per le query, puoi usare le funzioni di phpBB sempre (ti faccio uno stupido esempio):
    Codice PHP:
    $sql 'SELECT campo
        FROM ' 
    . *_TABLE;
    $result $db->sql_query($sql);
    $row $db->sql_fetchrow($result); 
    mentre per i cicli (estrazione di più record):

    Codice PHP:
    $sql 'SELECT campo_1, campo_2
        FROM ' 
    . *_TABLE;
    $result $db->sql_query($sql);
    while (
    $row $db->sql_fetchrow($result))
    {
        echo 
    $row['campo_1'];
        echo 
    $row['campo_2'];

    Ovviamente c'è molto più da dire e soprattutto più funzionalità, ma credo che smanettandoci un po' capisca bene come funzioni phpBB, perché è davvero semplicissimo.


  7. #7
    L'avatar di toradora
    toradora non è connesso Neofita
    Data registrazione
    24-01-2011
    Messaggi
    20

    Predefinito

    Biccheddu, non so come ringraziarti.
    Ho provato anche a vedere un pò le pagine esistenti per vedere la struttura, gli esempi da te postati, e approfondito sul Wiki PhpBB.
    Direi che è molto più semplice di quel mi immaginavo.
    :P Speriamo riesca nel mio intento.

  8. #8
    L'avatar di biccheddu
    biccheddu non è connesso AlterGuru 2500
    Data registrazione
    18-01-2009
    Residenza
    Cagliari
    Messaggi
    2,755

    Predefinito

    Ti dico solamente che io ci ho fatto portali interi basati su phpBB dove il forum è la cosa più piccola.

    In ogni caso non devi ringraziarmi, è stato un piacere! Tornerà utile a chi avrà i tuoi stessi problemi.


  9. #9
    Data registrazione
    09-05-2017
    Messaggi
    2

    Predefinito

    Ciao qualcuno mi puo dare una mano perfavore

  10. #10
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,077

    Predefinito

    Starmillennium2004: questa è una discussione di cinque anni fa, come da regolamento non riesumare vecchie discussioni.
    Apri una nuova discussione descrivendo dettagliatamente il tuo problema.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •