- Home
- Categorie
- Coding e Sistemistica
- PHP
- Random password in database
-
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]
-
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.
-
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.
-
appunto. Io volevo capire come usare un array per inserire questa variabile (che cambia) per ogni campo.
Grazie.
-
Prego! Ciao Ciao
-
Sups, potresti postarmi un codice da cui prendere spunto per fare quello che voglio io?
-
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]
-
@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]Testato funziona tutto al perfezione
-
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
-
@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
Di niente Sups sempre disponibile per i test !!!