Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    errore del file user.access.php

    Buonasera amici del forum, sto uscendo pazzo con questo codice, in pratica sto creando un'area riservata compilando tutti i campi:SETTING e CONNESSIONE A MYSQL, non mi fa vedere piu le pagine compresa quella principale login.php , mi dareste una mano a capire dove sbaglio?

    Codice PHP:
    <?php// error_reporting(E_ALL | E_DEPRECATED | E_STRICT);


    Class Users{
        
    /********************************
        SETTING
        *********************************/
        // le credenziali di accesso al database
        
    private $host_db 'localhost';
        private 
    $user_db 'mio database';
        private 
    $pass_db 'mia password';
        private 
    $name_db 'mio username, che è lo stesso del db';
        
    // gli url che gestinranno le operazioni di login
        
    public $Urls = array(
                            
    'login_page'     => 'http://glampoint.it/contenutoprotetto.php',
                            
    'register_page'    => 'http://localhost/test/guida_semple/registrazione.php',
                            
    'logout_page'    => 'http://localhost/test/guida_semple/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(
                        
    => 'Il campo username è obbligatorio.',
                        
    => 'Il campo email è obbligatorio.',
                        
    => 'Il campo password è obbligatorio.',
                        
    => 'Le due password non coincidono.',
                        
    => 'Il campo username contiene caratteri non validi. Sono consentiti solo lettere, numeri il i seguenti simboli . _ -.',
                        
    => 'Inserisci una email con sitassi corretta.',
                        
    => 'La password scelta è eccessivamente breve. Scegli una password di almeno 8 caratteri.',
                        
    => 'Esiste già un utente registrato con questo username.',
                        
    => 'Esiste già un utente registrato con questa email.',
                        
    10 => 'Registrazione effettuata con successo.',
                        
    11 => 'Login errato',
                        
    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();
            }
        
    /******************
        CONNESSIONE A MYSQL
        ******************/
            
    protected function connessione(){
            
    $this->conn mysql_connect($this->host_db$this->user_db$this->pass_db) or die(mysql_error());
            
    $this->selezione_db mysql_select_db($this->name_db$this->conn) or die(mysql_error());
            return 
    TRUE;
            }




        
            
        
    /*************************************
        ALCUNI METODI PER ESEGUIRE VALIDAZIONI
        *************************************/
        
        // verifica campo generico non vuoto (TRUE se non vuoto)
        
    public function empty_string($string){
            
    $string trim($string);
            if(
    $string==''){
                return 
    TRUE;
                }
            else{
                return 
    FALSE;
                }
            }
        
        
    // verifica sintassi username
        
    public function is_username($username){
            
    $regex '/^[a-z0-9\.\-_]{3,30}$/i';
            return 
    preg_match($regex$username);
            }
        
        
    // verifica sintassi email (TRUE se ok)
        
    public function is_email($email){
            
    $regex '/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$/';
            return 
    preg_match($regex$email);
            }
            
        
    // verifica sintassi password (per semplicità solo lunghezza) (TRUE se ok)
        
    public function is_secure_password($password){
            if(
    strlen($password)>=8){
                return 
    TRUE;
                }
            else{
                return 
    FALSE;
                }
            }
                
        
    /*****************************************************
        METODI PER VERIFICARE ESISTENZA DI USERNAME E PASSWORD
        ******************************************************/
        
        // verifica esistenza username (TRUE se esiste)
        
    public function isset_username($username){
            
    $query "SELECT COUNT(username) AS count 
                        FROM users 
                        WHERE username='"
    .mysql_real_escape_string($username)."' 
                        LIMIT 1"
    ;
            
    $result mysql_query($query) or die(mysql_error());
            
    $row mysql_fetch_array($result);
            if(
    $row['count']==1){
                return 
    TRUE;
                }
            else{
                return 
    FALSE;
                }
            }
        
        
    // verifica esistenza email (TRUE  se esiste)
        
    public function isset_email($email){
            
    $query "SELECT COUNT(email) AS count 
                        FROM users 
                        WHERE email='"
    .mysql_real_escape_string($email)."' 
                        LIMIT 1"
    ;
            
    $result mysql_query($query) or die(mysql_error());
            
    $row mysql_fetch_array($result);
            if(
    $row['count']==1){
                return 
    TRUE;
                }
            else{
                return 
    FALSE;
                }
            }
        
        
    /******************************
        I FORM DI LOGIN E REGISTRAZIONE
        ******************************/
        
    public function get_login_form(){
            
    $html '
                <form action="' 
    .$this->Urls['login_page']. '" method="post" id="form_login">
                <nav class="navbar navbar-inverse">
      <div class="container-fluid">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>                        
          </button>
          <a class="navbar-brand" href="#"></a>
        </div>
        <div class="collapse navbar-collapse" id="myNavbar">
          <ul class="nav navbar-nav">
            <li class="#"><a href="#"></a></li>
            <li><a href="#"></a></li>
            <li><a href="#"></a></li>
            <li><a href="#"></a></li>
          </ul>
          <ul class="nav navbar-nav navbar-right">
            <li><a href="#"><span class="glyphicon glyphicon-log-in"></span></a></li>
          </ul>
        </div>
      </div>
    </nav>
    <div class="loginwrapper">


        <div class="loginwrap zindex100 animate2 bounceInDown">


        <h1 class="logintitle"><span class="iconfa-lock"><img src="lock.png" /></span> Inserimento Coupon <span class="subtitle">Accesso amministrativo</span></h1>


            <div class="loginwrapperinner">


                <form id="loginform" action="" method="post">


                   <p class="animate4 bounceIn"><input type="text" id="username" name="username" value="Username" placeholder="Username" /></p>


                    <p class="animate5 flip"><input type="password" id="password" name="password" placeholder="Password" value="password" /></p>


                    <p class="animate6 wobble"><button class="btn btn-default btn-block">Submit</button></p>
                </form>


            </div>


        </div>


        <div class="loginshadow animate3 fadeInUp"></div>
    </div>
                </form>'
    ;
            return 
    $html;
            }
        
        public function 
    get_register_form(){
            
    $html '
                <form action="' 
    .$this->Urls['register_page']. '" method="post" id="form_register">
                <fieldset>
                <legend>Registrazione<legend>
                <label for="reg_user">Username*</label>
                    <input type="text" name="username" id="reg_user" />
                <label for="reg_email">Email*</label>
                    <input type="text" name="email" id="reg_email" />
                <label for="reg_pass1">Password*</label>
                    <input type="password" name="pass1" id="reg_pass1" />
                <label for="reg_pass2">Confirm Password*</label>
                    <input type="password" name="pass2" id="reg_pass2" />
                <input type="submit" name="register" value="registra" id="reg_submit" />
                <input type="reset" name="reset" value="cancella" id="reg_reset" />
                </fieldset>
                </form>'
    ;
            return 
    $html;
            }
        
        
    /*****************************
        LINK LOGOUT
        *****************************/
        
    public function get_link_logout(){
            if(
    $this->is_logged()){
                return 
    '<a href="'.$this->Urls['logout_page'].'" class="logout">Logout</a>';
                }
            return 
    '';
            }
            
        
    /*******************************
        METODO PER CRIPTARE LE PASSWORD
        *******************************/
        
    public function crypt_pass($pass){
            return 
    sha1($pass);
            }
        
        
    /*****************************
        ESECUZIONE DELLA REGISTRAZIONE
        ******************************/
        
    public function esegui_registrazione(){
            
    // se il form e i suoi input sono stati inviati
            
    if(isset($_POST['register']) AND 
                isset(
    $_POST['username']) AND 
                isset(
    $_POST['email']) AND 
                isset(
    $_POST['pass1']) AND 
                isset(
    $_POST['pass2'])){ 
                
    //valorizziamo alcune variabili
                
    $this->reg_username trim($_POST['username']);
                
    $this->reg_email trim($_POST['email']);
                
    $this->reg_pass trim($_POST['pass1']);
                
    $this->reg_confirm_pass trim($_POST['pass2']);
                
    // criptiamo la password
                
    $this->reg_crypt_pass $this->crypt_pass($this->reg_pass);
                
    // eseguiamo la validazione degli input
                
    $valid_input $this->check_input_registrazione();
                
    // se sono validi
                
    if($valid_input===TRUE){
                    
    // inseriemo all'interno del database i dati
                    
    $this->query_insert_registrazione();
                    
    // settiamo il messaggio di successo della registrazione
                    
    $this->message_script 10;
                    return 
    TRUE;
                    }
                }
            return 
    FALSE;
            }
        
        
    // verifica che gli input siano corretti
        
    protected function check_input_registrazione(){
            if(
    $this->empty_string($this->reg_username)){
                
    $this->message_script 1;
                return 
    FALSE;
                }
            else if(
    $this->empty_string($this->reg_email)){
                
    $this->message_script 2;
                return 
    FALSE;
                }
            else if(
    $this->empty_string($this->reg_pass)){
                
    $this->message_script 3;
                return 
    FALSE;
                }
            else if(
    $this->reg_pass != $this->reg_confirm_pass){
                
    $this->message_script 4;
                return 
    FALSE;
                }
            else if(!
    $this->is_username($this->reg_username)){
                
    $this->message_script 5;
                return 
    FALSE;
                }
            else if(!
    $this->is_email($this->reg_email)){
                
    $this->message_script 6;
                return 
    FALSE;
                }
            else if(!
    $this->is_secure_password($this->reg_pass)){
                
    $this->message_script 7;
                return 
    FALSE;
                }
            else if(
    $this->isset_username($this->reg_username)==TRUE){
                
    $this->message_script 8;
                return 
    FALSE;
                }
            else if(
    $this->isset_email($this->reg_email)==TRUE){
                
    $this->message_script 9;
                return 
    FALSE;
                }
            return 
    TRUE;
            }
        
        
    // esecuzione della query insert di registrazione
        
    protected function query_insert_registrazione(){
            
    $query "
                        INSERT INTO users 
                        SET 
                            username='"
    .mysql_real_escape_string($this->reg_username)."', 
                            pass='"
    .mysql_real_escape_string($this->reg_crypt_pass)."', 
                            email='"
    .mysql_real_escape_string($this->reg_email)."', 
                            data_reg= NOW()"
    ;
            
    $result mysql_query($query) or die(mysql_error());
            return 
    mysql_insert_id();
            }

  2. #2
    Scusate ma ho dovuto dividere il post in due parti.
    Codice PHP:
        /*******************
        ESECUZIONE DEL LOGIN
        ********************/
        
    public function esegui_login(){
            
    // se il form di login e i sui tutti input sono stati inviati 
            
    if(isset($_POST['login']) AND isset($_POST['username']) AND isset($_POST['pass'])){
                
    // valorizziamo delle variabili
                
    $this->login_username trim($_POST['username']);
                
    $this->login_password trim($_POST['pass']);
                
    // criptiamo la password
                
    $this->login_cryptpass $this->crypt_pass($this->login_password);
                
    // validiamo i dati (non devono essere vuoti)
                
    $not_empty_input $this->check_input_login();
                
    // se la validazione è andata a buon fine
                
    if($not_empty_input===TRUE){
                    
    // eseguiamo la query e verifichiamo se individua le credenziali
                    
    if($this->query_select_login()==TRUE){
                        
    // settiamo lo status di utente loggato
                        
    $this->set_logged($this->login_iduser);
                        
    // settiamo l'username
                        
    $this->set_username($this->login_username);
                        
    // settiamo il messaggio di successo del login
                        
    $this->message_script 12;
                        return 
    TRUE;
                        }
                    
    // se la query non ha trovat utenti con quelle credenziali
                    
    else{
                        
    //  settiamo un messaggio di insuccesso dell'operazone
                        
    $this->message_script 11;
                        }
                    }
                }
            return 
    FALSE;
            }
        
        
    // verifica che gli input del login non siano vuoti
        
    protected function check_input_login(){
            if(
    $this->empty_string($this->login_username)){
                
    $this->message_script 1;
                return 
    FALSE;
                }
            else if(
    $this->empty_string($this->login_password)){
                
    $this->message_script 3;
                return 
    FALSE;
                }
            return 
    TRUE;
            }
        
        
    // esecuzione della qeury per verificare il login
        
    protected function query_select_login(){
            
    $query "
                        SELECT id FROM users 
                        WHERE 
                            username='"
    .mysql_real_escape_string($this->login_username)."' AND 
                            pass='"
    .mysql_real_escape_string($this->login_cryptpass)."'";
            
    $result mysql_query($query) or die(mysql_error());
            
    // se individua l'utente
            
    if(mysql_num_rows($result)==1){
                
    $row mysql_fetch_array($result);
                
    $this->login_iduser $row['id'];
                return 
    TRUE;
                }
            return 
    FALSE;
            }
            
        
    /***********************************
        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");
                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;
            }


        
    /*****************************
        METODO PER OTTENERE I MESSAGGI
        ******************************/
        
    public function get_message(){
            if(isset(
    $_GET['message'])){
                
    $this->message_script $_GET['message'];
                }
            
    $key intval($this->message_script);
            if(
    array_key_exists($key$this->messages)){
                return 
    $this->messages[$key];
                }
            return 
    FALSE;
            }
        }
    ?> 

    inoltre vi chiedo come mai se completo con i dati di accesso questo codice non mi fa vedere le pagine mentre se non lo compilo con i dati di accesso me le fa vedere ma non mi fa entrare nella pagina protetta che si chiama contenutoprotetto.php
    Codice PHP:
    /******************    CONNESSIONE A MYSQL
        ******************/
            
    protected function connessione(){
            
    $this->conn mysql_connect($this->host_db$this->user_db$this->pass_db) or die(mysql_error());
            
    $this->selezione_db mysql_select_db($this->name_db$this->conn) or die(mysql_error());
            return 
    TRUE;
            } 
    grazie di cuore ragazzi.[/PHP]

  3. #3
    c'è qualcuno che mi potrebbe dare una mano..

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Non è che hai messo la verifica di login effettuato anche nelle pagine dove puoi arrivare senza doverti loggare?
    In tal caso è abbastanza normale che succeda, il controllo parte, non sei loggato, la funzione ritorna false e ti blocca, ma bisogna vedere se la situazione è effettivamente questa, hai solo mostrato il codice che usi per fare il login, ma non come poi effettivamente lo usi nelle pagine.

    P.S. usa mysqli_ o meglio PDO, le funzioni mysql_ sono state abbandonate.

  5. #5
    Ti allego lo zip dei file in uso
    File allegati File allegati

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.