Automatisch User-Profile erstellen?
Ich arbeite an soetwas wie "Tellonym", ein Service wo man sich registrieren kann und dann andere anonym Kommentare abgeben können.
Man soll sich registrieren können und dann wird ein Nutzerprofil erstellt, das LogIn Script usw hab ich schon, habe mich dabei an dem hier orientiert: https://www.php-einfach.de/experte/php-codebeispiele/loginscript/
Meine Frage ist jetzt, wie kann ich automatisch ein User-Profil erstellen lassen, also registriert sich wer mit dem Namen "Test", dass dann meinedomain.de/user/test oder so erstellt wird und genau dort dann der Name und die Möglichkeit, Kommentare zu hinterlassen. Hat da wer gute Tutorials?
3 Antworten
dass dann meinedomain.de/user/test oder so erstellt wird
Als Dokument auf deinem Webserver? Das wäre der falsche Ansatz. Du hast ja generische Links. Generisch heißt: einmal willst du auf /user/bla und einmal auf /user/blub einspringen und zwar automatisch ohne dass du vorher weißt welche Namen es geben wird. Die "Resourcen" bla und blub werden erst zur Laufzeit angelegt oder besser gesagt dynamisch erzeugt.
Du definierst erst mal eine Linkadresse /user. Hinter dieser Adresse liegt ein PHP Script, das dynamisches HTML erzeugt (z.B. ein Dokument, das den vollen Namen des Benutzers in einem Begrüßungssatz anzeigt, wobei der Name natürlich nicht fest im Code steht sondern lediglich eine Variable ist (daher dynamisch)).
Damit du weißt welches Profil da überhaupt angezeigt werden soll, muss der URL noch ein Parameter mitgegeben werden: /user?name=test
Jetzt kannst du mit dem Namen des Users seinen Echtnamen aus der Datenbank auslesen und in die Variable speichern. Und schon hast du ein individuales Profil. Vorher muss natürlich noch der Login geprüft werden.
Mit mod_rewrite kannst du dann in einem späteren Schritt aus /user?name=test noch ein /user/test machen. Das ist aber nur noch Schönheitskorrektur.
Was genau meinste mit User-Profil generieren. Prinzipiel sollten ja die Rahmendaten des Users in deiner Datenbank stehen.
Für die URL könnteste dir mal POST und GET ansehen.
Da könntest du mit mod_rewrite arbeiten.
Du hast z.B. den Pfad "meinedomain.de/user/" dort befindet sich eine Datei namens "index.php" und eine ".htaccess" mit den entsprechenden Anweisungen.
Wenn jetzt z.B. "meinedomain.de/user/test" abgerufen wird, macht der Server daraus intern "meinedomain.de/user/index.php?user=test", dann wird im PHP-Skript überprüft, ob der User existiert und entweder eine entsprechende Profilseite angezeigt oder eben eine "Benutzer existiert nicht"-Meldung ausgegeben.
Stark vereinfachtes Beispiel:
#File: /user/.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.+)$ index.php?user=$1
<?php
/* File: /user/index.php */ $user = ''; if(isset($_GET['user'])){ $user = $_GET['user']; //TODO: Überprüfen, ob der Benutzer tatsächlich existiert und ggf. Fehlermeldung ausgeben. } ?> <html> <head> <title>Benutzerprofil von <?php echo $user; ?></title> </head> <body> <h2><?php echo $user; ?></h2> <div>Lorem ipsum dolor sit amet.</div> </body> </html>
Müsstest natürlich noch mindestens den PHP-Teil anpassen (Datenbankabfrage, Kommentar-/Nachrichtenfunktion, etc...)
Das, was ich dir an PHP/HTML gegeben habe, ist nur eine Art Grundgerüst.
Soll heißen, du musst immer noch folgendes selbst machen:
- Verbindung zur Datenbank.
- Abfrage der Profildaten des gewünschten Benutzers aus der Datenbank.
- Fehlermeldung, falls 2. fehlschlägt.
- Layout der Profilseite.
- Anzeigen der Informationen auf der Profilseite.
- Überprüfen, ob der Besucher der Profilseite die Berechtigungen hat, um Kommentare/Nachrichten/o.ä. an das Profil zu schicken.
- Falls 6. zutrifft, Das entsprechende Formular auf der Seite anzeigen.
- Natürlich auch die notwendige Funktionalität, um das Formular aus 7. abzusenden und auszuwerten.
- Falls noch weitere Funktionen gewünscht sind, diese ebenfalls...
Ist also noch einiges an Arbeit...
P.S.: Bist du dir sicher, dass so ein Projekt für einen Anfänger geeignet ist? Is jetzt kein Vorwurf oder so, aber wenn man das ganze richtig machen will, ist das n verdammt fetter Haufen Arbeit, bis alles läuft.
Hm und wie genau meinst du soll ich das dann noch anpassen? Also DB Verbindung und was noch?
Sorry, bin Anfänger.