• User Attivo

    Come generatore di password casuali puoi implementare 1 semplice funzione.

    [PHP]
    function MakePassword() {
    //Sostituire "..." con i caratteri compresi nella password
    $tutto = Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d",...,"z");

    //Sostituire "x" con la lunghezza dell'Array (Es. 15)
    //$a ... $f = Lunghezza della password
    $a = rand(1,x);
    $b = rand(1,x);
    $c = rand(1,x);
    $d = rand(1,x);
    $e = rand(1,x);
    $f = rand(1,x);

    $pass = $tutto[$a] . $tutto** . $tutto . $tutto[$d] . $tutto . $tutto;
    return $pass;
    }

    echo MakePassword();
    [/PHP]

    :ciauz:


  • Super User

    Ciao, scusatemi non mi sono spiegato bene.
    Ho già una classe per la creazione della password casuale, solo che
    avendo un database volevo creare un array per inserire queste password casuali in questi record.
    Grazie.


  • User Attivo

    Allora il tuo problema non è il PHP ma l'SQL.

    Se vuoi inserire una password casuale nel DB devi usare l'istruzione:

    INSERT INTO nome_tabella SET campo=valore;
    $random = mysql_query("INSERT INTO hotel1 SET code='$password'");

    L'espressione che utilizzi "UPDATE" se non seguita da un condizionale "WHERE" sovrascrive sempre lo stesso dato sulla stessa casella ad ogni iterazione.


  • Super User

    appunto. Io volevo capire come usare un array per inserire questa variabile (che cambia) per ogni campo.
    Grazie.


  • User Attivo

    Prego! 🙂 Ciao Ciao 😉


  • Super User

    Sups, potresti postarmi un codice da cui prendere spunto per fare quello che voglio io?


  • User Attivo

    Ecco un codice PHP, non l'ho provato, ma dovrebbe funzionare:

    [php]
    <?php

    //Variabili Globali
    $db_host = "localhost";
    $db_user = "root";
    $db_pass = "bo";
    $db_name = "my_db";

    //Funzioni
    function createRandomPassword() {

    $chars = "abcdefghijkmnopqrstuvwxyz023456789";
    srand((double)microtime()*1000000);
    $i = 0;
    $pass = '' ;
    
    while ($i <= 7) {
        $num = rand() % 33;
        $tmp = substr($chars, $num, 1);
        $pass = $pass . $tmp;
        $i++;
    }
    
    return $pass;
    

    }

    function ins_pass($pass) {

    $db_link = mysql_connect($db_host, $db_user, $db_pass)
        or die("Errore Durante la Connessione");
    
    if(($query_ret = mysql_select_db($db_name)) == FALSE) {
        echo "Impossibile Accedere al DataBase";
        exit();
    }
    
    $query_ret = mysql_query("INSERT INTO hotel1 SET code='$pass';";
    
    mysql_close($db_link);
    
    return $query_ret;
    

    }

    //Main
    $db_link = mysql_connect($db_host, $db_user, $db_pass)
    or die("Errore Durante la Connessione");

    if(($query_ret = mysql_select_db($db_name)) == FALSE) {
        echo "Impossibile Accedere al DataBase";
        exit();
    }
     
    $sqlpg ="SELECT * FROM hotel1";
     $risultatipg = mysql_query($sqlpg) or die("Error #". mysql_errno() . ": " . mysql_error());
    
     while ($row = mysql_fetch_array($risultatipg))
     {
          $password = createRandomPassword();
          $ret = ins_pass($password);
     }
    
    mysql_free_result($risultatipg);
    mysql_close($db_link);
    

    }
    ?>
    [/php]:ciauz:


  • User Attivo

    @Sups said:

    Ecco un codice PHP, non l'ho provato, ma dovrebbe funzionare:

    [php]
    <?php

    //Variabili Globali
    $db_host = "localhost";
    $db_user = "root";
    $db_pass = "bo";
    $db_name = "my_db";

    //Funzioni
    function createRandomPassword() {

    $chars = "abcdefghijkmnopqrstuvwxyz023456789";
    srand((double)microtime()*1000000);
    $i = 0;
    $pass = '' ;
    
    while ($i <= 7) {
        $num = rand() % 33;
        $tmp = substr($chars, $num, 1);
        $pass = $pass . $tmp;
        $i++;
    }
    
    return $pass;
    

    }

    function ins_pass($pass) {

    $db_link = mysql_connect($db_host, $db_user, $db_pass)
        or die("Errore Durante la Connessione");
    
    if(($query_ret = mysql_select_db($db_name)) == FALSE) {
        echo "Impossibile Accedere al DataBase";
        exit();
    }
    
    $query_ret = mysql_query("INSERT INTO hotel1 SET code='$pass';";
    
    mysql_close($db_link);
    
    return $query_ret;
    

    }

    //Main
    $db_link = mysql_connect($db_host, $db_user, $db_pass)
    or die("Errore Durante la Connessione");

    if(($query_ret = mysql_select_db($db_name)) == FALSE) {
        echo "Impossibile Accedere al DataBase";
        exit();
    }
     
    $sqlpg ="SELECT * FROM hotel1";
     $risultatipg = mysql_query($sqlpg) or die("Error #". mysql_errno() . ": " . mysql_error());
    
     while ($row = mysql_fetch_array($risultatipg))
     {
          $password = createRandomPassword();
          $ret = ins_pass($password);
     }
    
    mysql_free_result($risultatipg);
    mysql_close($db_link);
    

    }
    ?>
    [/php]:ciauz:

    Testato funziona tutto al perfezione :vaiii:


  • User Attivo

    Funzione bene, c ho messo 2 minuti per scriverlo e non ho avuto tempo di vederlo in azione, xò ero sicuro della sua correttezza lessicale e semantica 😄

    Grazie D-royal x i test :ciauz:


  • User Attivo

    @Sups said:

    Funzione bene, c ho messo 2 minuti per scriverlo e non ho avuto tempo di vederlo in azione, xò ero sicuro della sua correttezza lessicale e semantica 😄

    Grazie D-royal x i test :ciauz:

    Di niente Sups sempre disponibile per i test !!! :vai: