Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: login in loop

  1. #1
    Utente di HTML.it L'avatar di spawn88
    Registrato dal
    Feb 2012
    residenza
    Milano
    Messaggi
    313

    login in loop

    Buona sera a tutti,
    ho strutturato queste due pagine per fare il login ma sembra andare in loop perchè ogni volta che inserisco user e pass corrette mi ripresenta la schermata di login.
    questa è la pagina di index:
    Codice PHP:
    <html>
        <head>
            <link href="/css/style.index.css" rel="stylesheet" type="text/css"/>
        </head>

    <?php
        
      
    if (!isset($_SERVER['PHP_AUTH_USER'])) 
      {
        
    header('WWW-Authenticate: Basic realm="localhost"');
        
    header('HTTP/1.0 401 Unauthorized');
        echo 
    'Autenticazione fallita!';
        exit;
      } 
      else 
      {
        
    $user $_SERVER['PHP_AUTH_USER'];
        
    $pass $_SERVER['PHP_AUTH_PW'];
        include_once(
    "include/config.php");
        require_once(
    "login.class.php");
        
    $login = new login();    
        
    $login->pulizia($user$pass);
        
    $count1 $login->controllo();
        
        if (
    $count1 == 1) {
            
    session_start();        
            
    $login->aggiornamento();
            
    ?>
            <div id="main">
                <div id="loading" align="middle">
                <table align="center">    
                    <tr>
                        <td>
                            [b]Loading...[/b]    
                        </td>
                    </tr>
                    <tr>
                        <td>
                            [img]/img/indicator_bar.gif[/img]
                        </td>
                    </tr>
                </table>
                </div>    
            </div>
            
            <body onload="finish()">
                <?php
                    header
    ("Refresh: 5;URL=home.php");
                
    ?>
            </body>
            <?php  
        
    } else {
            
    header('WWW-Authenticate: Basic realm="localhost"');
            
    header('HTTP/1.0 401 Unauthorized');
            echo 
    'Autenticazione fallita!';
            exit;
        }

      } 
    ?>
    </html>
    e questa la pagina login.class.php:
    Codice PHP:
    <?php
        
        
    class login{
            
            private 
    $username;
            private 
    $password;
            private 
    $stringa1;
            private 
    $stringa2;
            private 
    $query;
            private 
    $result;
            private 
    $psw;
            
            public 
    $count=0;
            public 
    $row;
            
            public function 
    pulizia($user$pass){
                
                if(!
    get_magic_quotes_gpc()){
                    
                    
    $this->username trim(addslashes($user));
                    
    $this->password trim(addslashes($pass));
                    
    $this->psw md5($this->password);
                    
                }else{
                    
                    
    $this->stringa1 stripslashes($user);
                    
    $this->stringa2 stripslashes($pass);
                    
    $this->username mysql_real_escape_string($this->stringa1);
                    
    $this->password mysql_real_escape_string($this->stringa2);
                    
    $this->psw md5($this->password);
                    
                }
            }
    //fine funzione pulizia
            
            
    public function controllo(){
                include_once(
    "include/config.php");
                
    $this->query 'SELECT *
                            FORM login
                            WHERE username = "'
    .$this->username.'" AND "'.$this->psw.'"';
                
    $this->result mysql_query($this->query);
                
    $this->count mysql_num_rows($this->result);
                
                return 
    $this->count;
            
            }
    //fine funzione controllo
            
            
    public function assegnazione(){
                include_once(
    "include/config.php");
                
    $_SESSION['USER'] = $this->username;
                
    $_SESSION['PASS'] = $this->password;
                
                while (
    $this->row mysql_fetch_assoc($this->result)) {
                        
                    
    $_SESSION['cev'] = $this->row['cev'];
                
                }
    //fine while
            
    }
            
        }
    //fine classe login
    ?>
    qualcuno può illuminarmi please?
    grazie mille a tutti

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Che cosa effettui nel metodo aggiornamento della classe di login? Il redirect non avviene sulla stessa pagina vero?

  3. #3
    Utente di HTML.it L'avatar di spawn88
    Registrato dal
    Feb 2012
    residenza
    Milano
    Messaggi
    313
    Aggiornamento dovrebbe essere assegnazione() ho sbagliato a scrivere. X quanto riguarda il redirect viene fatto dalla pagina index.php alla home.php che contiene il menù del sito

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Originariamente inviato da spawn88
    Aggiornamento dovrebbe essere assegnazione() ho sbagliato a scrivere. X quanto riguarda il redirect viene fatto dalla pagina index.php alla home.php che contiene il menù del sito
    Nella funzione finish quando viene caricata la pagina che cosa avviene?

  5. #5
    Utente di HTML.it L'avatar di spawn88
    Registrato dal
    Feb 2012
    residenza
    Milano
    Messaggi
    313
    temporeggia sul loading.. 5 secondi poi indirizza la pagina alla home.php

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Originariamente inviato da spawn88
    temporeggia sul loading.. 5 secondi poi indirizza la pagina alla home.php
    In che senso temporeggia? Comunque è piuttosto inutile, facevi prima a scrivere del redirect immediato e far continuare l'header comunque prova a togliere una funzione alla volta in quella parte guardando se viene il loop oppure no così da individuare il problema perché ora come ora è un po vago

  7. #7
    Utente di HTML.it L'avatar di spawn88
    Registrato dal
    Feb 2012
    residenza
    Milano
    Messaggi
    313
    mi da un warning nella pagina "login.class.php" nella funzione controllo():
    codice:
    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\login.class.php on line 43
    ma non riesco a risolvere il problema
    mi sembra tutto a posto a parte che mi da errore.
    Per ora ho ripercorso tutta la funzione pulisci() e stampato tutti i valori e sono corretti ma non stampa la variabile $this->count.
    Sapete aiutarmi?

  8. #8
    Questa query è sbagliata:
    Codice PHP:
    query 'SELECT * FORM login
    WHERE username = "'
    .$this->username.'" AND "'.$this->psw.'"'

  9. #9
    Utente di HTML.it L'avatar di spawn88
    Registrato dal
    Feb 2012
    residenza
    Milano
    Messaggi
    313
    scusami ma non capisco il perchè.
    mi sembra corretta.
    controllo il campo username e password dalla tabella login coi dati inseriti no?

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Originariamente inviato da spawn88
    scusami ma non capisco il perchè.
    mi sembra corretta.
    controllo il campo username e password dalla tabella login coi dati inseriti no?
    Così semmai..

    Codice PHP:
    query 'SELECT * FROM login 
    WHERE username = "'
    .$this->username.'" AND password = "'.$this->psw.'"'

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.