ilch Forum » Ilch Clan 1.1 » Kritik und Verbesserungen » User ID ändern

Geschlossen
  1. #1
    User Pic
    bofh4adm Mitglied
    Registriert seit
    12.04.2007
    Beiträge
    16
    Beitragswertungen
    0 Beitragspunkte
    Moin,

    ist evtl. absehbar, dass es ein Update gibt, in welchem man dann danach als Admin im Admin-Bereich die User-ID von Usern ändern kann?

    Das Script sollte dann natürlich auch so mächtig sein, dass es über all in allen DB-Tabellen die vorige ID mit der neuen ändert?

    Grüsse Holger


    verwendete ilchClan Version: 1.1
    Orale Diarrhoe ist nichts anderes als verbale Inkontinenz
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    BobGrey Mitglied
    Registriert seit
    05.02.2007
    Beiträge
    423
    Beitragswertungen
    1 Beitragspunkte
    Die User ID ist nicht änderbar da sie in der Datenbank = auto_increment eingertagen ist.

    Ausserdem soll die UserID eine eideutige NUR einmal vorhandene ID sein, da daran eine Eindeutige Identifizierung möglich ist.

    Ändern könnte man das evtl. aber Sinn macht das nicht.


    Bob

    Das ist jedenfalls meine Meinung.
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    bofh4adm Mitglied
    Registriert seit
    12.04.2007
    Beiträge
    16
    Beitragswertungen
    0 Beitragspunkte
    Der Sinn für mich ist folgender:

    Wenn ein User versehentlich gelöscht wurde und man ihn wieder einrichtet, hat man zu vorigen Posts des Users (durch andere ID) keinen richtigen Bezug mehr (Avatar, Link zu dem Profil, ...).

    Klar sollte die ID unikativ sein. Da geb ich dir vollkommen recht, BobGrey.
    Orale Diarrhoe ist nichts anderes als verbale Inkontinenz
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.254
    Beitragswertungen
    366 Beitragspunkte
    LOL, also dann änderst du einfach wieder die ID, vom neuangelegten zur alten ID und alles ist wie vorher.

    Aber da ich das Script schon vorher geschrieben habe, poste ich es natürlich trotzdem. Das wird aber nicht in mehr in eine Ilchversion einfließen.

    changeuserid.php
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Userid &auml;ndern</title>
    </head>
    <body>
    
    <?php
    if (isset($_POST['submit'])) {
    
      define('main',true);
      require_once('include/includes/config.php');
      require_once('include/includes/loader.php');
      
      $ouid = escape($_POST['ouid'],'integer');
      $nuid = escape($_POST['nuid'],'integer');
      $login = escape($_POST['login'],'string');
      $pw = md5(escape($_POST['pw'],'string'));
      
      db_connect();
      
      if (db_count_query("SELECT COUNT(id) FROM `prefix_user` WHERE id = 1") == 1) {
       $admin = db_count_query("SELECT IF(IF(name = '$login',1,0)+IF(pass = '$pw',1,0)=2,1,0) FROM `prefix_user` WHERE id = 1");
      } else {
       $admin = db_count_query("SELECT IF(pass = '$pw',1,0) FROM `prefix_user` WHERE recht = -9 AND name = BINARY '$login'"); 
      }
      
      if ($admin == 1) {
        $dbchanges = array (
          array ('user', 'id'),
          array ('awaycal', 'uid'),
          array ('forummods', 'uid'),
          array ('groups', 'mod1'),
          array ('groups', 'mod2'),
          array ('groups', 'mod3'),
          array ('groups', 'mod4'),
          array ('groupusers', 'uid'),
          array ('koms', 'uid'),
          array ('modulerights', 'uid'),
          array ('news', 'user_id'),
          array ('online', 'uid'),
          array ('pm', 'sid'),
          array ('pm', 'eid'),
          array ('posts', 'erstid'),
          array ('topic_alerts', 'uid'),
          array ('userfields', 'uid'),
          array ('usergallery', 'uid'),
          array ('warmember', 'uid')
        );
        echo "<h2>Tabellen werden ge&auml;ndert</h2>User $ouid --> $nuid <hr />";
        foreach ($dbchanges as $table) {
          $abf = "UPDATE `prefix_{$table[0]}` SET `{$table[1]}` = $nuid WHERE `{$table[1]}` = $ouid";
          echo "<b>SQL:</b> <i>$abf;</i><br />";
          if (db_query($abf)) {
            echo 'ohne Fehler durchgef&uuml;hrt';
          } else {echo mysql_error();} 
          echo '<hr />';
        }
        
        db_close();
        
        echo 'Alle &Auml;nderungen durchgef&uuml;hrt';
      
      } else {
        echo 'Unzulässiger Adminaccount bzw. falsches Passwort';
      }
    
    } else { ?>
    <h1>Beachte</h1>
    &Auml;nderungen k&ouml;nnen nur vom Admin mit der ID 1 vorgenommen werden, es sei denn es existiert kein Admin mit ID 1.<br />
    Es werden <b>KEINE</b> Fehlerkontrollen durchgef&uuml;hrt, bei Fehlangaben kann es zu schwerwiegenden Fehlern kommen, also am besten ein Backup vorher machen ;)<br />
    <pre>
    <form action="changeuserid.php" method="post">
    Alte ID des Users:   <input type="text" name="ouid" /><br />
    Neue ID des Users:    <input type="text" name="nuid" /><br />
    Username des Admin:   <input type="text" name="login" /><br />
    Passwort des Admin:   <input type="password" name="pw" /><br />
    <input type="submit" name="submit" value="&auml;ndern" />
    </form>
    </pre>
    
    <? } ?>
    </body>
    </html>


    *Update: Fehler behoben - 12:20Uhr 27.04.2007


    Zuletzt modifiziert von Mairu am 27.04.2007 - 12:20:51
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    1 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    bofh4adm Mitglied
    Registriert seit
    12.04.2007
    Beiträge
    16
    Beitragswertungen
    0 Beitragspunkte
    wow, sehr genial, ich muss dabei bleiben du bist und bleibst mein persönlicher Held! Vielen Dank!

    PS: Warum wird dies nicht mehr in eine ilch-Version einfliessen? Wenn man fragen darf? Ich kenne das Ilch CMS nur seit 1.1e.
    Orale Diarrhoe ist nichts anderes als verbale Inkontinenz
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.254
    Beitragswertungen
    366 Beitragspunkte
    So also da war noch ein dummer Fehler in meiner Denkweise drin, hab das jetzt behoben.
    Nunja jeder der das braucht, kann das Script hier finden, ansonsten, wird damit vielleicht nur fälschlicherweise was verändert und wirklich brauchen tut man es ja nicht, ich hab den Thread auch in der FAQ verlinkt.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Ithron Hall Of Fame
    Registriert seit
    21.01.2006
    Beiträge
    2.659
    Beitragswertungen
    24 Beitragspunkte
    du lässt ja da das pw des admins ausgeben.. wird das dann aber nich im md5 hash ausgegeben?
    ZitatZitat geschrieben von loW

    Ja ich habs gesehen und wenn ichs kostenlos bekomm dann zahl ich doch nix dafür oder?
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.254
    Beitragswertungen
    366 Beitragspunkte
    Wo wird da bitte ein Passwort ausgegeben?
    Passwörter sind nur als Hash gespeichert, können also auch nur als Hash verglichen werden, aber ich verstehe deinen Einwand ehrlich gesagt überhaupt nicht.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Ithron Hall Of Fame
    Registriert seit
    21.01.2006
    Beiträge
    2.659
    Beitragswertungen
    24 Beitragspunkte
    ach das kommt wenn man früh morgens den code nur überfliegt lachen

    man gibt ja ein neues pw an.. dachte es wird ausgegeben.. hat sich erledigt^^
    ZitatZitat geschrieben von loW

    Ja ich habs gesehen und wenn ichs kostenlos bekomm dann zahl ich doch nix dafür oder?
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Tibirius Mitglied
    Registriert seit
    10.02.2005
    Beiträge
    8
    Beitragswertungen
    0 Beitragspunkte
    hi
    könnte mir evt noch jemand kurz erleutern was ich mit dem code machen soll?
    den code in ne vorhandene datei einfügen oder ne neue erstellen evt?
    steh irgendwie auf dem schlauch meine ID1 is weg admin is nur ID2.


    Zuletzt modifiziert von Tibirius am 12.08.2007 - 15:08:47
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    SLJ Hall Of Fame
    Registriert seit
    18.05.2004
    Beiträge
    15.492
    Beitragswertungen
    3 Beitragspunkte
    In eine neue datei rein,... und dann ausführen,...;)
    www.zocker-eppingen.de
    Ilch 1.0.4 PHP 7.0 und PDO Fähig na klar lächeln
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    MrWhoo Mitglied
    Registriert seit
    11.08.2008
    Beiträge
    30
    Beitragswertungen
    0 Beitragspunkte
    Sorry leutz aber ich blick das grad net.
    In welchem Ordner wird die Datei ausgeführt ?
    Bitte steinigt mich nicht.
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.254
    Beitragswertungen
    366 Beitragspunkte
    In den Hauptordner, also da wo index.php admin.php und include liegen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Kritik und Verbesserungen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten