Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    10

    problema encrypting password

    Ciao Forum,
    anche oggi sono dinanzi ad un problema ... sto creando una sezione per login in un cms. Il problema si presenta quando devo inserire il tipi di encripting password, mi spiego meglio; guardate questo codice richiamante una pagina di login utente:
    codice:
    	if (isset($_POST["submit"]))
    	{
    		$Usr = $_POST['Username'];
    		$Pwd = $_POST['Password'];
    		
    		$query = "SELECT * FROM tblutenti ";
    		$query .= "WHERE Username = '{$Usr}' ";
    		$query .= "AND Password = '{$Pwd}' ";
    		
    		$Risultato = mysql_query($query, $conn);
    ______________________

    Bene.. se io effettuo la registrazione in un'altra pagina inserisco in una parte il codice sottostante:

    codice:
    		{
    			$Usr = $_POST['Utente'];
    			$Pwd = $_POST['Password'];
    
                            $query = "INSERT INTO tblutenti ";
    			$query .= "(Username, Password) ";
    			$query .= " values ('" . $Usr ."', '" . $Pwd . "')";
    			
    			$Risultato = mysql_query($query, $conn);
    _________________________________

    FIN qui tutto bene ... mi registra l'utente correttamente..se effettuo il login va alla grande ... il problema però sorge quando desidero effettuare l'encryptin password (sia nella registrazione che nel login). Ora vi posto i codici c

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    10
    FIN qui tutto bene ... mi registra l'utente correttamente..se effettuo il login va alla grande ... il problema però sorge quando desidero effettuare l'encryptin password (sia nella registrazione che nel login). Ora vi posto i codici con tentativo mio (andato a male) di encryptig password.
    Il codice qui sotto è quello per il login:
    codice:
    	        {
    		$Usr = $_POST['Username'];
    		$Pwd = sha1 ($_POST['Password']);
    		
    		$query = "SELECT * FROM tblutenti ";
    		$query .= "WHERE Username = '{$Usr}' ";
    		$query .= "AND Password = '{$Pwd}' ";
    		
    		$Risultato = mysql_query($query, $conn);
    Il codice qui sotto è quello per la registrazione:
    codice:
    {
    			$Usr = $_POST['Utente'];
    			$Pwd = sha1 ($_POST['Password']); 
    		
    			$query = "INSERT INTO tblutenti ";
    			$query .= "(Username, Password) ";
    			$query .= " values ('" . $Usr ."', '" . $Pwd . "')";
    			
    			$Risultato = mysql_query($query, $conn);
    _______________________________

    Se provo a registrarmi lo fa, va tutto bene, entro in MySql ed in effetti la password risulta codificata (in encrypting), però il PROBLEMA si presenta quando effettuo il login che mi da sempre come errore: "Username e/o password errati", nonostante inserisca username e password un secondo prima registra

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    10
    Se provo a registrarmi lo fa, va tutto bene, entro in MySql ed in effetti la password risulta codificata (in encrypting), però il PROBLEMA si presenta quando effettuo il login che mi da sempre come errore: "Username e/o password errati", nonostante inserisca username e password un secondo prima registrati correttamente. Come specificato sin dall'inizio, se provo a registrarmi e fare il login senza utilizzare metodo di encrypting (vedi terzo e quarto nei pezzi di codice di esempio), tutto funziona alla grande ... il problema nasce nel momento in cui provo ad inserire nel codice l'encrypting (sia con sha1 o con md5 - vedi primi due pezzi di codice)

    Voi sapete come uscirne fuori e perchè si presenta questo problema sia con l'encrypting password (sha1) che con il tipo md5 (io uso windows 7 - 64bit, con easyphp 5.2.10)

    PS .. ho postato solo la parte di codice che io ritengo sia quella incriminata del mancato funcionamento .. se dovesse servire tutto il codice di entrambe le pagine ditemelo che lo riporto immediatamente.

    1000 grazie

    PS: perche non riesco ad inviar tutto il messaggio in un solo post e mi da sempre errore ?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    10
    ... qualcuno che possa aiutarmi ? :-(

  5. #5
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,264
    Stampa la query che esegui da codice, poi eseguila su mysql e vedi se funziona.
    Quanto hai fatto grande il campo password?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    10
    ciao uranio, e grazie per l'aiuto ... pero non comprendo il tuo consiglio.. ti posto tutto il codice ... come detto se io non uso sha1 o mda (in entrambi i file di registrazione utente e di login) tutto funciona .. prima l'utente si regitra (nella pagina di registrazione utente), vado in mysql ed in effetti tutto è arrivato a destinazione e se provo ad effettuare il login (nella pagina del login utente) mi fa accedere... Avendo notato in phpmyadmin che le passord non sono criptate, indi tutti le possono vedere ho deciso di inserire un encryptin password (con sha1) ... l'ho provato e in effetti in phpmyadmin leggevo la password criptata, il problema si presenta con il login utente dopo la registrazione utente (con entrambi i file cambiati con l'inserimento dell' encrypting password con sha1). In pratica i codici che ti ho postato sopra (senza encryptin) e gli ultimi due (con l'encrypting) sono le operazioni che ho eseguito (senza successo). Non ho postato l'intero codice di entrambi i files (registrazione_utente e login) perchè i pezzi di codice incriminato sono quelli che io ho evidenziato (solo li ho apportato le modifiche con l'aggiunta del sha1). Non so come risolvere questo problema ch euna volta criptata la password non mi permette di accedere al login, mi da come risultato (username o password errati) ... e non so come procedere. Per questo ho chiesto aiuto a questo magnifico forum di esperti del settore.

    PAGINA DI LOGIN:

    codice:
    <?php include("include/conn.php"); ?>
    <?php
    	if (!isset($_GET["menuid"]))
    	{
    		$IdMenu = "";
    		$Nome_Menu = "HomePage";
    		$PosMenu = 0;
    	}
    	else
    	{
    		$IdMenu = $_GET["menuid"];	
    	}
    	
    	if (isset($_POST["submit"]))
    	{
    		$Usr = $_POST['Username'];
    		$Pwd = sha1 ($_POST['Password']);
    		
    		$query = "SELECT * FROM tblutenti ";
    		$query .= "WHERE Username = '{$Usr}' ";
    		$query .= "AND Password = '{$Pwd}' ";
    		
    		$Risultato = mysql_query($query, $conn);
    			
    		if (!$Risultato)
            {
               	die("La tabella selezionata non esiste " . mysql_error());
            }
    
    		if (mysql_num_rows($Risultato) == 1)
    		{
    			//Ricerca utente andata a buon fine
    			$messaggio = "Utente trovato login effettuato"; // per il corso c'era il . prima dell' = (così: .= )
    			$trovato   = mysql_fetch_array($Risultato);
    		}
    		else
    		{
    			//Ricerca non riuscita
    			$messaggio = "Username e/o password errati";
    		}
    	}				
    ?>
    <?php include("include/header.php"); ?>
          <td width="200" height="100%" bgcolor="#FF0000">
            <table width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td></td>
              <td>
    			<?php
                    $Risultato=mysql_query("select * from tblmenu order by Posizione", $conn);
                    if (!$Risultato)
                    {
                        die("La tabella selezionata non esiste " . mysql_error());
                    }
                    
                    while ($riga=mysql_fetch_array($Risultato))
                    {
                	   if ($IdMenu <> $riga['ID'])
    				   {
    				   echo "
    
    " . $riga['Nome_menu'] . "</p>";
    				   }
    				   else
    				   {
    				   $Nome_Menu = $riga[Nome_menu];
    				   echo "
    
    " . $riga[Nome_menu] . "</p>";
    				   }
    			    }
                ?>      
    		  </td>
    		  <td></td>
            </tr>
            </table>
          </td>
          <td height="100%" bgcolor="#9933FF">
    		<table width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td></td>
              <td>
              
    
    Pagina di login</p>
    		  	<?php 
    				if (!empty($messaggio))
    				{			
    					echo "
    
    " . $messaggio . "</p>";
    				}
    			?>
              <form id="form1" name="form1" method="post" action="login2.php">
                <label>Username
                <input type="text" name="Username" id="Username" />
                </label>
    
    
                <label>Password
                <input type="password" name="Password" id="Password" />
                </label>            
                
    
    
                  <input type="submit" name="submit" id="submit" value="Invia" />
                </p>
              </form>
              </td>
            </tr>
            </table>
          </td>
    <?php include("include/footer.php"); ?>
    <?php include("include/close.php"); ?>
    PAGINA DI REGISTRAZIONE UTENTE

    codice:
    <?php include("include/conn.php"); ?>
    <?php
    	if (!isset($_GET["menuid"]))
    	{
    		$IdMenu = "";
    		$Nome_Menu = "HomePage";
    		$PosMenu = 0;
    	}
    	else
    	{
    		$IdMenu = $_GET["menuid"];	
    	}
    	
    	if (isset($_POST["submit"]))
    	{
    		$errori=array();
    		
    		if (!isset($_POST['Utente']) || empty($_POST['Utente']))
    		{
    			$errori[]='Utente';
    		}
    	
    		if (!isset($_POST['Password']) || empty($_POST['Password']))
    		{
    			$errori[]='Password';
    		}
    		
    		if (!empty($errori))
    		{
    			$messaggio = "Errore nella compilazione dei campi del form";
    		}
    		else
    		{
    			$Usr = $_POST['Utente'];
    			$Pwd = sha1 ($_POST['Password']); 
    
    			$query = "INSERT INTO tblutenti ";
    			$query .= "(Username, Password) ";
    			$query .= " values ('" . $Usr ."', '" . $Pwd . "')";
    			
    			$Risultato = mysql_query($query, $conn);
    			
    			if (mysql_affected_rows() == 1)
    			{
    				//Update andato a buon fine
    				$messaggio = "Nuovo utente inserito";
    			}
    			else
    			{
    				//Update non riuscito
    				$messaggio = "Inserimento non riuscito";
    				$messaggio .= "
    " . mysql_error();
    			}
    		}				
    	}	
    ?>
    <?php include("include/header.php"); ?>
          <td width="200" height="100%" bgcolor="#FF0000">
            <table width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td></td>
              <td>
    			<?php
                    $Risultato=mysql_query("select * from Tblmenu order by Posizione", $conn);
                    if (!$Risultato)
                    {
                        die("La tabella selezionata non esiste " . mysql_error());
                    }
                    
                    while ($riga=mysql_fetch_array($Risultato))
                    {
                	   if ($IdMenu <> $riga['ID'])
    				   {
    				   echo "
    
    " . $riga['Nome_menu'] . "</p>";
    				   }
    				   else
    				   {
    				   $Nome_Menu = $riga[Nome_menu];
    				   echo "
    
    " . $riga[Nome_menu] . "</p>";
    				   }
    			    }
                ?>      
    		  </td>
    		  <td></td>
            </tr>
            </table>
          </td>
          <td height="100%" bgcolor="#9933FF">
    		<table width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td></td>
              <td>
              
    
    Creazione nuovo utente</p>
    		  	<?php 
    				if (!empty($messaggio))
    				{			
    					echo "
    
    " . $messaggio . "</p>";
    					
    					if (!empty($errori))
    					{
    						foreach($errori as $campoerrore)
    						{
    							echo "* " . $campoerrore . "
    ";
    						}
    					}
    				}
    			?>
              <form id="form1" name="form1" method="post" action="newuser2.php">
                <label>Utente
                <input type="text" name="Utente" id="Utente" />
                </label>
    
    
                <label>Password
                <input type="password" name="Password" id="Password" />
                </label>            
                
    
    
                  <input type="submit" name="submit" id="submit" value="Invia" />
                </p>
              </form>
              </td>
            </tr>
            </table>
          </td>
    <?php include("include/footer.php"); ?>
    <?php include("include/close.php"); ?>

  7. #7
    guarda che uranio ti ha detto due cose semplicissime:

    1) fatti stampare da php la query di select e di update (con l'encrypting ovviamente) e poi eseguile direttamente in mysql (o tramite phpmyadmin)... se lì funzionano, allora il problema è altrove

    2) alla domanda "quant'è lungo il campo password" potresti provare a rispondere... nel senso:

    se non erro, con md5 tutto quello che codifichi prende 64 caratteri.. anche se fai md5('p') avrai una stringa di 64 caratteri, cos'ì come se fai md5('del poema epico più lungo del mondo')... se il tuo campo password è settato a 30, magari mysql non ti dà errore però taglia la parola che stai inserendo, quindi la login non funzionerà mai... peggio mi sento con sha1...
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    10
    Il problema sembra risolto grazie all'intuizione di uranio e santino ... mi sono accorto che di base avevo impostato in phpmyadmin un valore di 20 al campo password (normale le password così si spezzavo e non venivano riconosciute). Ho cambiato il valore da 20 a 50 in phpmyadmin, ed ho provato a fare prima la registrazione e dopo il login ...La registrazione è avvenuta correttamente (ovvio in phpmyadmin il campo password adesso risulta molto più lungo) e subito dopo ho provato il login: .... me lo ha eseguito!

    Meno male che ci siete voi.

    Grazie di cuore

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.