pagina esterna ma collegata a phpbb

Area dedicata al phpBB 3.3.X
Avatar utente
Nexet
Nuovo Utente
Nuovo Utente
Messaggi: 15
Iscritto il: 30/04/2022, 12:58
Link del Forum: no

pagina esterna ma collegata a phpbb

Messaggio da Nexet »

salve ragazzi , ho una pagina in php che ho creato e deve essere visualizzata dagli utenti registrati del forum , nello specifico quelli che fanno parte di un tipo di gruppo .
leggendo le varie guide ho preso il codice che mi permette di avere le varie funzioni di phpbb cioè :

Codice: Seleziona tutto

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);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

// Start session
$user->session_begin();
#$auth->acl($user->data);
e da qui potrei fare il controllo sia del login e sia del gruppo , ma appena inserisco la parte dello start sessio , ho l ' errore 500 . dove sbaglio ?
Avatar utente
Micogian
Globalmod
Globalmod
Messaggi: 588
Iscritto il: 17/03/2016, 17:53
Link del Forum: https://www.actaplantarum.org

Re: pagina esterna ma collegata a phpbb

Messaggio da Micogian »

Il codice di connessione al PHPBB è giusto, può darsi che sbagli il controllo del "group_id".
Prova così:

Codice: Seleziona tutto

<!DOCTYPE html>
<html dir="ltr" lang="it">
<head>
	<meta charset="utf-8" />
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1" />
<?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);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

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

if( $user->data['group_id'] ==  5 )
{
	//  codice della pagina
echo "<h2>ATTENZIONE: hai i permessi per utilizzare questa pagina</h2>";
echo "user_id = " . $user->data['user_id'] . "<br />";
echo "group_id = " . $user->data['group_id'] . "<br />";
?>	
</head>
<body>

</body>
</html>
<?php
}else{
?>
</head>
<body>
<h2>ATTENZIONE: non hai i permessi per utilizzare questa pagina</h2>
</body>
</html>
<?php
}
?>
ovviamente devi sostituire il "group_id" che io ho messo "5".
Devi anche controllare dove metti la pagina personalizzata, altrimenti devi modificare l'indirizzo della variabile "$phpbb_root_path "
Avatar utente
Nexet
Nuovo Utente
Nuovo Utente
Messaggi: 15
Iscritto il: 30/04/2022, 12:58
Link del Forum: no

Re: pagina esterna ma collegata a phpbb

Messaggio da Nexet »

perfetto , ho solo un problema , io ho impostato che se non sono loggato mi rimanda al login quindi se apro la pagina mi riporta al login anche se ho già loggato dal forum , quindi devo riloggare e mi fa vedere la pagina , ma se ritorno al forum mi rivedo sloggato , sembra che ogni volta chiuda la sessione, e non legga la sessione loggata dal forum .

ps. ho provato a fare esattamente come te , solo con il controllo del gruppo ma in quel caso legge sempre
user_id = 1
group_id = 1
Avatar utente
Nexet
Nuovo Utente
Nuovo Utente
Messaggi: 15
Iscritto il: 30/04/2022, 12:58
Link del Forum: no

Re: pagina esterna ma collegata a phpbb

Messaggio da Nexet »

perfetto forse ho risolto , manca solo il login che si ripete ma li devo riportarmi la variabile ?sid= per mantenerlo giusto ?
Avatar utente
Nexet
Nuovo Utente
Nuovo Utente
Messaggi: 15
Iscritto il: 30/04/2022, 12:58
Link del Forum: no

Re: pagina esterna ma collegata a phpbb

Messaggio da Nexet »

fatto tutto grazie mille , mi manca solo una cosa , nella root funziona la pagina , se la sposto in una directory tipo /script/pagina.php non funziona logicamente ho anche cambiato mettendo :
$phpbb_root_path = "./script";
Avatar utente
alex75
Amministratore
Amministratore
Messaggi: 6153
Iscritto il: 23/08/2012, 23:45
Link del Forum: www.phpbb-italia.it
Località: Palermo

Re: pagina esterna ma collegata a phpbb

Messaggio da alex75 »

$phpbb_root_path = "./script"
pero' cosi' indichi che la root di phpbb si trova dentro al percorso /script

Dovresti invece indicare che si trova sopra di una cartella prima di script semplicente cosi' ./
Regolamento Forum
Le nostre guide
Se l'assistenza prestata è stata di tuo gradimento potrai contribuire aiutandoci a sostenere le spese affrontate per tenere in vita questo forum >Cliccando sul seguente Link<
Avatar utente
Nexet
Nuovo Utente
Nuovo Utente
Messaggi: 15
Iscritto il: 30/04/2022, 12:58
Link del Forum: no

Re: pagina esterna ma collegata a phpbb

Messaggio da Nexet »

ho risolto mettendo ./../ e cosi va , ma ora ho 2 problemini , il primo che richiamando

Codice: Seleziona tutto

// Output page
page_header($page_title, true);

$template->set_filenames(array(
       'body' => 'index_body.html')
);

page_footer();

quando nella mia pagina php mi stampa vado a stampare delle immagini mi da questo wargning :

Codice: Seleziona tutto

[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4129: Cannot modify header information - headers already sent by (output started at [ROOT]/file/script/test.php:30)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4129: Cannot modify header information - headers already sent by (output started at [ROOT]/file/script/test.php:30)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4129: Cannot modify header information - headers already sent by (output started at [ROOT]/file/script/test.php:30)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4129: Cannot modify header information - headers already sent by (output started at [ROOT]/file/script/test.php:30)

e poi se uso la mia pagina nella root del forum il login funziona , spostandola nella directory, quando loggo mi da :

Codice: Seleziona tutto

Effettuato un tentativo di reindirizzamento verso un URL potenzialmente insicuro.
Avatar utente
Micogian
Globalmod
Globalmod
Messaggi: 588
Iscritto il: 17/03/2016, 17:53
Link del Forum: https://www.actaplantarum.org

Re: pagina esterna ma collegata a phpbb

Messaggio da Micogian »

Lo avevo già detto che la connessione al phpbb cambia in base alla posizione del file personalizzato.
In pratica bisogna inserire il percorso di dove si trova il forum phpbb rispetto al file personalizzato.
Se la cartella "script" è nella root dove si trova il forum il codice corretto sarà:

Codice: Seleziona tutto

$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : '../';
Nel mio codice togli le righe "echo" che servivano solo per sapere quali erano user_id e group_id dell'utente che usa la pagina. Una volta stabilito che il codice funziona non servono.

C'è poi un problema che riguarda la struttura della pagina. In PHPBB viene utilizzata una pagina PHP che richiama un template HTML.
Dal momento che nella pagina inserisci il codice

Codice: Seleziona tutto

// Output page
page_header($page_title, true);

$template->set_filenames(array(
       'body' => 'index_body.html')
);

page_footer();
fai in modo che la pagina personalizzata apra il template "index_body.html" che non può funzionare perchè "index_body.html" viene richiamato da "index.php".
La pagina personalizzata va completata con il php e non con ilrichiamo del templete.
Se vuoi utilizzare il sistema utilizzato da PHPBB dovresti creare un file "script.php" (il nome del file php peronalizzato) che richiama un template del tipo "script_body.html".
Praticamente il file php contiene il codice php che richiama le necessarie variabili che verranno poi utilizzate dal template.
Tutto questo si può tralasciare creando un unico file php che richiama le variabili e visualizza la pagina.
Avatar utente
Nexet
Nuovo Utente
Nuovo Utente
Messaggi: 15
Iscritto il: 30/04/2022, 12:58
Link del Forum: no

Re: pagina esterna ma collegata a phpbb

Messaggio da Nexet »

ok grazie , diciamo che per il template era una prova ma in realtà non mi serve .

per ora mi basta che funzioni il login , perchè nonostante gli dia il percorso e tutto funziona , se loggo dalla pagina mia mi da:
Effettuato un tentativo di reindirizzamento verso un URL potenzialmente insicuro.

invece se la pagina la metto nella root e logicamente cambio il percorso in $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './'; (altrimenti non mi funziona) il login avviene .
Avatar utente
Micogian
Globalmod
Globalmod
Messaggi: 588
Iscritto il: 17/03/2016, 17:53
Link del Forum: https://www.actaplantarum.org

Re: pagina esterna ma collegata a phpbb

Messaggio da Micogian »

Mi sembra strano, a meno che non sia sbagliato il percorso oppure il file personalizzato contenga qualcosa che venga considerato URL insicuro.
Nella pagina personalizzata devi mettere il percorso del PHPBB rispetto alla posizione del file personalizzato.
Tu non devi loggarti dalla pagina personalizzata, devi loggarti dal Forum e se sei loggato correttamente puoi aprire la pagina personalizzata, altrimenti no.
Su come vada creata la pagina personalizzata è un'altra cosa. Il codice PHPBB serve solamente a connettersi al database del Forum e ottenere le necessarie variabili, come user_id o group_id, o altre eventuali.
Per la pagina personalizzata devi scegliere se fare una pagina PHPBB o una pagina PHP.
Se scegli la prima soluzione devi creare un file "html" che andrà messo nella cartella "template", se scegli il PHP puoi mettere il file personalizzato dove ti pare ma in entrambi casi devi conoscere il meccanismo per creare una pagina PHPBB oppure una pagina PHP.
Rispondi