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

inibire visualizzazione pagina php

Supporto per phpBB 3.1.x.
enzomaxxtro
Utente
Utente
Messaggi: 31
Iscritto il: 18/09/2015, 23:53
Sesso: Maschio
Versione: 3.1.5
PHP: 5.4

inibire visualizzazione pagina php

Messaggio da enzomaxxtro » 19/09/2015, 0:03

Salve ragazzi...sto imparando un po' di php usando un forum per fare i test usando phpbb 3.15 su php v. 5.4
come host uso altervista perche' e' gratuito come spazio.

Ho due pagine php che vengono visualizzate semplicemente inserendo il percorso anche da utenti non registrati.
Queste due pagine php vengono richiamate dal forum con due link sulla board....tali link nel forum sono visibili solo agli utenti registrati...fin qui nulla di strano...solo che inserendo il percorso delle due pagine php nella barra dell'indirizzo del browser, vengono caricate anche per chi non è utente registrato.

Ho letto che devo giocare sulla sessione ma non so dove mettere mano.
Le sessioni degli utenti nel db vengono salvate nella tabella phpbb_sessions; in questa tabella non c'è l'username, ma l'id dell'utente registrato.
Ho provato un codice simile

Codice: Seleziona tutto

<?php
session_start();
if(isset($_SESSION['session_user_id'])) {
    echo "Sei loggato!";
} else {
    echo 'Non sei loggato e non puoi visualizzare questa pagina!';
}
?>
dove session_user_id è il record degli id degli utenti registrati ma non funziona o meglio mi esce sempre il contenuto dell'else.
Il codice è solo un esempio su come gestire la sessione degli utenti...mi aiutate a capire dove sbaglio o quale record deve essere considerato?

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: inibire visualizzazione pagina php

Messaggio da Micogian » 19/09/2015, 7:45

Devi escludere l'utente Anonimous che è user_id=1.

Codice: Seleziona tutto

if ($user->data['user_id'] > 1 ){
echo "visualizza pagina";
}else{
echo "Non puoi visualizzare questa pagina";
}
Con phpbb 3.1.x dovrebbe esere così:

Codice: Seleziona tutto

if( $this->user->data['user_id'] > 1) 

Avatar utente
brunino
Moderatore
Moderatore
Messaggi: 2819
Iscritto il: 12/01/2013, 16:35
Sesso: Maschio
Versione: 3.1.2
Server: UNIX/Linux
PHP: php 5.3
Database: mysql
Località: Toscana, Firenze
Contatta:

Re: R: inibire visualizzazione pagina php

Messaggio da brunino » 19/09/2015, 7:54

No, nelle pagine normali vale anche nella 3.1 $user. Solo nelle estensioni si usa $this->user.

Inviato dal mio GT-S5360 con Tapatalk 2
E' sempre gradito un grazie

Creo estensioni per phpBB 3.1 su misura: contattami via MP.
Mie Estensioni: Top Ten Topics | Ban List | Topic List
Visita il mio forum di test e sviluppo stili e estensioni phpBB 3.1

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: inibire visualizzazione pagina php

Messaggio da Micogian » 19/09/2015, 11:40

Nel mio forum di prova ho creato un'estensione che crea una condizione "true" per il gruppo STAFF.
Dato che lo STAFF è composto dal Gruppo Admin e da un utente non Admin ho risolto in questo modo:

Codice: Seleziona tutto

if ($this->user->data['group_id'] == 5 || $this->user->data['user_id'] == 2 )
        {
		$this->template->assign_vars(array(
			'STAFF'	=> true )
			);
		}
In sostanza il gruppo STAFF è composto dagli utenti del gruppo 5 (Admin) e dall'utente 2.
Nel template la variabile STAFF viene utilizzata in questo modo

Codice: Seleziona tutto

<!-- IF STAFF -->
// codice visibile solo al gruppo STAFF
<!-- ENDIF -->

Avatar utente
Sir Xiradorn
Grafico
Grafico
Messaggi: 1659
Iscritto il: 11/08/2009, 12:41
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.6.15
Database: MariaDB 10.1.9
Località: Lontano....
Contatta:

Re: inibire visualizzazione pagina php

Messaggio da Sir Xiradorn » 19/09/2015, 11:53

Io non sono proprio un grande esperto ma so questo. Credo che dipenda da cosa si richiama e dove. Se si sta usando una programmazione OOP e quindi una certa classe, allora andrà usato il $this->user->data['...'] mentre se si sta usando il tutto senza una classe di riferimento allora credo che si debba richiamare il metodo $user->data['...'] ma correggetemi se sto sbagliando.

Quello che io ho potuto vedere nel breve tempo dedicato alla cosa è questo. Ed è quello che un po diceva anche brunino ovvero, se si aggiunge una pagina ex novo o custom page o come ve pare, di solito non vengono inizializzate classi quindi l'uso più corretto che va fatto è $user->data[''] e questo per via del fatto che il $this viene definito a runtime (operazione fatta nella programmazione OOP e nelle classi) e per questo sentite dire che si riferisce all'oggetto corrente.

Micogian ti ha mostrato le giuste procedure da seguire per entrambi i casi, sia che sei in una custom, con il primo esempio, sia che sei in una estensione nel secondo.

Tutto chiaro? E ai programmer, ho detto giusto?
Sir Xiradorn
Immagine
~ XDojo - Xiradorn Lab Division - xiradorn.it ~
~ GitHub - XiradornLab ~

Immagine
Stargate - phpbb 3.0.x || 3.1.x || 3.2.x

Avatar utente
brunino
Moderatore
Moderatore
Messaggi: 2819
Iscritto il: 12/01/2013, 16:35
Sesso: Maschio
Versione: 3.1.2
Server: UNIX/Linux
PHP: php 5.3
Database: mysql
Località: Toscana, Firenze
Contatta:

Re: R: inibire visualizzazione pagina php

Messaggio da brunino » 19/09/2015, 11:58

Corretto.
E' sempre gradito un grazie

Creo estensioni per phpBB 3.1 su misura: contattami via MP.
Mie Estensioni: Top Ten Topics | Ban List | Topic List
Visita il mio forum di test e sviluppo stili e estensioni phpBB 3.1

enzomaxxtro
Utente
Utente
Messaggi: 31
Iscritto il: 18/09/2015, 23:53
Sesso: Maschio
Versione: 3.1.5
PHP: 5.4

Re: inibire visualizzazione pagina php

Messaggio da enzomaxxtro » 19/09/2015, 13:29

grazie a tutti per le cortesi risposte...proverò e farò sapere....avevo pensato anche io a controllare l'id 1 dell'anonymous ma non riuscivo a capire come prendere l'id dall'utente connesso in quel momento a quella pagina

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: inibire visualizzazione pagina php

Messaggio da Micogian » 19/09/2015, 14:26

Per avere diponibili le variabili di phpbb una Custom Page deve contenere i dati di accesso al DB che sono questi

Codice: Seleziona tutto

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

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

enzomaxxtro
Utente
Utente
Messaggi: 31
Iscritto il: 18/09/2015, 23:53
Sesso: Maschio
Versione: 3.1.5
PHP: 5.4

Re: inibire visualizzazione pagina php

Messaggio da enzomaxxtro » 19/09/2015, 15:30

io accedo al db e stabilisco la connessione in questo modo:

Codice: Seleziona tutto

mysql_connect("localhost", "root", "");
mysql_select_db("nome del db");
ho l'intero phpbb installato nella root, in che modo potrei aggiungere l'ultimo blocco di codice che mi hai scritto?

Avatar utente
brunino
Moderatore
Moderatore
Messaggi: 2819
Iscritto il: 12/01/2013, 16:35
Sesso: Maschio
Versione: 3.1.2
Server: UNIX/Linux
PHP: php 5.3
Database: mysql
Località: Toscana, Firenze
Contatta:

Re: inibire visualizzazione pagina php

Messaggio da brunino » 19/09/2015, 15:37

All'inizio del file
E' sempre gradito un grazie

Creo estensioni per phpBB 3.1 su misura: contattami via MP.
Mie Estensioni: Top Ten Topics | Ban List | Topic List
Visita il mio forum di test e sviluppo stili e estensioni phpBB 3.1

Rispondi

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

Chi c’è in linea

Visitano il forum: Nessuno e 66 ospiti