Login Seite erstellen

perle93

Erfahrenes Mitglied
Hallo, ich habe mir überlegt, dass es gut wäre, wenn ich meine Seite für Kunden mit einem Loginfeld verbessere. So können Kunden direkt sich einloggen und Ihre Daten runterziehen. Jedoch wie erstelle ich ein solches Loginfeld, ohne grossen Aufwand?

Danke euch
 
Du musst auf jeden Fall folgende Sprachen können:
  • HTML
  • SQL
  • PHP/Perl/...
(Beim letzteren sind auch andere Sprachen möglich, aber PHP wird am meisten genutzt)
 
@Gast: Ich glaube perle93 kennt sich schon ein wenig mit PHP aus, oder? ;)
Wäre aber auch möglich, doch Passwortvergessen ist nicht sehr leicht zu implementieren (<->MySQL).

Ich verweise mal auf einen siebenseitigen Thread, wo perle93 (Threadersteller(in)) und u.a. ich beteiligt war: Kopieren eines Formulars
 
@Gast: Ich glaube perle93 kennt sich schon ein wenig mit PHP aus, oder? ;)
Wäre aber auch möglich, doch Passwortvergessen ist nicht sehr leicht zu implementieren (<->MySQL).

Ich verweise mal auf einen siebenseitigen Thread, wo perle93 (Threadersteller(in)) und u.a. ich beteiligt war: Kopieren eines Formulars
Was du so glaubst, interessiert mich hier die Bohne, und was da in der Vergangenheit schon alles für Themen besprochen wurden, worin du deinen Senf zum Besten gegeben hast, kannst du meinetwegen deiner Oma von berichten - vielleicht lässt sie sich ja davon beeindrucken.
 
@Gast: Ich wollte keinen Streit anfangen. Ich habe nur zwei Nachteile für deine Lösung genannt. Wo ist da das Problem? Das ist doch Fakt. Natürlich gibt es auch Vorteile, aber SQL ist dafür besser geeignet.
 
Hey, nicht streiten und das letzte Mal hat es zwar etwas gedauert mit mir und meinen Fähigkeiten,-) Aber das Resultat kam gut an bei meiner Kundin. Es geht auch nicht um Recht oder Unrecht, sondern darum, das ich gerne eine Seite machen möchte, auf der meine Kunden sich einloggen können. Wenn sie ein PW vergessen haben sollten sie ein neues bekommen und auf die registrierte Mailadresse zu gesandt bekommen. Das es nicht einfach ist, dachte ich mir schon,-). wäre aber dennoch klasse, wenn sich jemand dafür Zeit nimmt,-))


Ich habe gestern ein Tut gefunden hier, finde es aber heute nicht wieder. Mit MySQL stehe ich derzeit noch etwas auf Kriegsfuss, möchte es aber gerne unter Anleitung verstehen und einsetzten. PHP ist nun auch etwas klarer ;-), aber das war ja nur ein Bruchteil den wir da durchgearbeitet haben, oder?
 
Zuletzt bearbeitet:
@perle93: Das war eher Copy&Paste :D

Also zuerst brauchst du eine MySQL-Datentabelle. Meistens hat man immer folgende Grundstruktur:
SQL:
CREATE TABLE users (id INTEGER PRIMARY KEY AUTO_INCREMENT,
                               username VARCHAR(30),
                               pw VARCHAR(40),
                               registerDate INTEGER
                              );
Die ID ist eine fortlaufende Zahl zur eindeutigen Identifikation.
Der Benutzer ist maximal 30 Zeichen lang (Kannst du ändern).
Das Passwort ist 40 Zeichen lang, weil wir die Passwörter mit MD5 & SHA verschlüsselt abspeichern.
registerDate speichert den Zeitpunkt der Registrierung als Sekunden seit 1970 (UNIX Timestamp).

Wenn du willst kannst du auch noch eine Tabelle "logins" machen, die alle Logins speichert:
SQL:
CREATE TABLE logins (id INTEGER PRIMARY KEY AUTO_INCREMENT,
                                   userid INTEGER NOT NULL,
                                   loginDate INTEGER,
                                  );
Eventuell wäre eine Tabelle "badlogins" (mit IP-Adresse,...) auch möglich.

Ok, jetzt brauchst du das PHP-Skript, z.B. login.php:
PHP:
<?php
  session_start();
  require_once("db.php"); // Datenbank konfigurieren, starten, ...
  
  if (isset($_POST['submit']))
  {
    
    $Username = mysql_real_escape_string($_POST['username']);  // Übertragene Daten in Variablen speichern
    $Password = mysql_real_escape_string($_POST['password']);  // und direkt escapen (gg. MySQL Injections)
    
    $Password = sha1(md5($Password));  // Passwort 2-mal verschlüsseln, Endergebnis 40-Zeichen lang
    
    $sql = "SELECT id FROM users WHERE username='".$Username."' AND password='".$Password."' LIMIT 1";
    $result = mysql_query($sql);
    
    if (mysql_num_rows($result)>0) // Ein Ergebnis gefunden = Login erfolgreich
    {
      $id = mysql_fetch_row($result);  // User ID in $id speichern
      $id = $id[0];
      
      $_SESSION['userid'] = $id;
      $_SESSION['username'] = $Username;
      $_SESSION['loggedIn'] = true;
      
      /*  $sql = "INSERT INTO logins (userid, loginDate) VALUES (".$id.",".time().")";
          mysql_query($sql);  */
      // Kommentare entfernen, wenn genutzt wird
    }
    else
    {
      $template = file_get_content("templates/login.html"); // Im Template eine Fehlermeldung schreiben
      $template = str_replace("<!-- login error -->", "<span class=\"loginerror\">Login nicht erfolgreich!</span>", $template);
      echo $template;
    }
    
  }
  else
  {
    require("templates/login.html");
  }
?>
 
Zuletzt bearbeitet:
Wow, wäre echt toll, wenn du mir nochmals Hilfestellung gibst...Ich hoffe es kostet nicht gleich wieder 5 Mio. Nerven bei dir ;-). Aber es geht schon mit der ersten Frage los, woher, oder wie mache ich die Tabelle?
 
Zurück