Verzeichnisse für User anlegen
DerNordBerliner
- programmiertechnik
0 Vinzenz Mai0 DerNordBerliner0 Hans0 Vinzenz Mai
Hallöchen,
ich habe vor eine Seite zu schreiben, auf der der User seine Daten eingeben kann, um nach der Registrierung Daten (Bilder, Textdateien, etc.) auf meinen Server zu laden. Die Daten des Users beziehen sich auf: Vorname, Nachname, Anschrift, Telefon, Email, usw.
Nachdem die Daten abgeschickt sind, erhält der User an die von ihm eingetragene Emailadresse ein Formular mit seinen Daten und einen Link auf eine Login-Seite, wo er sich mit der Email und dem Passwort anmelden soll.
Jetzt meine Fragen:
Ist es möglich die Dateien .htusers und .htpasswd automatisch aktualisieren zu lassen oder geht das nur zu Fuss?
Besteht die Möglichkeit einen automatischen Vorgang zu programmieren, der in einem vorgegebenen Verzeichnis ein Unterverzeichnis erstellt, mit dem Teil seiner Emailadresse bis zum @, oder gibt es da nur die Möglichkeit per Hand ein Verzeichnis zu erstellen und dem User die Daten per Mail mitzuteilen? Welcher Name ist grundsätzlich sinnvoll für solch ein Verzeichnis bei gedachten ca. 500 Usern?
Wie erreiche ich eigentlich bei jedem einzelnen User nach dem Login, das er nur in sein Verzeichnis kommt?
Ist schon eine Menge Stoff aber ich weiß, iht könnt mir helfen.
Vielen Dank
Markus
Hallo,
Ist es möglich die Dateien .htusers und .htpasswd automatisch aktualisieren zu lassen oder geht das nur zu Fuss?
ja sicher. Textdateien zu bearbeiten gehört zu den Grundaufgaben, die (fast alle) Programmiersprachen erledigen können.
Besteht die Möglichkeit einen automatischen Vorgang zu programmieren, der in einem vorgegebenen Verzeichnis ein Unterverzeichnis erstellt,
Verzeichnisse zu erstellen, ist in der Regel ebenfalls kein Problem.
mit dem Teil seiner Emailadresse bis zum @,
da ist verdammt viel erlaubt. Vermutlich mehr als Du denkst. Vielleicht mehr als das Dateisystem in Dateinamen erlaubt.
oder gibt es da nur die Möglichkeit per Hand ein Verzeichnis zu erstellen und dem User die Daten per Mail mitzuteilen?
Nein.
Welcher Name ist grundsätzlich sinnvoll für solch ein Verzeichnis bei gedachten ca. 500 Usern?
eine Zahl?
Wie erreiche ich eigentlich bei jedem einzelnen User nach dem Login, das er nur in sein Verzeichnis kommt?
schütze jedes einzelne Verzeichnis mit HTTP-Authentication. Lass jeweils nur den betreffenden Benutzer zu.
Sprich: eine .htaccess für jedes einzelne Verzeichnis. Jede einzelne dieser Dateien läßt den jeweils zuständigen Benutzer zu - und sonst niemand.
Freundliche Grüße
Vinzenz
Hallo Vinzenz,
ja sicher. Textdateien zu bearbeiten gehört zu den Grundaufgaben, die (fast alle) Programmiersprachen erledigen können.
Sehr gut, somit ist mir schon mal ein Stein vom Herzen gefallen. Nun ist nur noch die Frage des WIE?
Verzeichnisse zu erstellen, ist in der Regel ebenfalls kein Problem.
auch hier wieder die gleiche Frage, WIE? Zufallsgenerator für Zahlen oder so?
Sprich: eine .htaccess für jedes einzelne Verzeichnis. Jede einzelne dieser Dateien läßt den jeweils zuständigen Benutzer zu - und sonst niemand.
Auch sehr gut, nur wie erstellt man nur mit den Daten eines Anmelders ein solche Datei und so ein Verzeichniss?
Ich will ja nun nicht die komplette Programmierung von dir erhalten aber ein wenig Hilfe benötige ich da schon. HTML ist für mich inzwischen kein Problem mehr, ein wenig PHP ist ja auch schon vorhanden aber bei solchen Aufgaben habe ich echt noch keine Ahnung.
Gruß Markus
Hallo Markus,
ein wenig PHP ist ja auch schon vorhanden
diese Information, die von Dir bevorzugte Programmiersprache, ist schon einmal hilfreich. Denn nur dann kann man Dir konkretere Hinweise geben, *wie* Du eine Spezialaufgabe angehen könntest.
» ja sicher. Textdateien zu bearbeiten gehört zu den Grundaufgaben, die (fast alle) Programmiersprachen erledigen können.
Sehr gut, somit ist mir schon mal ein Stein vom Herzen gefallen. Nun ist nur noch die Frage des WIE?
dafür verwendest Du Dateisystem-Funktionen, zum Beispiel kannst Du mit file_put_contents() den Inhalt einer Zeichenkette in eine Datei schreiben.
» Verzeichnisse zu erstellen, ist in der Regel ebenfalls kein Problem.
auch hier wieder die gleiche Frage, WIE?
Beispielsweise mit mkdir(), diese Funktion findest Du nicht überraschend ebenfalls in der Liste der Dateisystem-Funktionen, auf die Dich Hans ebenfalls hingewiesen hat.
Zufallsgenerator für Zahlen oder so?
Naja, einen Zufallsgenerator würd' ich grad nicht benutzen, Du musst dies in einem weiteren Zusammenhang sehen, Deiner Benutzerverwaltung :-)
» Sprich: eine .htaccess für jedes einzelne Verzeichnis. Jede einzelne dieser Dateien läßt den jeweils zuständigen Benutzer zu - und sonst niemand.
Auch sehr gut, nur wie erstellt man nur mit den Daten eines Anmelders ein solche Datei und so ein Verzeichniss?
diese Datei ist supereinfach zu erstellen. Du musst folgendes wissen:
Wenn Du Dir im Abschnitt "Getting it working" des apache-Handbuches die erste Beispieldatei anschaust, ich zitiere:
AuthType Basic
AuthName "Restricted Files"
# (Following line optional)
AuthBasicProvider file
AuthUserFile /usr/local/apache/passwd/passwords
Require user rbowen
siehst Du, dass bei Verwendung einer zentralen Benutzerdatei für die http-Authentifizierung Du nur den entsprechenden Benutzernamen anhängen musst. Das heißt Du kannst eine Vorlage benutzen, an die Du eine einzige Zeile anhängst - und der variable Wert ist der Benutzername. Mehr zur http-Authentifizierung findest Du unter anderem in SELFHTML aktuell: .htaccess Zugriffskontrolle von Michael Schröpl.
» » Nachdem die Daten abgeschickt sind, erhält der User an die von ihm eingetragene Emailadresse ein Formular mit seinen Daten und einen Link auf eine Login-Seite, wo er sich mit der Email und dem Passwort anmelden soll.
Grundsätzlich musst Du jedoch mehr zu einem Benutzer speichern als die standardmäßige Benutzerdatei des apache aufweist, mindestens
- Benutzernamen,
- E-Mail-Adresse,
- Benutzerverzeichnis
- Passwort (am besten nicht im Klartext)
+ Felder für den Zeitpunkt des Mailversands der Zugangsdaten
und der Bestätigung => Aktivierung des Accounts
Wie Du das im einzelnen löst, das ist Deine Aufgabe.
Fang' einfach damit an, einfache Aufgaben zu erledigen. Steigere allmählich den Schwierigkeitsgrad, zum Beispiel könntest Du folgende Funktionen schreiben:
1. Schreibe eine Funktion, die
- eine fest vorgegebene Datei einliest,
- und den Inhalt unter einem fest vorgegebenen (anderen) Namen abspeichert
2. Schreibe eine Funktion, die
- eine fest vorgegebene Datei einliest,
- an den Inhalt eine neue Zeile mit fest vorgegebenem Inhalt anfügt
- und den geänderten Inhalt unter einem fest vorgegebenen (anderen) Namen abspeichert
3. Schreibe eine Funktion, die
- eine Zeichenkette entgegennimmt,
- eine fest vorgegebene Datei einliest,
- an den Inhalt eine neue Zeile mit dem übergebenen Inhalt anfügt
- und den geänderten Inhalt unter einem fest vorgegebenen (anderen) Namen abspeichert
4. Schreibe eine Funktion, die
- eine Zeichenkette zum Anhängen entgegennimmt,
- einen Verzeichnisnamen entgegennimmt
- eine fest vorgegebene Datei einliest,
- an den Inhalt eine neue Zeile mit dem übergebenen Inhalt anfügt,
- und den geänderten Inhalt in dem übergebenen Verzeichnis (bitte
vorher anlegen) unter einem fest vorgegebenen Dateinamen abspeichert
...
Du solltest sehen, dass Du mit diesen Schritten das Anlegen der Konfigurationsdatei für deine Benutzer übst.
Bitte achte auf Fehlerbehandlung. Dateioperationen können fehlschlagen, die Funktionen liefern typischerweise Fehlermeldungen in diesem Fall zurück, die Du auswerten kannst.
Freundliche Grüße
Vinzenz