Automatisch User-Profile erstellen?

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. 

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...)

HamsterKnowHow 
Fragesteller
 17.09.2017, 22:00

Hm und wie genau meinst du soll ich das dann noch anpassen? Also DB Verbindung und was noch? 

<?php 

session_start();
$pdo = new PDO('mysql:host=localhost;dbname=blub', 'blab', 'blib');

Sorry, bin Anfänger. 

0
Isendrak  17.09.2017, 22:23
@HamsterKnowHow

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:

  1. Verbindung zur Datenbank.
  2. Abfrage der Profildaten des gewünschten Benutzers aus der Datenbank.
  3. Fehlermeldung, falls 2. fehlschlägt.
  4. Layout der Profilseite.
  5. Anzeigen der Informationen auf der Profilseite.
  6. Überprüfen, ob der Besucher der Profilseite die Berechtigungen hat, um Kommentare/Nachrichten/o.ä. an das Profil zu schicken.
  7. Falls 6. zutrifft, Das entsprechende Formular auf der Seite anzeigen.
  8. Natürlich auch die notwendige Funktionalität, um das Formular aus 7. abzusenden und auszuwerten.
  9. 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.

0