Hallo zusammen!
Ich würde ganz gerne die Möglichkeit einbauen, einen Frontend-User per Formular - in einem selbst erstellten Admin-Bereich - zu erstellen. Sollte ja eigentlich auch kein Problem sein, indem ich die benötigten Daten in die Tabelle fe_users eintrage...
Aber: Die Tabelle beinhaltet ja doch sehr viele Spalten, von denen ich einige für meine Zwecke nicht benötige. Daher stellt sich die Frage: Muss ich alle Spalten mit Daten füllen, oder kann ich einfach welche "leer" lassen? Welche Spalten werden zwingend von typo3 benötigt? Ich für meinen Teil brauche eigentlich nur den Benutzernamen und das Passwort, sowie die Groupid natürlich...alle anderen Daten habe ich für meine Bedürfnisse eh noch einmal in einer anderen Tabelle gespeichert...
Wäre super, wenn mir jemand sagen könnte, was unbedingt in die INSERT-Anweisung rein muss, und was nicht zwingend gebraucht wird...
Achja: Mir ist aufgefallen, dass alle Spalten der Tabelle als "NOT NULL" deklariert sind, aber wenn ich einen neuen User ohne Adresse bspw. anlege, erscheint kein Fehler - wird dann einfach ein leerer String in die Datenbank geschrieben?
Viele Grüße,
Drathy
Beitrag bearbeiten/löschen
unbenötigte Felder kannst Du einfach leer lassen, aber die Felder tstamp umd crdate solltest Du setzen.
Das NOT NULL füllt die Spalten automatisch mit einem Leerstring.
Super, das hört sich gut an. Vielen Dank!!!
crdate befülle ich dann mit
date("d.m.Y");
und tstamp mit
time()
Ist es das, was Du meinst? Wenn ich mal kurz nachfragen darf, wofür benötige ich die beiden Felder?
Thx für die Aufklärung bzgl. "NOT NULL". War bislang davon ausgegangen, dass diese Felder einen Wert übergeben bekommen müssen...es sei den, es ist ein Standardwert definiert... Wieder was gelernt! ^^
EDIT:
Was mir grad auffällt: Wie wird eigentlich definiert, welche User zu welcher Gruppe gehört?? In der Datenbank in der Tabelle fe_users ist ja eine Spalte "usergroup", doch dort steht für jede Gruppe "[BLOB - 1 Bytes]"...und damit kann ich gar nichts anfangen. Es ist ja wichtig für mich, da ich dem angelegten User ja eine Gruppe zuordnen muss...
Problem gelöst!
Falls jemand mal selbiges Problem hat, hier die Lösung:
$sql = "INSERT INTO fe_users (username, password, usergroup) VALUES ('testname', 'testpasswort', '3'); ";
Einfach die ID der Usergroup eintragen - ersichtlich ist die ID im Backend...
$sql = "INSERT INTO fe_users (username, password, usergroup,crdate,tstamp) VALUES ('testname', 'testpasswort', '3',UNIX_TIMESTAMP(),UNIX_TIMESTAMP()); ";
um nochmal auf die Timestamps zurückzukommen.
Richtig, hatte ich auch gemacht, nur anstatt "UNIX_TIMESTAMP()" habe ich "time()" verwendet - ist das das gleiche bzw. auch ok?
Es wird zumindest ein timestamp in die DB eingetragen...
Könntest Du mir bitte noch sagen, wozu der da ist und warum man den in die DB eintragen sollte? Danke! 8-)
time() ist php und UNIX_TIMESTAMP() ist SQL, wird also von MySQL direkt umgewandelt.
crdate = Entstehungsdatum (Abk. für create date)
tstamp = Datum der letzten Änderung (Abk. für timestamp)
Das wird gebraucht, um Einstellungen wie start/stop wirkbar zu machen, ausserdem ist es Typo-konform.
Super, vielen Dank für die abschließende Erklärung und für Deine Hilfe!
Schönen Tag noch!!!
Gruß,
Drathy
np 😉
kleine Zusatzanmerkung: pid sollte man auch setzen, um die Datensätze in dem richtigen Sysordner zu haben, sonst hängen die alle auf der Weltkugel rum.
Jup, hatte ich schon gemacht, nachdem es zunächst nicht gleich funktioniert hatte...danke.... #paralyzed# 😉