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

Discussione: Non riconosce l'utente

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    152

    Non riconosce l'utente

    Ragazzi ho questo codice di autenticazione, ma anche se metto un nick e una pass che risultano registrati continua a dire :Accesso negato. Devi essere registrato, ma vi assicuro che i valori che inserisco ci sono nella tabella del database. Vi posto il codice, Dov'è l'errore ?

    index
    codice:
    <html>
    
    <head>
    	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
    	<meta name="author" content="Skyline">
    
    	<title>Login</title>
    </head>
    
    <body>
    
    <form action="login.php" method="post" enctype="application/x-www-form-urlencoded" name="login">
    	<input type="text" size="20" maxlength="20" name="username" />
    
    	<input type="password" maxlength="20" name="password" />
    
    	<input type="submit" value="Login" name="Submit" />
    </form>
    
    </body>
    </html>
    login.php
    codice:
    <?php
    //includo il file di Configurazione con session_start()) dentro
    include "config_log.php";
    
    //Eseguo una query nella tabella utenti verificando se esiste l'username con quella password
    $query = mysql_query("SELECT username FROM tabella_registrati WHERE username = '".$_POST['username']."' AND password = '".md5($_POST['password'])."'");
    
    //se esegue la query entra nell'IF
    if($query)
    {
    	//metto l'username nella variabile di sessione "username"
    	$_SESSION['username'] = $_POST['username'];
    	//Faccio il redirect nella pagine enter.php
    	echo "<script>
    			window.location = \"enter.php\"
    		  </script>";
    }
    else
    {
    	//Faccio il redirect nella pagine enter.php
    	echo "<script>
    			window.location = \"enter.php\"
    		  </script>";
    }
    ?>
    config_log
    codice:
    <?php
    session_start();
    
    $connection = mysql_connect( 'localhost', 'root', '') or die('Could not connect to server.' );
            mysql_select_db('utenti', $connection) or die('Could not select database.');
    ?>
    enter
    codice:
    <?php
    //includo il file di Configurazione con session_start()) dentro
    include "config_log.php";
    
    //se esiste la variabile $_SESSION['username'] è loggato
    if(isset($_SESSION['username'])){
    	echo "Benvenuto ".$_SESSION['username']." hai effettuato il login con successo";
            include("area.html");
    }
    
    //Altrimenti non è loggato
    else
    	echo "Accesso negato!
     DEvi essere registrato per accedere a quest'area";
    ?>

  2. #2
    //se esegue la query entra nell'IF
    if($query)

    in $query trovi il resource id che indica il riferimento al buffer del result set. E' sempre TRUE se la query e' sintatticamente corretta. Zero risultati non e' un errore di query. Devi contare le righe trovate.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    152
    Come faccio Piero, non sono un grande esperto di Php, da come ho capito dovrei mettere un contatore ma dove ? ...Come sarà quindi il codice modificato? Ti ringrazio se puoi aiutarmi

  4. #4
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    Codice PHP:
    if(mysql_num_rows($query) >0) {
    ho trovato almeno un risultato


    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  5. #5
    Originariamente inviato da johnnny
    Come faccio Piero, non sono un grande esperto di Php, da come ho capito dovrei mettere un contatore ma dove ? ...Come sarà quindi il codice modificato? Ti ringrazio se puoi aiutarmi
    ti metto un esempio:

    codice:
    //Eseguo una query nella tabella utenti verificando se esiste l'username con quella password
    $query = mysql_query("SELECT username FROM tabella_registrati 
                  WHERE username = '".$_POST['username']."' 
                             AND password = '".md5($_POST['password'])."'");
    
    //se esegue la query entra nell'IF
    if(mysql_num_rows($query) == 1 )
    {
    	//metto l'username nella variabile di sessione "username"
    	$_SESSION['username'] = $_POST['username'];
    	//Faccio il redirect nella pagine enter.php
    	echo "<script>
    			window.location = \"enter.php\"
    		  </script>";
    }
    .............

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    152
    Dove lo inserisco questo codice oronze ? E poi in quell' if deve fare qualcosa giusto?

  7. #7
    Originariamente inviato da johnnny
    Dove lo inserisco questo codice oronze ? E poi in quell' if deve fare qualcosa giusto?
    usa == 1 e non > 0 perche' di utenti registrati con stesso username e password devi averne solo uno, oppure nessuno.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    152
    Ho modificato quell'if come mi hai detto tu Piero ma continua a non accedere alla pagina riservata, Perchè? Non è che è dovuto al fatto che nel database la password dell'utente registrato è crittografata ( cioè non è la stessa stringa di caratteri isnerita dall'utente, ma una sequenza di caratteri alfanumerici a caso) ???

  9. #9
    Originariamente inviato da johnnny
    Ho modificato quell'if come mi hai detto tu Piero ma continua a non accedere alla pagina riservata, Perchè? Non è che è dovuto al fatto che nel database la password dell'utente registrato è crittografata ( cioè non è la stessa stringa di caratteri isnerita dall'utente, ma una sequenza di caratteri alfanumerici a caso) ???
    caratteri alfanumerici a caso????

    nella tabella_registrati l'hash sara' quello che hai utilizzato per l'inserimento dei dati.

    Prova a cercare l'utente mettendo solo lo username per vedere se l'errore e' nel hashing della password. A parte il fatto che inserire direttamente i dati provenienti da POST e' una pratica che personalmente aborrisco perche' non hai nessun controllo su di essi.

    Tieni anche presente che:

    md5('$password') da un risultato diverso da md5($password)

    Altro suggerimento: stampa la query per vedere cosa e come risolvi le variabili. Stampa anche $_POST per vedere cosa ricevi. Questo si chiama fare almeno un minimo di debug.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    152
    Ho provato a eliminare il pezzo riguardante la passowrd e mi sono suciti due errori : uno l'ho corretto, l'altra è questo e non so come fare :

    Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in C:\xampp\htdocs\sitoweb\login.php on line 12

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.