Impedire di visualizzare pagine php incluse

  • Creatore Discussione Creatore Discussione xone
  • Data di inizio Data di inizio

xone

Utente Attivo
4 Apr 2014
181
14
18
Salento
Salve a tutti, ho avuto un dubbio e mi rivolgo a voi, ad un sito dinamico utilizzo il metodo GET per visualizzare il contenuto di alcune pagine php, utilizzando i paramentri index.php?page=summary, index.php?page=item, ecc.. ecc..
ogni variabile richiama una pagina es: summary.php, item.php, e tale pagina va incusa nella index.php con la funzione "include $pagina.php;" ovviamente "pagina" la ricavo da $_GET['pagina'];
Ora mi era venuto un dubbio, ossia ho provato a digitare dal browser miosito/summary.php e mi è venuto fuori il contenuto di summary.php, che tra l'altro è una pagina che in teoria dovrebbe essere usata solo da chi si logga.
La funzione per il login l'ho impostata su index.php. Come potrei risolvere questa cosa? C'è qualche metodo per far visualizzare tali pagine soltanto quando vengono richiamate con la variabile GET? Spero di essermi spiegato bene. Grazie in anticipo.

P.S. Mi è venuta un'illuminazione, potrebbe andare bene questa funzione per le pagine incluse?

if (!isset($_GET['page'])) {
header("Location: ../index.php");
}
 
Ultima modifica:
Ciao, no non ho provato, stavo provando la funzione "isset get page, cosi se manca la variabile "page" blocca e reindirizza alla homepage. Mi sembra funzionare, aspetto vostre conferme.
 
Sembra che abbia risolto con:

if (!isset($_GET['page']) && !isset($_SESSION['id_user'])) {
header("Location: accedi.php");
}

In questo modo se manca la var GET PAGE oppure manca la sessione dell'utente si viene mandati alla pagina di login.
 
ciao
attento
PHP:
<?php
if (!isset($_GET['page']) && !isset($_SESSION['id_user'])) {
	header("Location: accedi.php");
}
?>
dici "oppure", quindi OR
PHP:
<?php
if (!isset($_GET['page']) || !isset($_SESSION['id_user'])) {
	header("Location: accedi.php");
	exit();
}
?>
nel primo caso per avere il reindirizzamento devono mancare entrambi, nel secondo basta che ne manchi uno
poi metti l'exit
 

Discussioni simili