PHP Tutorial Teil 10 – Profi Login 1

In diesem Teil meiner PHP-Videotutorialreihe fangen wir mit der Entwicklung eines ausgewachsenem Login an.

Code:
index.php:

  1.  
  2.     require(‚Database.php‘);
  3.     require(‚LoginSystem.php‘);
  4.     $database = new Database(‚localhost‘, ‚root‘, , ‚tutorial‘);
  5.     $loginSystem = new LoginSystem($database);
  6.  
  7.         if($loginSystem->login(‚a@b.de‘, ‚irgendwas‘) == true)
  8.         {
  9.                 echo(‚erfolg‘);
  10.         }
  11.  
  12.     $database->close();
  13.  

loginSystem.php:

  1.  
  2.         class LoginSystem
  3.         {
  4.                 private $database;
  5.  
  6.                 public function LoginSystem($database)
  7.                 {
  8.                         $this->database = $database;
  9.                         session_cache_limiter(20);
  10.                         session_start();
  11.                 }
  12.  
  13.                 public function login($email, $password)
  14.                 {
  15.                         $loginDataValid = $this->checkLoginData($email, $password);
  16.                         if($loginDataValid == true)
  17.                         {
  18.                                 $db_res = $this->database->runSQLQuery("SELECT * FROM users WHERE Email=’" . $email . "’");
  19.                                 $row = mysql_fetch_array($db_res, MYSQL_ASSOC);
  20.  
  21.                                 $_SESSION[‚isLoggedIn‘] = true;
  22.                                 $_SESSION[‚Username‘] = $row[‚Username‘];
  23.                                 $_SESSION[‚Password‘] = $row[‚Password‘];
  24.  
  25.                                 return(true);
  26.                         }
  27.                         else
  28.                         {
  29.                                 return($loginDataValid);
  30.                         }
  31.                 }
  32.  
  33.                 /* checkLoginData
  34.                  * Prüft, ob ob ein Benutzer mit den angegebenen Login-Daten existiert.
  35.                  * $email: Angegebene E-Mail des Benutzers
  36.                  * $password: Angegebenes Passswort des Benutzers
  37.                  * returns: Wenn Benutzer existiert: true, sonst wrongEmail bei falscher E-Mail-Adredesse
  38.                  *                      und wrongPassword bei falschen Passwort */
  39.                 private function checkLoginData ($email, $password)
  40.                 {
  41.                         $db_res = $this->database->runSQLQuery("SELECT Password FROM users WHERE Email=’" . $email . "’");
  42.                         if(mysql_num_rows($db_res) == 0)
  43.                         {
  44.                                 return(‚wrongEmail‘);
  45.                         }
  46.  
  47.                         while($row = mysql_fetch_array($db_res, MYSQL_ASSOC))
  48.                         {
  49.                                 if($row[‚Password‘] == $password)
  50.                                 {
  51.                                         return(true);
  52.                                 }
  53.  
  54.                                 return(‚wrongPassword‘);
  55.                         }
  56.                 }
  57.  
  58.         }
  59.  

database.php:

  1.    class Database
  2.     {
  3.         private $host;
  4.         private $username;
  5.         private $password;
  6.         private $database;
  7.                 private $db_link;
  8.  
  9.                 public function Database($host, $username, $password, $database)
  10.                 {
  11.                         $this->host = $host;
  12.                         $this->username = $username;
  13.                         $this->password = $password;
  14.                         $this->database = $database;
  15.  
  16.                         $this->connect();
  17.                 }
  18.  
  19.                 private function connect()
  20.                 {
  21.                 $this->db_link = mysql_connect($this->host, $this->username, $this->password);
  22.                 if($this->db_link)
  23.                 {
  24.                                 mysql_select_db($this->database, $this->db_link);
  25.                         }
  26.                         else
  27.                         {
  28.                                 die(‚<p>Das Herstellen der Verbindung zur Datenbank ist fehlheschlagen</p>‘);
  29.                         }
  30.                 }
  31.  
  32.                 public function runSQLQuery($sql)
  33.                 {
  34.                         if($this->db_link)
  35.                         {
  36.                                 $db_res = mysql_query($sql, $this->db_link) or die(mysql_error() .
  37. . $sql);
  38.                                 return($db_res);
  39.                         }
  40.                 }
  41.  
  42.                 public function close()
  43.                 {
  44.                         mysql_close($this->db_link);
  45.                 }
  46.         }

Vorschau

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*