anpera.net https://anpera.dyndns.org/phpbb3/ |
|
Neuer User drin - wer hat ihn reingelassen? https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=4095 |
Seite 1 von 1 |
Autor: | skywalker031 [ Sa 27 Okt, 2007 01:22 ] |
Betreff des Beitrags: | Neuer User drin - wer hat ihn reingelassen? |
Hi, ich mal wieder. Ich hätte gern für folgendes Problem eine Lösung und weiss nicht genau, wie ich es umsetzen kann. Wir stellen uns vor, dass sich ein neuer User registriert hat und von einem Superuser hereingelassen wurde. Nun kommt das eigentliche Problem. Ich würde nun gerne wissen, welcher Superuser, den neuen hereingelassen hat. Egal ob er ihn zuerst angeschrieben hat oder ihn gleich reingelassen hat. Es sollte so sein, das in der db ein Eintrag gemacht wird, der aus dem Loginnamen des Superusers besteht, sobald der superuser auf ok klickt, egal ob auf das ok bei ungeprüfte oder bei angemailte. Genauso sollte ein Vermerk gemacht werden, wer einen User gelöscht hat. Darüber sollte es dann eine Ausgabe geben, die man über die Registratur oder so sehen kann, auch sollte dieses Feld im Usereditor beim jeweiligen User mit angezeigt werden (ziemlich weit oben). Ist dies ohne grössere Programmierarbeiten umsetzbar? |
Autor: | Nightborn [ Sa 27 Okt, 2007 02:00 ] |
Betreff des Beitrags: | |
der interessante teil ist wohl der erste...das "auf einladung"... soweit ich sehe steht noch keine zeile code? |
Autor: | skywalker031 [ Sa 27 Okt, 2007 07:05 ] |
Betreff des Beitrags: | |
Tja Nightborn, wenn ich schon so weit wäre, dass ich selber ein paar Zeilen hinbekommen würde, die mit dieser Art Thema was zu tun hätten, würde ich vielleicht schon was haben. Da es aber in dieser Richtung noch gar nichts gibt, wonach ich mich ein klein wenig richten könnte, bleibt mir nichts übrig als diejenigen zu fragen, die sich zumindest mit der Materie besser auskennen, als ich. Hier ein Teil aus der registratur.php, in dem ich denke, dass mein Wunsch drin vermerkt werden muss. Zitat: else if ($_GET[op]=="accept1") { //akzeptieren aus liste neue bewohner
$sql = "UPDATE accounts SET namecheck=9 WHERE acctid=$_GET[userid]"; //Hier an dieser Stelle müsste wohl sowas hin wie: $sql = "UPDATE accounts SET Loginname=(klickender SuperUser $variable_mit_acctID_des_superusers_der_geklickt_hat)"; db_query($sql)or die(db_error(LINK)); // addnav("Zurück ins Dorf","village.php"); addnav("Zurück zur Grotte","superuser.php"); addnav("Registratur","registratur.php?op=newname"); redirect("registratur.php?op=newname"); } else if ($_GET[op]=="accept2") { //akzeptieren aus liste angemailte bewohner $sql = "UPDATE accounts SET namecheck=9 WHERE acctid=$_GET[userid]"; //Hier an dieser Stelle müsste wohl sowas hin wie: $sql = "UPDATE accounts SET Loginname=(klickender SuperUser $variable_mit_acctID_des_superusers_der_geklickt_hat)"; db_query($sql) or die(db_error(LINK)); // addnav("Zurück ins Dorf","village.php"); addnav("Zurück zur Grotte","superuser.php"); addnav("","registratur.php?op=mailname"); redirect("registratur.php?op=mailname"); } else if ($_GET[op]=="delete1") { //user löschen aus liste neue namen // addnav("Zurück ins Dorf","village.php"); addnav("Zurück zur Grotte","superuser.php"); delete_user ($_GET[userid]); //Hier an dieser Stelle müsste wohl sowas hin wie: $sql = "UPDATE accounts SET Loginname=(klickender SuperUser $variable_mit_acctID_des_superusers_der_geklickt_hat)"; addnav("","registratur.php?op=newname"); redirect("registratur.php?op=newname"); } else if ($_GET[op]=="delete2") { //user löschen aus liste angemailte namen // addnav("Zurück ins Dorf","village.php"); addnav("Zurück zur Grotte","superuser.php"); delete_user ($_GET[userid]); //Hier an dieser Stelle müsste wohl sowas hin wie: $sql = "UPDATE accounts SET Loginname=(klickender SuperUser $variable_mit_acctID_des_superusers_der_geklickt_hat)"; addnav("","registratur.php?op=mailname"); redirect("registratur.php?op=mailname"); } else if ($_GET[op]=="accname") { //liste akzeptierte Bewohner addnav("Navigation"); addnav("Zurück zur Registratur","registratur.php"); // addnav("Zurück ins Büro","rathaus.php?op=verwaltungsbuero"); // addnav("Zurück zum Rathaus","rathaus.php"); // addnav("Zurück ins Dorf","village.php"); addnav("Zurück zur Grotte","superuser.php"); output("Du schmökerst im grossen Buch der Bewohner, wer alles auf Tatooine gemeldet ist:`n`n`0"); $sql = 'SELECT acctid, name, login, title FROM accounts WHERE locked=0 and namecheck=9 ORDER BY login ASC'; $result = db_query($sql) or die(db_error(LINK)); if (db_num_rows($result) == 0) { output("Es sind keine Bewohner mit akzeptierten Namen verzeichnet!`0`n"); } else { $comp = ""; $space = " "; output("<table border=0 cellpadding=2 cellspacing=1 >",true); output("<tr class='input'><td>Nummer</td><td>Name</td><td>Titel</td><td>SuperUser-Login</td>",true); while ($row = db_fetch_assoc($result)) { $tmp = $row['acctid']; $letter = ucfirst( substr($row['login'],0,1)); if ( $letter != $comp ) { output("<tr class='trmain'>",true); output("<td>".$space."</td><td>`6-----`^ `b".$letter."`b `6------`0 </td><td>".$space."</td>",true); output("</tr>",true); $comp = $letter; } output("<tr class='trmain'>",true); output("<td>".$tmp."</td><td>".$row['login']."</td><td>".$row['title']."</td><td>".$row['login_des_SuperUsers']."</td>",true); output("</tr>",true); } output("</table>",true); } } Alles das was ich rot markiert habe, sind die Stellen oder Dinge, so wie ich mir das Ansatzweise vorstelle, wie evtl. gemacht werden könnte. Ich vermute jedoch, dass es sich für diejenigen, die wirklich die Ahnung haben - ich hab sie nicht - eher darüber schmunzeln werden...^^ |
Autor: | Nightborn [ Sa 27 Okt, 2007 10:00 ] |
Betreff des Beitrags: | |
Ah... es gibt doch schon Code. ich konnte nicht gedankenlesen, und wusste nichts vom Registratursystem dort... nun... Viele werfen hier alles in die Accounts, was nicht bei 3 aufm Baum ist, und der Einfachheit halber tun wir das jetzt auch. a) geh in deinen phpmyadmin und füge ein Feld "validierung" (oder ähnlich) ein b) Deine Abfrage, die Du willst, ist dann einfach $sql="UPDATE accounts SET validierung='".$session['user']['login']." WHERE acctid=".$_GET[userid]; das an den Stellen, die Du schon erkoren hast, einfügen, das müsste passen. c)"$sql = 'SELECT acctid, name, login, title,validierung FROM accounts weiter unten d) <td>".$row['login_des_SuperUsers']."</td>" wäre jetzt <td>".$row['validierung']."</td>" Wenn ein User aus der Liste (was die auch immer macht) gelöscht wird, wird dann der Char gelöscht? In dem Fall könnte man sich das dann sparen. Aber fürs reinlassen wäre der Eintrag wichtig, richtig. |
Autor: | skywalker031 [ Sa 27 Okt, 2007 14:40 ] |
Betreff des Beitrags: | |
Hi Nightborn, danke dir erstmal für deine Ausführungen und Codeschnipsel. Ich werde das dann mal so einbasteln und mich ggf. noch mal melden, ob es klappt oder wie auch immer. |
Autor: | skywalker031 [ So 28 Okt, 2007 22:34 ] |
Betreff des Beitrags: | |
So, Nightborn, habe das mal versucht einzubasteln. Alles hochgeladen, teilweise bin ich mit dem Ergebnis schon zufrieden, zumindest was das output angeht, solange noch niemand irgendwie "ok" geklickt hatte. Hab dann mal nen Testaccount registriert und als ich diesen als Admin dann per "OK" rein lassen wollte, bekam ich folgende Fehlermeldung: Zitat: UPDATE accounts SET validierung='Darron Skywalker WHERE acctid=73
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 ''Darron Skywalker WHERE acctid=73' at line 1 damit du weisst, was ich wo und wie eingebastelt habe, hier nun meine Änderungen an der registratur.php $this->bbcode_second_pass_code('', 'else if ($_GET[op]=="accept1") { //akzeptieren aus liste neue bewohner $sql = "UPDATE accounts SET namecheck=9 WHERE acctid=$_GET[userid]"; $sql="UPDATE accounts SET validierung='".$session['user']['login']." WHERE acctid=".$_GET[userid]; db_query($sql)or die(db_error(LINK)); // addnav("Zurück ins Dorf","village.php"); addnav("Zurück zur Grotte","superuser.php"); addnav("Registratur","registratur.php?op=newname"); redirect("registratur.php?op=newname"); } else if ($_GET[op]=="accept2") { //akzeptieren aus liste angemailte bewohner $sql = "UPDATE accounts SET namecheck=9 WHERE acctid=$_GET[userid]"; $sql="UPDATE accounts SET validierung='".$session['user']['login']." WHERE acctid=".$_GET[userid]; db_query($sql) or die(db_error(LINK)); // addnav("Zurück ins Dorf","village.php"); addnav("Zurück zur Grotte","superuser.php"); addnav("","registratur.php?op=mailname"); redirect("registratur.php?op=mailname"); } else if ($_GET[op]=="delete1") { //user löschen aus liste neue namen // addnav("Zurück ins Dorf","village.php"); addnav("Zurück zur Grotte","superuser.php"); $sql="UPDATE accounts SET validierung='".$session['user']['login']." WHERE acctid=".$_GET[userid]; delete_user ($_GET[userid]); addnav("","registratur.php?op=newname"); redirect("registratur.php?op=newname"); } else if ($_GET[op]=="delete2") { //user löschen aus liste angemailte namen // addnav("Zurück ins Dorf","village.php"); addnav("Zurück zur Grotte","superuser.php"); $sql="UPDATE accounts SET validierung='".$session['user']['login']." WHERE acctid=".$_GET[userid]; delete_user ($_GET[userid]); addnav("","registratur.php?op=mailname"); redirect("registratur.php?op=mailname"); } else if ($_GET[op]=="accname") { //liste akzeptierte Bewohner addnav("Navigation"); addnav("Zurück zur Registratur","registratur.php"); // addnav("Zurück ins Büro","rathaus.php?op=verwaltungsbuero"); // addnav("Zurück zum Rathaus","rathaus.php"); // addnav("Zurück ins Dorf","village.php"); addnav("Zurück zur Grotte","superuser.php"); output("Du schmökerst im grossen Buch der Bewohner, wer alles auf Tatooine gemeldet ist:`n`n`0"); $sql = 'SELECT acctid, name, login, title, validierung FROM accounts WHERE locked=0 and namecheck=9 ORDER BY login ASC'; $result = db_query($sql) or die(db_error(LINK)); if (db_num_rows($result) == 0) { output("Es sind keine Bewohner mit akzeptierten Namen verzeichnet!`0`n"); } else { $comp = ""; $space = " "; output("<table border=0 cellpadding=2 cellspacing=1 >",true); output("<tr class='input'><td>Nummer</td><td>Name</td><td>Titel</td><td>bearb. Admin</td>",true); while ($row = db_fetch_assoc($result)) { $tmp = $row['acctid']; $letter = ucfirst( substr($row['login'],0,1)); if ( $letter != $comp ) { output("<tr class='trmain'>",true); output("<td>".$space."</td><td>`6-----`^ `b".$letter."`b `6------`0 </td><td>".$space."</td>",true); output("</tr>",true); $comp = $letter; } output("<tr class='trmain'>",true); output("<td>".$tmp."</td><td>".$row['login']."</td><td>".$row['title']."</td>"."<td>".$row['validierung']."</td>",true); output("</tr>",true); } output("</table>",true);') Das Feld was ich in der accounts neu angelegt habe, nennt sich "validierung", als Typ hab ich VARCHAR gewählt, als Länge/Set hab ich 20 geschrieben, Koallition = latin1_swedish_ci, Attribute = nichts eingetragen, bei null habe ich "not null" genommen, Standart... Extra und Kommentar ist leer. Wo ist da der Fehler? |
Autor: | Nightborn [ So 28 Okt, 2007 22:37 ] |
Betreff des Beitrags: | |
UPDATE accounts SET validierung='Darron Skywalker WHERE acctid=73 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 ''Darron Skywalker WHERE acctid=73' at line 1 <---da fehlt ein ' UPDATE accounts SET validierung='Darron Skywalker' WHERE acctid=73 mußt im quelltext ändern. ^^ |
Autor: | skywalker031 [ Do 01 Nov, 2007 16:25 ] |
Betreff des Beitrags: | |
ok, nightborn also habe das ' hinzugefügt, aber leider wird der klickende admin nicht eingetragen, wenn der admin den user wegen namensänderung anschreibt. Lediglich bei Klickt auf OK, wird der name des Admins eingetragen. Was könnte nun noch der Fehler sein? |
Autor: | Nightborn [ Do 01 Nov, 2007 18:08 ] |
Betreff des Beitrags: | |
ich kenn das system nicht so inbrünstig... ich hab überall da, wo de facto ein user freigeschaltet wird, das angegeben (bzw hast du schon) wenn jemand nur angeschrieben wird, und kein eintrag in die db erfolgt, dann muß nur noch ein solches update (OHNE validierung zu ändern) in den part eintragen wo das im Skript gemacht wird. |
Autor: | Lori [ Do 01 Nov, 2007 18:41 ] |
Betreff des Beitrags: | |
Wieso machst du eigentlich auch den Eintrag in die Datenbank, wenn der User gelöscht wird? Ist doch unsinnig, erst der Eintrag und dann wird alles gelöscht ![]() |
Autor: | skywalker031 [ Fr 02 Nov, 2007 00:09 ] |
Betreff des Beitrags: | |
Das Lori, kann ich dir erklären. Da ich eine Liste habe, die mir die gelöschten User anzeigt, ist es für mich von interesse, wer den User gelöscht hat. @Nightborn Ok, ich sehe mir das noch mal an, möglich dass ich da noch was übersehen habe. Danke dir dennoch... funzt ja schon zu fast 100% |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |