Seite 1 von 1

Viele Frontend-User importieren

Verfasst: Do 27. Mär 2008, 16:40
von woddel
Hallo!

Ich habe eine excel-tabelle mit 964 (!) login/passwortkombinationen vom kunden bekommen.

der hätte die jetzt gerne als frontend-user.

zu fuß mach ich das nicht. :(

ich bin jetzt erstmal ziemlich ratlos - wahrscheinlich kann ich das ganze per phpmyadmin als csv reinladen - oder?

aber soweit ich weiss sind die passwörter ja verschlüsselt in der db.

gibt es einen "rüttelwürger" der mir die verschlüsselt, damit ich sie dann hochladen kann?

und ist es mit dem hochladen getan?

oder hat jemand einen schlaueren tip.

schonmal danke für jeden tip.

Verfasst: Do 27. Mär 2008, 17:13
von MichFress
Die Passwörter sind, soweit ich weiß mit md5 verschlüsselt...
Da käme mir spontan folgende Lösung in den Sinn:
über phpmyadmin die Excel-Tabelle in die DB importieren und dann mittels einer Query in die Frontenduser-Tabelle übertragen...

in etwa:

Code: Alles auswählen

INSERT INTO con_frontenduser (name, pw) VALUES (SELECT name, md5(pw) FROM excel_import_tabelle)

Verfasst: Do 27. Mär 2008, 17:25
von woddel
Hmm - das klingt ja schonmal ganz interessant.

Ich bin leider kein großer in sachen sql-syntax. :oops:

md5 ist eine verschlüssel-funktion vom mysql?

so wie ich das verstanden habe sollte ich das also nicht direkt in die frontend-user tabelle übertragen, sondern erstmal extra anlegen?

mir ist leider die anwendung deines codes noch nicht ganz klar.

wie zeig ich dem code denn welche excel-tabelle er laden soll?

Verfasst: Do 27. Mär 2008, 18:03
von rbi
Speichere die Liste als CSV und mach dir ein Modul, das in etwa so aussieht:

Code: Alles auswählen

<?php
$oFrontendUserCollection = new FrontendUserCollection();
$handle = fopen ("somewhere/liste.csv","r");
while ( ($data = fgetcsv ($handle, 1000, ";")) !== false ) {
	if (!$oFrontendUserCollection->userExists($data[0])) { // $data[0] ist der username
	    $oFrontendUser = $oFrontendUserCollection->create($data[0]);
	    $oFrontendUser->set('password', $data[1]); // $data[1] ist das passwort
	    $oFrontendUser->set('active', 1);
	    $bReturn = $oFrontendUser->store();
	}
}
fclose ($handle);
?>

Verfasst: Do 27. Mär 2008, 19:12
von woddel
Ui!

Ist ja schick! :shock:

ich werde es ausprobieren.

Danke!

Nachgefragt

Verfasst: Fr 11. Apr 2008, 14:15
von MakD42
... und hat der Import mit dem Modul so geklappt?
Habe nämlich auch nur 867 User zu importieren und
kann auch nich-so-gut sql-ísch :lol:

15000 Einträge aber wie?

Verfasst: So 1. Jun 2008, 02:05
von jdstrike
Servus zusammen,

ich hab eine datei auf der datenbank liegen mit 15000 Usern, das Problem ist, das Passwort ist nicht mit md5 verschlüsselt
wenn ich dies durch diese abfrage versuche, taucht dieser Fehler auf:
Fehler

SQL-Befehl: Dokumentation

INSERT INTO con_frontenduser( `idfrontenduser` , `idclient` , `username` , `password` , `active` , `author` , `created` , `modified` , `modifiedby` , `valid_from` , `valid_to` )
VALUES (

SELECT `idfrontenduser` , `idclient` , `username` , MD5( `password` ) , `active` , `author` , `created` , `modified` , `modifiedby` , `valid_from` , `valid_to`
FROM con_frontenduser_zs
)

MySQL meldet: Dokumentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT `idfrontenduser`, `idclient`, `username`, MD5(`password`), `active`, `aut' at line 1
Jemand ne Idee wie ich die 15000 Einträge mit md5 in die Datenbank bekomme? hab sie auch als excel datei.

Bin über jeden Ratschlag dankbar.

LG
jdstrike

Verfasst: So 1. Jun 2008, 03:15
von jdstrike
Ich nochmal die Frage hat sich jetzt erledigt!
So klappt es:

Code: Alles auswählen

INSERT INTO con_frontendusers (idfrontenduser, idclient, username, password, active, author, created, modified, modifiedby, valid_from, valid_to) VALUES (1, 1, 'admin', md5('admin'), 1, md5('sysadmin'), '2008-05-30 01:05:56', '2008-05-30 01:05:56', md5('sysadmin'), '0000-00-00 00:00:00', '0000-00-00 00:00:00');
LG
jdstrike