+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Benutzer per Script anlegen

  1. #1
    Neu an Board
    Registriert seit
    11.09.2005
    Beiträge
    12
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard Benutzer per Script anlegen

    Hallo,

    ich wollte für mein Portal gleich einmal mehrere Hundert User anlegen. Da mir das zusammenklicken etwas zu kompliziert gewesen wäre habe ich ein kleines Script gebastelt und stelle es mal hier rein.
    Vielleicht kann es ja noch jemand gebrauchen. Getestet ist es mit Mambo 4.5.2.3.

    Fragen beantworte ich gerne. Für Leute die kein PHP beherrschen, bastel ich auch gerne noch eine Eingabemaske, wenn der Bedarf da ist.

    Vielleicht gibt es ja auch ein paar Leute die die Funktionsweise testen würden und Verbesserungen vorschlagen.

    Habe es selber einmal mit 500 Usern getestet und es funktionierte tadellos.

    Die Benutzernamen fangen bei 0001 an und werden dann um einen Schritt hochgezählt. Bei den Namen ist es ebenso.

    Die E-Mail-Adresse ist hier nur als Test mit eingearbeitet worden.
    Das Passwort kann man natürlich auch noch für jeden Benutzer ändern.

    Falls das Script großen Anklang findet werde ich Änderungen gerne einbinden.


    Also bis dahin.

    S.

    PHP-Code:
    <?php
    // Datenbankeinstellungen
    $host                               =   "localhost";
    $user                               =   "root";
    $pass                               =   "passwort";
    $database                           =   "datenbank";

    // Tabellennamen
    $table_mos_users                    =   "mos_users";
    $table_mos_core_acl_aro             =   "mos_core_acl_aro";
    $table_mos_core_acl_groups_aro_map  =   "mos_core_acl_groups_aro_map";
    $table_mos_core_acl_aro_groups      =   "mos_core_acl_aro_groups";

    // Anzahl der neuen Benutzer
    $zahl_der_user 500;

    // Verbindung zur Datenbank herstellen
    $db = @mysql_connect($host$user$pass);

    // Name(fortlaufende Nummer)
    $mos_users_name 0001;

    // Benutzername(fortlaufende Nummer)
    $mos_users_username 0001;

    // E-Mail
    $mos_users_email "test1@test1.de"

    // Zähler für die E-Mailadressen
    $zaehler 1;                       

    // Passwort
    $mos_users_password md5("Geheim"); 

    // Gruppenname
    $mos_users_usertype "Registered"
    $mos_users_block 0;
    $mos_users_sendEmail 0;

    // höchste id der Tabelle mos_users auslesen
    if($db)
    {
      if(@
    mysql_select_db($database$db))
      {
        
    $sql_mos_user_id "SELECT MAX(id) FROM $table_mos_users";
        
    $mos_users_id = @mysql_query($sql_mos_user_id);
        
    $row = @mysql_fetch_row($mos_users_id);
        
    $mos_users_id $row[0];
      }
    }

    // group_id aus der Tabelle mos_core_acl_aro_groups
    // Siehe Gruppenname
    if($db)
    {
      if(@
    mysql_select_db($database$db))
      {
        
    $sql_mos_users_gid "SELECT $table_mos_core_acl_aro_groups.group_id FROM $table_mos_core_acl_aro_groups ";
        
    $sql_mos_users_gid .= "WHERE $table_mos_core_acl_aro_groups.name='$mos_users_usertype' ";
        
    $mos_users_gid = @mysql_query($sql_mos_users_gid);
        
    $row = @mysql_fetch_row($mos_users_gid);
        
    $mos_users_gid $row[0];
      }
    }

    // höchste id der Tabelle mos_core_acl_aro auslesen
    if($db)
    {
      if(@
    mysql_select_db($database$db))
      {
        
    $sql_mos_core_acl_aro_aro_id "SELECT MAX(aro_id) FROM $table_mos_core_acl_aro";
        
    $mos_core_acl_aro_aro_id = @mysql_query($sql_mos_core_acl_aro_aro_id);
        
    $row = @mysql_fetch_row($mos_core_acl_aro_aro_id);
        
    $mos_core_acl_aro_aro_id $row[0];
      }
    }
    // Registrierungsdatum
    $mos_users_registerDate date("Y-m-d H:i:s");
    $mos_users_lastvisitDate "0000-00-00 00:00:00";
    $mos_users_activation "";
    $mos_users_params "";
    $mos_core_acl_aro_section_value "users";
    // gleich $mos_users_id setzen
    $mos_core_acl_aro_value $mos_users_id;
    $mos_core_acl_aro_order_value "";
    // gleich $mos_users_name setzen
    $mos_core_acl_aro_name $mos_users_name;
    $mos_core_acl_aro_hidden "";
    // gleich $mos_users_gid setzen
    $mos_core_acl_groups_aro_map_group_id $mos_users_gid;
    $mos_core_acl_groups_aro_map_section_value "";
    // gleich $mos_core_acl_aro_aro_id setzen
    $mos_core_acl_groups_aro_map_aro_id $mos_core_acl_aro_aro_id;
    // DB-Abfragen
    $sql_abfrage_mos_users "INSERT INTO `mos_users` (`id`, `name`, `username`, `email`, `password`, `usertype`, `block`, `sendEmail`, `gid`, `registerDate`, `lastvisitDate`, `activation`, `params`) VALUES (67, '0002', '0002', 'test2@test2.de', '255e88d20562e9b63f53d6684309ebb6', 'Registered', 0, 0, 18, '2005-09-05 00:43:22', '0000-00-00 00:00:00', '', '')";
    $sql_abfrage_mos_core_acl_aro "INSERT INTO `mos_core_acl_aro` (`aro_id`, `section_value`, `value`, `order_value`, `name`, `hidden`) VALUES (14, 'users', '66', 0, '0001', 0)";
    $sql_abfrage_mos_core_acl_groups_aro_map "INSERT INTO `mos_core_acl_groups_aro_map` (`group_id`, `section_value`, `aro_id`) VALUES (18, '', 14);";

    if(
    $db)
    {
      if(@
    mysql_select_db($database$db))
      {
        for(
    $i 1$i <= $zahl_der_user$i++)
        {
          
    $mos_users_id++;
          
    $mos_users_name++;
          
    $mos_users_name sprintf("%04d",$mos_users_name);
          
    $mos_users_username++;
          
    $mos_users_username sprintf("%04d",$mos_users_username);
          
    $zaehler++;
          
    $mos_users_email "test".$zaehler."@test".$zaehler.".de";
          
    $sql_insert_mos_users "INSERT INTO $table_mos_users (`id`, `name`, `username`, `email`, `password`, `usertype`, `block`, `sendEmail`, `gid`, `registerDate`, `lastvisitDate`, `activation`, `params`) ";
          
    $sql_insert_mos_users .= "VALUES ('$mos_users_id', '$mos_users_name', '$mos_users_username', '$mos_users_email', '$mos_users_password', '$mos_users_usertype', '$mos_users_block', '$mos_users_sendEmail', '$mos_users_gid', '$mos_users_registerDate', '$mos_users_lastvisitDate', '$mos_users_activation', '$mos_users_params')";
          
    mysql_query($sql_insert_mos_users);

          
    $mos_core_acl_aro_aro_id++;
          
    $mos_core_acl_aro_value++;
          
    $mos_core_acl_aro_name++;
          
    $mos_core_acl_aro_name sprintf("%04d",$mos_core_acl_aro_name);
          
    $sql_insert_mos_core_acl_aro "INSERT INTO $table_mos_core_acl_aro (`aro_id`, `section_value`, `value`, `order_value`, `name`, `hidden`) ";
          
    $sql_insert_mos_core_acl_aro .= "VALUES ('$mos_core_acl_aro_aro_id', '$mos_core_acl_aro_section_value', '$mos_core_acl_aro_value', '$mos_core_acl_aro_order_value', '$mos_core_acl_aro_name', '$mos_core_acl_aro_hidden')";
          
    mysql_query($sql_insert_mos_core_acl_aro);

          
    $mos_core_acl_groups_aro_map_aro_id++;
          
    $sql_insert_mos_core_acl_groups_aro_map "INSERT INTO $table_mos_core_acl_groups_aro_map (`group_id`, `section_value`, `aro_id`) ";
          
    $sql_insert_mos_core_acl_groups_aro_map .= "VALUES ('$mos_core_acl_groups_aro_map_group_id', '$mos_core_acl_groups_aro_map_section_value', '$mos_core_acl_groups_aro_map_aro_id')";
          
    mysql_query($sql_insert_mos_core_acl_groups_aro_map);
        }
      }
    }
    ?>

  2. #2
    War schon öfter hier
    Registriert seit
    02.08.2005
    Beiträge
    131
    Bedankte sich
    1
    Erhielt 16 Danksagungen
    in 13 Beiträgen

    Standard

    Schön und gut, aber warum sollte jemand einfach so 500 user erstellen die im Prinzip gar nicht existieren?
    Ich erkenne keinen Sinn in diesem Script

  3. #3
    Neu an Board
    Registriert seit
    11.09.2005
    Beiträge
    12
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    warum sollte jemand einfach so 500 user erstellen die im Prinzip gar nicht existieren?
    Die existierten natürlich. Ich habe für einen Kunden eine Webseite auf Mambo umgestellt und den Usern des Kunden sollten auf der Webseite zusätzliche Informationen zur Verfügung gestellt werden. Sie sollten sich mit ihrer Kundennummer als Benutzernamen und alle mit dem gleichen Passwort einloggen(ja ich weiß, ist nicht das wahre, aber der Kunde ist König). Die E-Mail-Adresse war in dem Fall nicht erheblich. Es ging wirklich nur um die Anzeige von zusätzlichen Informationen, wenn der User sich eingeloggt hatte.

    Eine Weiterentwicklung des Scripts wäre das auslesen einer CSV-Datei mit den notwendigen Informationen, wie E-Mail, Name, Passwort u.s.w.

    Aber wenn, so wie du schreibst, das Script keinen Sinn für andere bringt, mache ich mir die Arbeit auch nicht.


    S.

  4. #4
    Moderator Avatar von holmi
    Registriert seit
    30.08.2004
    Ort
    Harz
    Beiträge
    6.502
    Bedankte sich
    92
    Erhielt 1.234 Danksagungen
    in 1.133 Beiträgen

    Standard

    Wenn man eine CVS Datei als grundlage nehmen kann, werden sich sicher Anwender finden, diese Frage kam schon öfter im Forum.

    Björn
    Problem gelöst? Dann markiere den Thread mit [GELÖST]

  5. #5
    Neu an Board
    Registriert seit
    08.10.2004
    Beiträge
    32
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hallo
    Wenn man als Quelle eine Datei nehmen könnte, würde ich als erster "hier" schreien.

    bb
    Heiko

  6. #6
    Neu an Board
    Registriert seit
    11.09.2005
    Beiträge
    12
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hallo,

    hier ein erster Versuch, mit der Möglichkeit, die User aus einer CSV-Datei auszulesen. Die Datei muss dazu im selben Verzeichnis liegen und muss folgenden Aufbau haben: Name;Username;E-Mail;Passwort

    Das Passwort muss im Klartext in der CSV-Datei vorliegen, weil es hier im Script verschlüsselt wird und dann in die DB eingetragen wird.

    Ein bereits verschlüsseltes Passwort würde sonst nochmals verschlüsselt.

    Fragen beantworte ich hier weiterhin gern. Getestet habe ich es übrigens mit Mambo 4.5.2.3. Es sollte aber auch mit den Joomla-Versionen funktionieren.
    Man muss dann nur die Tabellennamen anpassen.

    Bin auf Feedback gespannt.

    S.

    PHP-Code:
    <?php
    /*
    Script zur Erstellung von Public Frontend Benutzern

    Das Script nutzt als Quelle eine CSV-Datei.

    Aufbau der CSV-Datei:
    Name;Username;E-Mail;Passwort
    */

    // Datenbankeinstellungen
    $host                               =   "localhost";
    $user                               =   "root";
    $pass                               =   "passwort";

    $database                           =   "db_name";

    // CSV-Datei angeben
    $csv_datei                          =   "test.csv";

    // Tabellennamen
    $table_mos_users                    =   "mos_users";
    $table_mos_core_acl_aro             =   "mos_core_acl_aro";
    $table_mos_core_acl_groups_aro_map  =   "mos_core_acl_groups_aro_map";
    $table_mos_core_acl_aro_groups      =   "mos_core_acl_aro_groups";

    // Verbindung zur Datenbank herstellen
    $db = @mysql_connect($host$user$pass);

    // Benutzergruppe
    $mos_users_usertype "Registered"

    // ##### ab hier muss nichts mehr geändert werden #####

    // höchste id der Tabelle mos_users auslesen
    if($db)
    {
        if(@
    mysql_select_db($database$db))
        {
            
    $sql_mos_user_id "SELECT MAX(id) FROM $table_mos_users";
            
    $mos_users_id = @mysql_query($sql_mos_user_id);
            
    $row = @mysql_fetch_row($mos_users_id);
            
    $mos_users_id $row[0];
        }
    }

    // group_id aus der Tabelle mos_core_acl_aro_groups
    // Siehe Gruppenname
    if($db)
    {
        if(@
    mysql_select_db($database$db))
        {
            
    $sql_mos_users_gid "SELECT $table_mos_core_acl_aro_groups.group_id FROM $table_mos_core_acl_aro_groups ";
            
    $sql_mos_users_gid .= "WHERE $table_mos_core_acl_aro_groups.name='$mos_users_usertype' ";
            
    $mos_users_gid = @mysql_query($sql_mos_users_gid);
            
    $row = @mysql_fetch_row($mos_users_gid);
            
    $mos_users_gid $row[0];
        }
    }

    // höchste id der Tabelle mos_core_acl_aro auslesen
    if($db)
    {
        if(@
    mysql_select_db($database$db))
        {
            
    $sql_mos_core_acl_aro_aro_id "SELECT MAX(aro_id) FROM $table_mos_core_acl_aro";
            
    $mos_core_acl_aro_aro_id = @mysql_query($sql_mos_core_acl_aro_aro_id);
            
    $row = @mysql_fetch_row($mos_core_acl_aro_aro_id);
            
    $mos_core_acl_aro_aro_id $row[0];
        }
    }

    $mos_users_block 0;
    $mos_users_sendEmail 0;

    // Registrierungsdatum
    $mos_users_registerDate date("Y-m-d H:i:s");
    $mos_users_lastvisitDate "0000-00-00 00:00:00";
    $mos_users_activation "";
    $mos_users_params "";

    // Gruppe auswählen
    $mos_core_acl_aro_section_value "users";

    // gleich $mos_users_id setzen
    $mos_core_acl_aro_value $mos_users_id;

    $mos_core_acl_aro_order_value "";
    $mos_core_acl_aro_hidden "";

    // gleich $mos_users_gid setzen
    $mos_core_acl_groups_aro_map_group_id $mos_users_gid;

    $mos_core_acl_groups_aro_map_section_value "";

    // gleich $mos_core_acl_aro_aro_id setzen
    $mos_core_acl_groups_aro_map_aro_id $mos_core_acl_aro_aro_id;

    // DB-Abfragen, nur zum Hinweis
    $sql_abfrage_mos_users "INSERT INTO `mos_users` (`id`, `name`, `username`, `email`, `password`, `usertype`, `block`, `sendEmail`, `gid`, `registerDate`, `lastvisitDate`, `activation`, `params`) VALUES (67, '0002', '0002', 'test2@test2.de', '255e88d20562e9b63f53d6684309ebb6', 'Registered', 0, 0, 18, '2005-09-05 00:43:22', '0000-00-00 00:00:00', '', '')";
    $sql_abfrage_mos_core_acl_aro "INSERT INTO `mos_core_acl_aro` (`aro_id`, `section_value`, `value`, `order_value`, `name`, `hidden`) VALUES (14, 'users', '66', 0, '0001', 0)";
    $sql_abfrage_mos_core_acl_groups_aro_map "INSERT INTO `mos_core_acl_groups_aro_map` (`group_id`, `section_value`, `aro_id`) VALUES (18, '', 14);";

    if(
    $db)
    {
        if(@
    mysql_select_db($database$db))
        {

            
    $row 1;
            
    $handle fopen($csv_datei,"r");
            while((
    $data fgetcsv($handle10000",")) !== FALSE)
            {
                
    $num count($data);
                
    $row++;
                for(
    $c=0$c<$num$c++)
                {
                    
    $aaa explode(";",$data[$c]);
                    
    $mos_users_name $aaa[0];
                    
    $mos_users_username $aaa[1];
                    
    $mos_users_email $aaa[2];
                    
    $mos_users_password md5($aaa[3]);
                    
    $mos_users_id++;
                    
    $sql_insert_mos_users "INSERT INTO $table_mos_users (`id`, `name`, `username`, `email`, `password`, `usertype`, `block`, `sendEmail`, `gid`, `registerDate`, `lastvisitDate`, `activation`, `params`) ";
                    
    $sql_insert_mos_users .= "VALUES ('$mos_users_id', '$mos_users_name', '$mos_users_username', '$mos_users_email', '$mos_users_password', '$mos_users_usertype', '$mos_users_block', '$mos_users_sendEmail', '$mos_users_gid', '$mos_users_registerDate', '$mos_users_lastvisitDate', '$mos_users_activation', '$mos_users_params')";
                    
    mysql_query($sql_insert_mos_users);
                    
    $mos_core_acl_aro_aro_id++;
                    
    $mos_core_acl_aro_value++;
                    
    $mos_core_acl_aro_name $aaa[0];
                    
    $sql_insert_mos_core_acl_aro "INSERT INTO $table_mos_core_acl_aro (`aro_id`, `section_value`, `value`, `order_value`, `name`, `hidden`) ";
                    
    $sql_insert_mos_core_acl_aro .= "VALUES ('$mos_core_acl_aro_aro_id', '$mos_core_acl_aro_section_value', '$mos_core_acl_aro_value', '$mos_core_acl_aro_order_value', '$mos_core_acl_aro_name', '$mos_core_acl_aro_hidden')";
                    
    mysql_query($sql_insert_mos_core_acl_aro);
                    
    $mos_core_acl_groups_aro_map_aro_id++;
                    
    $sql_insert_mos_core_acl_groups_aro_map "INSERT INTO $table_mos_core_acl_groups_aro_map (`group_id`, `section_value`, `aro_id`) ";
                    
    $sql_insert_mos_core_acl_groups_aro_map .= "VALUES ('$mos_core_acl_groups_aro_map_group_id', '$mos_core_acl_groups_aro_map_section_value', '$mos_core_acl_groups_aro_map_aro_id')";
                    
    mysql_query($sql_insert_mos_core_acl_groups_aro_map);
                }
            }
            
    fclose($handle);
        }
    }
    ?>

  7. #7
    Gehört zum Inventar
    Registriert seit
    28.10.2003
    Beiträge
    6.257
    Bedankte sich
    8
    Erhielt 1.311 Danksagungen
    in 1.238 Beiträgen

  8. #8
    Neu an Board
    Registriert seit
    11.09.2005
    Beiträge
    12
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    ... ich jetzt auch. Das Teil kannte ich nicht.


    Aber selber machen macht immer noch mehr Spaß.



    S.

  9. #9
    Neu an Board
    Registriert seit
    21.08.2005
    Beiträge
    25
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hi sdot,
    habe mit Interesse von Deinem Script gelesen. Was ich
    suche ist eine M&#246;glichkeit, verschiedene Benutzer nur
    f&#252;r Sie bestimmte Seiten zug&#228;nglich zu machen, die sie dann
    aber selbst &#252;ber den Editor bearbeiten d&#252;rfen (Text &#228;ndern,Bilder hochladen usw.)
    K&#246;nnte da ggf. auch ein Script Abhilfe schaffen?
    Habe bisher nur die M&#246;glichkeit per Publisher auf alle
    Seiten zuzugreifen.

    Das mit dem Author und Groupaccess habe ich anscheinend
    nicht richtig gemacht - klappt &#252;berhaupt nicht bei mir. Ausserdem ist es auch ziemlich riskant mit groupaccess, da die ja selbst sagen, Angelegenheit ist nicht sicher.

    Vielleicht kannst Du mir einen Tipp geben oder gar helfen.

    Mambogirl

  10. #10
    Kommt häufiger vorbei Avatar von stroem
    Registriert seit
    25.04.2005
    Ort
    Österreich
    Alter
    34
    Beiträge
    266
    Bedankte sich
    15
    Erhielt 22 Danksagungen
    in 22 Beiträgen

    Standard mambojobs.de

    @sdot: Wäre mit diesem Script auch die Registrierungsvariante wie bei Mambojobs.de möglich? Sprich, das Script doppelt anlegen, einmal für Gruppe a und einmal für Gruppe b?
    suche schon seit langem etwas für meine Plattform (siehe unten), wo sich zum einen Künstler anmelden können und zum anderen Veranstalter.
    Meine Band - Bishop's Daughter

+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Ähnliche Themen

  1. Benutzer über DB anlegen
    Von Camod im Forum Allgemeine Fragen zu Mambo
    Antworten: 11
    Letzter Beitrag: 19.01.2006, 16:16
  2. Kann keine Benutzer mehr anlegen
    Von mambarin im Forum Allgemeine Fragen zu Mambo
    Antworten: 4
    Letzter Beitrag: 16.12.2005, 17:57
  3. Idee: Registrierte Benutzer schreiben Artikel
    Von Leviath im Forum Mambo Komponenten
    Antworten: 3
    Letzter Beitrag: 15.10.2005, 16:46
  4. Fehler beim Anlegen neuer Benutzer
    Von doublem2 im Forum Mambo Komponenten
    Antworten: 2
    Letzter Beitrag: 11.06.2005, 14:17
  5. AktivierungsLink per Mail funktioniert nicht
    Von reveluzer im Forum Mambo Module
    Antworten: 4
    Letzter Beitrag: 13.03.2005, 11:03

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein