[PHP] Wie erstelle Ich mein eigenes User Control Panel? [How-TO]

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Es gibt Neuigkeiten! Ab sofort könnt ihr dem Donators Club auf Lebenszeit beitreten.
    Weitere Infos im Thema Donator's Club ab heute wieder verfügbar!

    • [PHP] Wie erstelle Ich mein eigenes User Control Panel? [How-TO]

      Weitere Teile folgen nach Anfrage per PN oder im Thread

      Herzlich Willkommen Brotfische!
      In dem Tutorial möchte Ich auf Grund Anfragen ein Tutorial schreiben wie ihr euer eigenes Control Panel coden könnt.
      Vorerst entschuldige ich mich auf Rechtschreibfehler. Falls im Tutorial etwas falsch beschrieben wurde oder sonstiges könnt ihr gerne hier drunter schreiben.
      Das UserCP wird kein Design besitzen, dafür seid ihr selber zuständig.

      Ich werde alles in Parts schreiben. In diesem Teil geht es um folgendes:
      > MySQL Verbindung
      > Login

      Fangen wir mal direkt an.

      Teil 1.0 > MySQL & Login
      Spoiler anzeigen

      Zur erst benötigen wir ein Webspace, ich verwende das Programm "XAMPP" da ich auf localhost code.
      Könnt ihr gerne auch falls nicht getan installieren, oder auf dem Server wo auch immer.

      Zuerst legen wir im Webspace folgende Dateien an:
      > global.php (Hier kommen die Sachen rein wie zum Beispiel die Mysql Verbindung, oder Benutzerdaten auslesen etc.)
      > index.php (Dies wird unsere Login Seite)
      > logout.php (Hier wollen wir den Spieler später ausloggen)
      > home.php (Hier listen wir die Statistiken des Spielers)
      Nun haben wir den ersten Schritt. Zunächst öffnen wir die global.php mit einem Editor (Ich benutze Notepad++) und schreiben folgendes rein:

      PHP-Quellcode

      1. <?php
      2. // Wir starten ein Session für den Benutzer/Besucher
      3. session_start();
      4. // Wir verbinden uns mit MySQL
      5. mysql_connect('localhost', 'root', '123456');
      6. // Wir wählen die Datenbank aus, aus dem wir unsere Daten auslesen wollen
      7. mysql_select_db('sampserver');
      8. // Wir überprüfen ob der Benutzer eingeloggt ist, falls ja lesen wir die Felder in der Tabelle von den Benutzer des Benutzers aus
      9. if(isset($_SESSION['username'])) { $SpielerInfo = mysql_fetch_object(mysql_query("SELECT * FROM users WHERE username = '".$_SESSION['username']."'")); }
      10. /* Nun können wir Beispiel mit >echo $SpielerInfo->username< den Name des Benutzers ausgeben. */
      11. ?>
      Alles anzeigen


      Nun haben wir schonmal den Mysql Teil und können uns mit Mysql verbinden.
      Jetzt benötigen wir das Login, dazu öffnen wir die login.php und schreiben folgendes rein:

      PHP-Quellcode

      1. <?php
      2. // Wir includen die global.php somit haben wir die Funktionen in global.php auch auf dieser Seite.
      3. require_once('global.php');
      4. // Wir überprüfen ob der Spieler schon eingeloggt ist, falls ja leiten wir in direkt zur Statistikseite (home.php)
      5. if(isset($_SESSION['username'])) { header('Location: home.php'); }
      6. // Wir überprüfen ob das Login Formular abgesendet wurde
      7. if(isset($_POST['submit']))
      8. {
      9. // Formular wurde abgesendet, nun erstellen wir 2 Variablen
      10. // Mit $_POST['username'] können wir den Inhalt des Textfeldes auslesen,
      11. // mit mysql_real_escape_string verhindern wir Sql Injection und haben mehr Sicherheit.
      12. $Username = mysql_real_escape_string($_POST['username']);
      13. // Genau das selbe wie oben, falls die Passwörter md5 verschlüsselt sind,
      14. // schreiben wir >$Password = md5($_POST['username']);<
      15. // Hier benötigen wir kein mysql_real_escape_string da wir das Passwort schon verschlüsselt haben.
      16. $Password = mysql_real_escape_string($_POST['password']);
      17. // Nun überprüfen wir ob ein Benutzer mit den angegebenen Daten in der Datenbank existiert
      18. if(mysql_num_rows(mysql_query("SELECT id FROM users WHERE username = '$Username' AND password = '$Password'")) == 1)
      19. {
      20. // Es existiert ein Benutzer mit den angegebenen Daten, somit sind die Daten korrekt und wir loggen den Spieler ein....
      21. // Wir setzen nun eine Session für den Benutzer, damit wir später abfragen können ob der Spieler eingeloggt ist,
      22. // oder nicht, oder um Daten des Spielers aus der Datenbank auszulesen.
      23. $_SESSION['username'] = $Username;
      24. // Nun wurde die Session gesetzt und der Spieler gillt als eingeloggt.
      25. // Jetzt leiten wir den Spieler auf die home.php
      26. header('Location: home.php');
      27. } else {
      28. // Es existiert kein Benutzer, somit sind die Daten falsch und wir geben eine Fehlermeldung aus
      29. echo 'Falsche Zugangsdaten';
      30. }
      31. }
      32. ?>
      33. <!DOCTYPE html>
      34. <html>
      35. <head>
      36. <title>Mein Samp UCP</title>
      37. </head>
      38. <body>
      39. <form method="POST">
      40. Benutzername: <input type="text" name="username" /><br />
      41. Passwort: <input type="password" name="password" /><br />
      42. <input type="submit" name="submit" value="Einloggen" /><br />
      43. </form>
      44. </body>
      45. </html>
      Alles anzeigen


      Nun brauchen wir auch die logout.php damit sich der Benutzer auch ausloggen kann. Dazu öffnen wir nun die logout.php und schreiben folgendes rein:

      PHP-Quellcode

      1. <?php
      2. // Wir starten eine Session falls, falls keine session gestartet wurde und wir auf die Datei zugreifen bekommen wir ansonnsten
      3. // eine Fehlermeldung.
      4. session_start();
      5. // Nun löschen wir die ganzen Sessions damit der Spieler ausgeloggt werden kann
      6. session_destroy();
      7. // Nun leiten wir den Spieler nach dem Ausloggen zur Startseite (Login)
      8. header('Location: index.php');
      9. ?>


      Nun haben wir das meiste schon hinter uns, der Spieler kann sich einloggen und ausloggen. Jetzt benötigen wir die Home Seite,
      damit der Spieler seine Statistik sehen kann. Dazu öffnen wir die home.php und schreiben folgendes rein:

      PHP-Quellcode

      1. <?php
      2. // Wir includen die global.php somit haben wir die Funktionen in global.php auch auf dieser Seite.
      3. require_once('global.php');
      4. // Wir überprüfen ob der Spieler eingeloggt ist, falls nicht leiten wir in zurück zur Login Seite.
      5. if(!isset($_SESSION['username'])) { header('Location: index.php'); }
      6. ?>
      7. <!DOCTYPE html>
      8. <html>
      9. <head>
      10. <title>Mein SampUCP - <?php echo $SpielerInfo->username; ?></title>
      11. </head>
      12. <body>
      13. <h1>Willkommen, <?php echo $SpielerInfo->username; ?></h1>
      14. @@807fcb59cb178c90db1975a994266eaf3e556025@@
      15. </body>
      16. </html>
      Alles anzeigen


      Und fertig sind wir mit dem ersten Teil unseres User Control Panels ^^


      Teil 1.1 > Mehr Statistiken einfügen, Skin anzeigen
      Spoiler anzeigen
      In diesem Teil geht es darum wie wir dem User mehr Statistiken seines Accounts anzeigen können.
      Fangen wir doch mal mit dem Skin an. Für die Skins benötigen wir erstmal ein Ordner
      wo die Skins nach der ID alle abgespeichert sind.
      (Ihr könnt den Skin Ordner von meinem UCP nehmen (templates/images/skins/) Zum UCP).
      Die Skins sollten am besten in einem Ordner sein, der Ordner sollte im Verzeichnis des UCP's liegen (Bsp: ucp-link/skins/).
      Meine Skins sind wie folgt abgespeichert "Skin_ID.PNG".
      So nun seid ihr schonmal etwas informiert. Wir öffnen zuerst die home.php und schreiben über

      PHP-Quellcode

      1. <h1>Willkommen, <?php echo $SpielerInfo->username; ?></h1>

      folgenden Code:

      PHP-Quellcode

      1. <img src="skins/Skin_<?php echo $SpielerInfo->skin; ?>.PNG" />

      rein. In der Benutzertabelle sollte eine Spalte für den Benutzer Namens "skin" geben (kann auch anders heißen).
      So nun zeigen wir den Skin des Spielers auf der home.php.

      Nun kommen wir zu mehr Statistiken einfügen. Um mehr Statistiken einzufügen wie Level oder
      Geld machen wir folgendes: Wir schreiben folgenden Code unter

      PHP-Quellcode

      1. <h1>Willkommen, <?php echo $SpielerInfo->username; ?></h1>

      PHP-Quellcode

      1. Level: <?php echo $SpielerInfo->level; ?><br />
      2. Geld: <?php echo $SpielerInfo->geld; ?><br />


      Ihr müsst die Struktur nach eurem anpassen. zum Beispiel kann bei euch die Struktur "geld" auch "money" heißen.
      Falls ihr dort Probleme habt schreibt einfach hier im Thread eine Nachricht.

      So nun haben wir mehr Statistiken und den Skin eingefügt.
      Auf Anfrage folgen weitere Teile :)


      Für Fragen und Verbesserungsvorschläge bin ich jederzeit offen. Hoffe es hat euch gefallen und geholfen.
      MfG

      Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von $ecure.x3 ()

    • G-Mac_x3 schrieb:

      jemand der das sieht schnappt sich z.b Notepad++, kopiert den Text fügt ihn ein und sacht "Fertig" ohne dabei was gelernt zu haben. In diesem Sinne C & P

      Kann ich zwar zustimmen, aber Tutorials sind da damit sich die User auch einpaar Minuten Zeit nehmen und es sich durchlesen.
      Wer etwas lernen will, wird sich das sicherlich durchlesen, der rest lernt halt nichts daraus, ist aber dann eigene Schuld.

      Chris_Parker schrieb:

      Da hast du Recht G-Mac, jedoch lernen viele Leute unter anderem ich, durch C & P.
      Auch wenn es schwer zu glauben ist... :)

      Chris_Parker schrieb:

      Sehr schöner erster Teil, ich hoffe auf gute weitere!

      Chris_Parker schrieb:

      Beste Grüße,
      Chris

      Vielen Dank ^^


    • Optionale Abkürzung für:

      PHP-Quellcode

      1. <h1>Willkommen, <?php echo $SpielerInfo->username; ?></h1>

      hier:

      PHP-Quellcode

      1. <h1>Willkommen, <?=$SpielerInfo->username;?></h1>

      Ist vom Prinzip her das gleiche, doch ist im endeffekt kürzer :D

      Ansonsten soweit ganz gutes tutorial, du solltest den 'gesamten code' nicht zusammen schreiben, weil
      newbies würden einfach C&P und dann zack ich habe ein UCP usw usw.
    • Necktrox schrieb:

      Wie wärs mal mit Klassen und PDO? Würdest damit nicht 50% der Login/Register Tutorials wiederspiegeln.
      Normalerweiße arbeite ich mit Klassen, jedoch reicht das für Anfänger.

      .: xGreekz7x :. schrieb:

      PHP-Quellcode

      1. <h1>Willkommen, <?php echo $SpielerInfo->username; ?></h1>

      hier:

      PHP-Quellcode

      1. <h1>Willkommen, <?=$SpielerInfo->username;?></h1>

      Shortcuts werden nur akzeptiert wenn es eingestellt ist, wollte mal Fragen von den Schüler vermeiden.

      .: xGreekz7x :. schrieb:

      Ansonsten soweit ganz gutes tutorial, du solltest den 'gesamten code' nicht zusammen schreiben, weil
      newbies würden einfach C&P und dann zack ich habe ein UCP usw usw.
      Vielen Dank für das Feedback. Zum C&P habe ich ja schon etwas gesagt.