Benutzer anlegen „am Stück“

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
yellowled
Regular
Posts: 7111
Joined: Fri Jan 13, 2006 11:46 am
Location: Eutin, Germany
Contact:

Benutzer anlegen „am Stück“

Post by yellowled »

Wie es aussieht, muss ich demnächst und vermutlich in einem Jahr noch einmal in einem Blog ziemlich viele (ca. 50-60) Benutzer anlegen, da eine Selbstregistrierung über die entsprechenden Plugins ausdrücklich nicht erwünscht ist. :roll:

Das kann ja kein Mensch von Hand machen wollen. Gibt es eine schnieke Methode, sowas (meinetwegen über ein externes PHP-Script oder MySQL, wenn's denn sein muss) zu automatisieren? (Nein, ich kann mir sowas leider nicht „mal eben selber schreiben“.)

Brecht Euch aber nicht die Finger – wenn's nur kompliziert geht, muss ich eben in den Klickflöz und das per Backend von Hand machen.

YL
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Benutzer anlegen „am Stück“

Post by garvinhicking »

Hi!

Klar, man kann via:

Code: Select all

<?php
include 'serendipity_config.inc.php';
serendipity_addAuthor($username, $password, $realname, $email, $userlevel);
anpassen. Die User könnte man z.b. auch in eine CSV Datei oder ähnliches packen, die man per fgetcsv() ausliest:

Code: Select all

include 'serendipity_config.inc.php';
$fp = fopen('benutzer.csv', 'rb');
while (($data = fgetcsv($fp)) !== FALSE) {
  serendipity_addAuthor($data[0], $data[1], $data[2], $data[3], $data[4]);
}
Das CSV müsste dann per kommagetrennt sowas beinhalten:

Code: Select all

#$username, $password, $realname, $email, $userlevel
garvin,meinpasswort,Garvin Hicking,mail@example.com,255
Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
yellowled
Regular
Posts: 7111
Joined: Fri Jan 13, 2006 11:46 am
Location: Eutin, Germany
Contact:

Re: Benutzer anlegen „am Stück“

Post by yellowled »

garvinhicking wrote:

Code: Select all

include 'serendipity_config.inc.php';
$fp = fopen('benutzer.csv', 'rb');
while (($data = fgetcsv($fp)) !== FALSE) {
  serendipity_addAuthor($data[0], $data[1], $data[2], $data[3], $data[4]);
}
Das sieht ja schon mal supersexy aus. Das könnte ich ja sogar aufbohren und die Passwörter (Sicherheitsbauchweh mal außen vor) direkt per mail() an die Benutzer schicken, also sowas in der Art hier:

Code: Select all

while (($data = fgetcsv($fp)) !== FALSE) {
  serendipity_addAuthor($data[0], $data[1], $data[2], $data[3], $data[4]);
  $message = "Your username: " . $data[0] . "\nYour password: " . $data[1] . "\n\nPlease login at http://foo.bar.de and change your password as soon as possible.";
  mail($data[3], "Your login data", $message);
}
oder? Und dann rufe ich einfach die PHP-Datei im Browser auf und zonk?

YL
yellowled
Regular
Posts: 7111
Joined: Fri Jan 13, 2006 11:46 am
Location: Eutin, Germany
Contact:

Re: Benutzer anlegen „am Stück“

Post by yellowled »

Hm, nicht ganz unwichtige Zusatzfrage: Ich verwende im System dort Benutzergruppen für die Berechtigungen. Wie funktioniert denn da die Gruppenzuweisung? Werden die alle als Standard Editor/Redakteur angelegt?

Nachtrag: Ah, die Gruppen werden leider gar nicht gesetzt, dafür funktioniert der Rest – zumindest auf meinem Testserver, harrharr – wunderbar. Gibt's irgendeine passende Funktion, mit der ich die Gruppe im gleichen Atemzug setzen könnte? (Ich such schon mal selbst, aber wer weiß, ob ich's finde …)

YL
yellowled
Regular
Posts: 7111
Joined: Fri Jan 13, 2006 11:46 am
Location: Eutin, Germany
Contact:

Re: Benutzer anlegen „am Stück“

Post by yellowled »

yellowled wrote:Gibt's irgendeine passende Funktion, mit der ich die Gruppe im gleichen Atemzug setzen könnte? (Ich such schon mal selbst, aber wer weiß, ob ich's finde …)
Ja, natürlich gibt es die. Ich werd hier noch zum PHP-Coder, meine Fresse.

Code: Select all

<?php
include 'serendipity_config.inc.php';
$fp = fopen('users.csv', 'rb');
while (($data = fgetcsv($fp)) !== FALSE) {
  $cid = serendipity_addAuthor($data[0], $data[1], $data[2], $data[3], $data[4]);

  $groups = array("1");
  serendipity_updateGroups($groups, $cid);

  $message = "Your username: " . $data[0];
  $message .= "\nYour password: " . $data[1];
  $message .= "\n\nPlease login at http://foo.bar.de and change your password as soon as possible.";

  $from = "From: mail@example.com";

  mail($data[3], "Your login data", $message, $from);
}
Das ist jetzt natürlich ziemlich krude, weil z.B. die Gruppen-ID hart einkodiert ist, aber für mich tut das. Schaut nochmal jemand drüber, ob das halbwegs vertretbar ist? Danke. (die .php/.csv-Dateien würde ich nach Benutzung einfach wieder vom Server werfen.)

YL
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Benutzer anlegen „am Stück“

Post by garvinhicking »

Hi!

Die GruppenID kannst Du durchaus auch in die CSV-Datei reinpacken und dann per $data[x] zuweisen...

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
yellowled
Regular
Posts: 7111
Joined: Fri Jan 13, 2006 11:46 am
Location: Eutin, Germany
Contact:

Re: Benutzer anlegen „am Stück“

Post by yellowled »

garvinhicking wrote:Die GruppenID kannst Du durchaus auch in die CSV-Datei reinpacken und dann per $data[x] zuweisen...
Äh, ja. Hätte man drauf kommen können … :mrgreen:

Danke Dir sehr!

YL
mattsches
Regular
Posts: 440
Joined: Sat Nov 05, 2005 9:35 pm
Location: Wiesbaden, Germany
Contact:

Re: Benutzer anlegen „am Stück“

Post by mattsches »

(Notiert für Metatron)
yellowled
Regular
Posts: 7111
Joined: Fri Jan 13, 2006 11:46 am
Location: Eutin, Germany
Contact:

Re: Benutzer anlegen „am Stück“

Post by yellowled »

mattsches wrote:(Notiert für Metatron)
Würde mir hier übrigens (glaube ich) dank des „günstigen“ Hostingpaketes nichts nützen, ist aber generell sicherlich sehr sinnvoll. Eventuell könnte man dann auch einen Zufallsgenerator für temporäre Passwörter einbauen?

YL
Post Reply