Hier kann eine Notiz zum Merk-Eintrag hinzugefügt werden (optional)
| [ Anmelden zum schreiben ] |
| User ID ändern | |||
|---|---|---|---|
| bofh4adm Mitglied
Posts: 16 |
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 |
||
| BobGrey Mitglied
Posts: 423 |
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. Lieber einen guten Freund verlieren, als einen guten Spruch nicht gebracht zu haben. |
||
| bofh4adm Mitglied
Posts: 16 |
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 |
||
| Mairu Coder
Posts: 12770 |
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 ä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ä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ührt';
} else {echo mysql_error();}
echo '<hr />';
}
db_close();
echo 'Alle Änderungen durchgeführt';
} else {
echo 'Unzulässiger Adminaccount bzw. falsches Passwort';
}
} else { ?>
<h1>Beachte</h1>
Änderungen kö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ü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="ä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 |
||
| bofh4adm Mitglied
Posts: 16 |
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 |
||
| Mairu Coder
Posts: 12770 |
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 |
||
| Ithron Hall Of Fame
Posts: 2658 |
du lässt ja da das pw des admins ausgeben.. wird das dann aber nich im md5 hash ausgegeben?
Zitat geschrieben von loW Ja ich habs gesehen und wenn ichs kostenlos bekomm dann zahl ich doch nix dafür oder? |
||
| Mairu Coder
Posts: 12770 |
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 |
||
| Ithron Hall Of Fame
Posts: 2658 |
ach das kommt wenn man früh morgens den code nur überfliegt
man gibt ja ein neues pw an.. dachte es wird ausgegeben.. hat sich erledigt^^ Zitat geschrieben von loW Ja ich habs gesehen und wenn ichs kostenlos bekomm dann zahl ich doch nix dafür oder? |
||
| Tibirius Mitglied
Posts: 8 |
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 |
||
| SLJ Hall Of Fame
Posts: 15485 |
In eine neue datei rein,... und dann ausführen,...
![]() www.zocker-eppingen.de (ZE 1.6.8 next ZE 2.1) Mal schauen ob noch was neues kommt,... 2012! |
||
| MrWhoo Mitglied
Posts: 30 |
Sorry leutz aber ich blick das grad net.
In welchem Ordner wird die Datei ausgeführt ? Bitte steinigt mich nicht. |
||
| Mairu Coder
Posts: 12770 |
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 |
||
| [ Anmelden zum schreiben ] |