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

Discussione: Come mai mi da errore?

  1. #1

    Come mai mi da errore?

    Sto provando a fare un form per il login. Ho creato una classe:

    Codice PHP:
    <?php     
    session_start
    ();     
    class 
    UserAuthentication  
    {      
    public 
    $conn;             
    protected function 
    DbConnect()          
    {              
    include 
    "connessione.php";                 
    $this->conn mysql_connect($host,$user,$password) OR die("Impossibile connettersi al database");              
    mysql_select_db($db$this->conn);          
    }             
    public function 
    VerifyLogin()          
    {              
    $username $_POST['username'];              
    $password $_POST['password'];              
    $this->DbConnect();              
    $sql "SELECT * FROM utente WHERE username='$username' AND password='$password'";              
    $res mysql_query($sql,$this->conn);                 
    if(
    $row mysql_fetch_array($res))              
    {                  
    $_SESSION['auth'] = 1;                  
    $_SESSION['user_id'] = $row['username'];                  
    header("Location: login_effettuato.php");                  
    mysql_close($this->conn);                  die;              
    }              
    else              
    {                  
    echo 
    "<script type=\"text/javascript\">alert(\"Attenzione dati non validi!\")</script>";                                   
    header('refresh: 0; url=login.php');                  
    mysql_close($this->conn);                  
    die;              
    }          
    }             
    public function 
    IsAuth()          
    {              
    if(!isset(
    $_SESSION['auth']))              
    {                  
    header("Location: home.php");                  
    die;              
    }          
    }             
    public function 
    ShowUsername()          
    {              
    $this->DbConnect();              
    $sql "SELECT username FROM utente WHERE username=$_SESSION[user_id]";              
    $res mysql_query($sql,$this->conn);              
    $row mysql_fetch_array($res);              
    mysql_close($this->conn);              
    return 
    $row['username'];          
    }                  
    public function 
    ShowGrado()          
    {              
    $this->DbConnect();              
    $sql "SELECT grado FROM utente WHERE username=$_SESSION[user_id]";              
    $res mysql_query($sql,$this->conn);              
    $row mysql_fetch_array($res);              
    mysql_close($this->conn);              
    return 
    $row['grado'];          
    }  
    }     
    ?>
    Poi ho fatto il form del login:

    Codice PHP:
    <centerInserire i dati di accesso

     
    <form action="login_effettuato.php" method="post"name="form1"
    <
    table border="1"
    <
    tr
     <
    td align="center">Login:</td
    <
    td align="center"><input type="text" name="username" value="" size="40"></td> </tr
    <
    tr>  <td align="center">Password:</td> <td align="center"><input type="password" name="password" value="" size="40"></td> </tr> </table

     
    <
    input type="submit" value="Invia dati"
    </
    form>
     </
    center
    e la pagina che controlla il login:

    Codice PHP:
    <?php  include 'controllo_login.class.php';     
    $auth = new UserAuthentication();  
    $auth->IsAuth();  
    $grado $auth->ShowGrado();    
    if(
    $grado == "Amministratore"){          
    header('refresh: 0; url=pannello_amministratore.php');  
    }  
    else{          
    header('refresh: 0; url=pannello_utente.php');  
    }  
    ?>
    Dov'è che sbaglio? Centra qualcosa il fatto che il mio db è locale?

  2. #2
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    si ma quale errore ti da?
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  3. #3
    Siamo alle solite, vi sembra superfluo indicare l'errore che viene fuori???
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    Originariamente inviato da satifal
    Siamo alle solite, vi sembra superfluo indicare l'errore che viene fuori???
    Ho fatto varie prove per capirlo... Praticamente mi da errore qua:

    Codice PHP:
    public function IsAuth()
              
     {               
    if(!isset(
    $_SESSION['auth']))               
    {                  
     
    header("Location: home.php");                   
    die;               
    }           

    Perchè va sempre alla home. Ho fatto varie prove... Ho fatto in modo che qui al posto di fare header("Location: home.php"); mi facesse:

    echo "<script type=\"text/javascript\">alert(\"query: $sql")</script>";

    Ma me la da vuota. Qual è il problema???

  5. #5
    Magari non funziona perchè:

    Codice PHP:
    ...
    $auth->IsAuth();
    ... 
    Codice PHP:
    ...
    public function 
    IsAuth() {              
        if (!isset(
    $_SESSION['auth'])) {
            
    header("Location: home.php");
            die;
        }
    }  
    ... 
    ...se $_SESSION['auth'] è valorizzato non fa niente altrimenti carica home.php...interessante come login secondo me hai copiato male il codice.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Si lo so che è per quello che da errore... Il problema è perchè non mi prende: !isset($_SESSION['auth'])?

    Alla fine gli dico che è 1 quando trova i dati. Posto pure la tabella di utente per sicurezza?

  7. #7
    Originariamente inviato da AyeyeBrazorv
    Si lo so che è per quello che da errore... Il problema è perchè non mi prende: !isset($_SESSION['auth'])?

    Alla fine gli dico che è 1 quando trova i dati. Posto pure la tabella di utente per sicurezza?
    Certo, nel metodo VerifyLogin()...e dove lo richiami?!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    Hai ragione, ho messo ora verify login. Però ora mi dice: "dati non corretti" ma ho inserito i dati giusti.Faccio stampare la query e mi viene:

    SELECT * FROM utente WHERE username='' AND password=''

    Nel programma come potete vedere ho messo: SELECT * FROM utente WHERE username='$username' AND password='$password'

    Mi sa che ho fatto un errore stupido ma non riesco a capire perchè non me li da

  9. #9
    Riposta il nuovo script modificato completo.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    Originariamente inviato da satifal
    Riposta il nuovo script modificato completo.
    Ho modificato solo questo:

    Codice PHP:
    <?php include 'controllo_login.class.php';   
    $auth = new UserAuthentication(); 
    $auth->VerifyLogin(); 
    $auth->IsAuth(); 
    $grado $auth->ShowGrado();  
    if(
    $grado == "Amministratore"){         
    header('refresh: 0; url=pannello_amministratore.php'); 

    else{         
    header('refresh: 0; url=pannello_utente.php'); 

    ?>
    Questa è la classe

    Codice PHP:
    <?php     
    session_start
    ();     
    class 
    UserAuthentication  
    {      
    public 
    $conn;             
    protected function 
    DbConnect()          
    {              
    include 
    "connessione.php";                 
    $this->conn mysql_connect($host,$user,$password) OR die("Impossibile connettersi al database");              
    mysql_select_db($db$this->conn);          
    }             
    public function 
    VerifyLogin()          
    {              
    $username $_POST['username'];              
    $password $_POST['password'];              
    $this->DbConnect();          
    //Questa query quando vado a stamparla me la stampa senza $username e $password. Non capisco cosa sbaglio    
    $sql "SELECT * FROM utente WHERE username='$username' AND password='$password'";              
    $res mysql_query($sql,$this->conn);                 
    if(
    $row mysql_fetch_array($res))              
    {                  
    $_SESSION['auth'] = 1;                  
    $_SESSION['user_id'] = $row['username'];                  
    header("Location: login_effettuato.php");                  
    mysql_close($this->conn);                  die;              
    }              
    else              
    {                  
    echo 
    "<script type=\"text/javascript\">alert(\"Attenzione dati non validi!\")</script>";                                   
    header('refresh: 0; url=login.php');                  
    mysql_close($this->conn);                  
    die;              
    }          
    }             
    public function 
    IsAuth()          
    {              
    if(!isset(
    $_SESSION['auth']))              
    {                  
    header("Location: home.php");                  
    die;              
    }          
    }             
    public function 
    ShowUsername()          
    {              
    $this->DbConnect();              
    $sql "SELECT username FROM utente WHERE username=$_SESSION[user_id]";              
    $res mysql_query($sql,$this->conn);              
    $row mysql_fetch_array($res);              
    mysql_close($this->conn);              
    return 
    $row['username'];          
    }                  
    public function 
    ShowGrado()          
    {              
    $this->DbConnect();              
    $sql "SELECT grado FROM utente WHERE username=$_SESSION[user_id]";              
    $res mysql_query($sql,$this->conn);              
    $row mysql_fetch_array($res);              
    mysql_close($this->conn);              
    return 
    $row['grado'];          
    }  
    }     
    ?>
    Questo è il form del login della prima pagina:

    Codice PHP:
    <centerInserire i dati di accesso

     
    <form action="login_effettuato.php" method="post"name="form1"
    <
    table border="1"
    <
    tr
     <
    td align="center">Login:</td
    <
    td align="center"><input type="text" name="username" value="" size="40"></td> </tr
    <
    tr>  <td align="center">Password:</td> <td align="center"><input type="password" name="password" value="" size="40"></td> </tr> </table

     
    <
    input type="submit" value="Invia dati"
    </
    form>
     </
    center

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 © 2024 vBulletin Solutions, Inc. All rights reserved.