salve ragazzi, come da titolo ho inserito in testa ad ogni pagina che intendo proteggere da chi non ha effettuato il login, il seguente codice:
Codice PHP:
<?php
session_start();
require_once('Users.class.php');
$login = New Users;
$login->access_denied();
?>
la funzione access_denied è implementata all interno del file User.class.php.... questo è il codice:
Codice PHP:
<?php
// error_reporting(E_ALL | E_DEPRECATED | E_STRICT);
Class Users{
/********************************
SETTING
*********************************/
// le credenziali di accesso al database
private $host_db = 'xxx';
private $user_db = 'xxx';
private $pass_db = 'xxx';
private $name_db = 'xxx';
// gli url che gestinranno le operazioni di login
public $Urls = array(
'login_page' => 'http://sitoprova.96.lt/login.php',
'register_page' => 'http://sitoprova.96.lt/registrazione.php',
'logout_page' => 'http://sitoprova.96.lt/logout.php'
);
/*******************************************
se non sai ciò che fai non toccare più nulla
*******************************************/
/*risorse di connessione*/
protected $conn;
protected $selezione_db;
/*variabili di registrazione*/
protected $reg_username;
protected $reg_email;
protected $reg_pass;
protected $reg_confirm_pass;
protected $reg_crypt_pass;
/*variabili di login*/
protected $login_username;
protected $login_password;
protected $login_cryptpass;
protected $login_iduser;
/*variabili per gestire gli errori*/
public $messages = array(
1 => 'Il campo username è obbligatorio.',
2 => 'Il campo email è obbligatorio.',
3 => 'Il campo password è obbligatorio.',
4 => 'Le due password non coincidono.',
5 => 'Il campo username contiene caratteri non validi. Sono consentiti solo lettere, numeri il i seguenti simboli . _ -.',
6 => 'Inserisci una email con sitassi corretta.',
7 => 'La password scelta è eccessivamente breve. Scegli una password di almeno 8 caratteri.',
8 => 'Esiste già un utente registrato con questo username.',
9 => 'Esiste già un utente registrato con questa email.',
10 => 'Registrazione effettuata con successo.',
11 => 'Login errato : username o password errati!!',
12 => 'Login eseguito con successo.',
13 => 'Logout eseguito con successo.',
14 => 'Per accedere a questa pagina occorre essere loggati.'
);
public $message_script;
// il costruttore attiva la connessione a mysql
public function __construct(){
$this->connessione();
}
.
.
.
.
.
.
ALTRO CODICE
.
.
.
.
.
.
.
/***********************************
VERIFICA DELLO STATO DI LOGIN UTENTE
***********************************/
// verifica login
public function is_logged(){
return isset($_SESSION['auth']);
}
// set login
protected function set_logged($id_user){
$_SESSION['auth'] = $id_user;
return;
}
// access denied
public function access_denied(){
if(!$this->is_logged()){
header("location: ".$this->Urls['login_page']."?message=14"); <!----- QUI ----->
exit;
}
return;
}
protected function set_username($username){
$_SESSION['username_logged'] = $username;
return;
}
public function get_username(){
return isset($_SESSION['username_logged']) ? $_SESSION['username_logged'] : '';
}
// logout
public function logout(){
session_unset();
session_destroy();
setcookie(session_name(), '', time()-42000, '/');
header("location: ".$this->Urls['login_page']."?message=13");
return;
}
la funzione dovrebbe controllare se l utente che vuole visualizzare la pagina è loggato o meno...se non lo è dovebbe restituire un messaggio e riportare l utente alla pagina di login...ma ciò non accade pultroppo...il risultato è questo :
http://sitoprova.96.lt/
qualcuno può aiutarmi a risolvere?