Zufallspasswort erstellen für alle User |
|
Hallo,
ich habe ein Script gekauft und möchte dieses nun mit einem Login-Bereich versehen.
Dazu bräuchte ich eine Funktion, die erstmal allen Usern ein Zufallspasswort erstellt und dieses in die Datenbank einträgt (unverschlüsselt).
Ich weiß, unverschlüsselt ist nicht sicher, aber ich möchte es halt lernen und verstehen und daher erstmal unverschlüsselt.
Das Passwort soll 8 Zeichen lang sein und halt aus Buchstaben und Zahlen bestehen...
Nur leider hab ich absolut keine Ahnung, wie ich das angehen soll :-)
|
|
14.07.09 15:14 |
E-Mail
Finden
Als Freund hinzufügen
|
|
GluBBel unregistriert
|
|
|
14.07.09 15:19 |
|
|
weltenbummler
Mitglied
Dabei seit: 21.12.04
Beiträge: 13
Themenstarter
|
|
ohja, das ist ja schonmal gut...
nur wie bekomme ich es hin, dass für jeden User (es sind an die 4000) ein Passwort erstellt wird und automatisch in die Datenbank eingetragen wird?
|
|
14.07.09 15:22 |
E-Mail
Finden
Als Freund hinzufügen
|
|
GluBBel unregistriert
|
|
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
|
<?php
// Zufallspasswort erstellen
function make_passwort() {
$ranpass = "";
$alpha = array ('a','b','c','d','e','f','g','h','i','j','k','l','m',
'n','o','p','q','r','s','t','u','v','w','x','y','z',
'0','1','2','3','4','5','6','7','8','9');
srand((double)microtime()*1000000);
shuffle($alpha);
$rando = rand(5,10); // zufällige Stringlänge deffinieren (von 5 bis 10 Zeichen)
for ($z=0;$z<$rando;$z++) $carrier[$z] = next($alpha);
for ($z=0;$z<$rando;$z++) $ranpass .= $carrier[$z];
return $ranpass;
}
$userid = 1;
$sql2 = "Select * from users";
$sql2 = mysql_query($sql2);
$sql2 = mysql_num_rows($sql2);
while($sql2 > $userid) {
$oass = make_passwort();
$sql = "UPDATE `users` SET `pass` = '".$pass."' WHERE `userid` = '".$userid."' LIMIT 1 ;";
$sql = mysql_query($sql);
if($sql != true) die('Es ist ein Fehler unterlaufen');
$userid++;
}
?> |
|
Unsauber und hässlich aber zur veranschaulichung reichst
Muss jetzt zu Spaarkasse und die macht gleich zu deswegen, keine Ahnung obs klappt etc.
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von GluBBel: 14.07.09 16:25.
|
|
14.07.09 15:32 |
|
|
weltenbummler
Mitglied
Dabei seit: 21.12.04
Beiträge: 13
Themenstarter
|
|
nein, leider funktioniert es nicht :-(
und ich komm da auch nicht mit klar.
Das Feld, wo die Passwörter drinnen sind heißt passwort in der tabelle teilnehmer.
hab versucht, es anzupassen, aber es läuft nicht :-(
trotzdem ganz herzlichen Dank an dich
|
|
14.07.09 16:02 |
E-Mail
Finden
Als Freund hinzufügen
|
|
Marvin0704
PHP-Friend ;-)
Dabei seit: 24.03.07
Beiträge: 113
Herkunft: Deutschland
|
|
Hast du auch die Spaltennamen angepasst? Was kommt denn für eine Fehlermeldung?
__________________ PHP-Friends - Internet, Soft- & Hardware, Erfahrungsberichte, PHP. Unsere Artikel zum digitalen Leben.
|
|
14.07.09 16:06 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
Pilleslife
Mitglied
Dabei seit: 22.04.06
Beiträge: 446
Forenversion: 2.3; 2.1
|
|
So wie es aussieht, wurde der SQL-Befehl zuvor nciht richtig ausgeführt. Hast du überhaupt eine Verbindung zur Datenbank hergestellt?
|
|
14.07.09 16:22 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
GluBBel unregistriert
|
|
Zitat: |
Original von weltenbummler
Ja, die hab ich angepasst...
Fehlermeldung:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www/web250/html/winario/make_pass.php on line 25
Hier mein Code:
php: |
1:
|
$sql2 = mysql_num_rows($sql2); |
|
|
Ersetz mal das ganze durch
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
|
<?php
// Zufallspasswort erstellen
function make_passwort() {
$ranpass = "";
$alpha = array ('a','b','c','d','e','f','g','h','i','j','k','l','m',
'n','o','p','q','r','s','t','u','v','w','x','y','z',
'0','1','2','3','4','5','6','7','8','9');
srand((double)microtime()*1000000);
shuffle($alpha);
$rando = rand(5,10); // zufällige Stringlänge deffinieren (von 5 bis 10 Zeichen)
for ($z=0;$z<$rando;$z++) $carrier[$z] = next($alpha);
for ($z=0;$z<$rando;$z++) $ranpass .= $carrier[$z];
return $ranpass;
}
$userid = 1;
$sql2 = "Select * from users";
$sql2 = mysql_query($sql2);
$sql2 = mysql_num_rows($sql2);
while($sql2 > $userid) {
$oass = make_passwort();
$sql = "UPDATE `users` SET `pass` = '".$pass."' WHERE `userid` = '".$userid."' LIMIT 1 ;";
$sql = mysql_query($sql);
if($sql != true) die('Es ist ein Fehler unterlaufen');
$userid++;
}
?>
|
|
Und poste die Fehlermeldung. Und nicht vergessen das ganze anzupassen
|
|
14.07.09 16:27 |
|
|
|