bloccare l'accesso pagine php diretto

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
Salve, si come che sto facendo un cms modulare ovvero che io carico le pagine in questa maniera:

index.php?m=news

ma se uno sa dove stanno ad esempio:
http://localhost/15/module/news.php

come faccio a bloccare l'accesso diretto come l'esempio sopra?

questo è il codice che uso:
PHP:
<?php
$m = (isset($_GET['m'])) ? trim($_GET['m']) : '';

//Effettuo lo switch
switch($m)
{
	case 'articoli':
		require_once('module/articoli.php');
		break;
	case 'galleria':
		require_once('module/galleria.php');
		break;
	case 'pagine':
	    require_once('module/pagine.php');
		break;
	case 'account':
	    require_once('module/account.php');
		break;
	case 'user':
	    require_once('module/user.php');
		break;
	case 'news':
	    require_once('module/news.php');
		break;		
	default:
		require_once('pages/home.htm');
		break;
	//*.*.*.*.*.*.*.*.*.*.
}
?>

mi dite come posso fare?

Grazie mille.
 
In ogni pagina dovresti mettere cosi ad esempio:
PHP:
if($_SERVER['PHP_SELF']=='/pagina.php') header('Location: index.php');
 
scusate, ma ho risolto cosi:
nel file da proteggere metto questo:
PHP:
<?php
@defined('ENGINE') or die("accessible only by ENGINE"); // iniziare sempre con questa espressione
?>

e nel file index metto questo:

define("ENGINE", 1);

grazie mille... però non mi convince la @ che cosa fa sparire?

aspetto risposta.
 
la @ serve a non dare errori nel caso ci siano notice o altri errori non importanti
 

Discussioni simili