/tutorial-login_programmieren.html PHP Login programmieren - Login registrieren, Logout und Member Login
  PHP Kurs Logo  
 
Buttons PHP Kurs - Kapitel Trennlinie Downloads Trennlinie Was brauche ich ? Trennlinie Entwickler Jobs Trennlinie Kontakt Trennlinie Impressum Buttons
 
 
Menu
Allererste PHP Schritte
- Webserver Installation
- PHP Editor Installation

PHP Grundlagen
- PHP Grundwissen
- Mein erstes Programm
- Kommentare einfügen
- Variablen
- PHP+HTML mischen
- If Abfragen
- Rechenarten
- Arrays
- Schleifen
- Funktionen
- Klassen
- Includes
- Sessions und Cookies
- Login mit Sessions
- Login mit Datenbank
- Referer auslesen
- Wert aus Datenbank
- Variablen übergeben

MySQL Grundlagen
- Was ist das ?
- Erste Schritte
- Verbindung herstellen
- Einfache SQL Befehle
- SQL Injection

Häufig gefragt
- Was ist Adwords ?
- Interessante Links
- Wasserzeichen mod_rewrite
- Thumbnails erstellen
- PHP Gästebuch
- PHP Header
- Webseiten auslesen
- Socket Verbindungen
- E-Mail Adressen prüfen
- E-Mails versenden
- $_GET & $_POST
- Datenbank sichern
- Server DDOS Angriffe Abwehren
- Webhosting - Worauf ist zu achten ?
- Fachübersetzungen

Interessante Artikel
- Soft-Skill-Zertifizierung
- Sicherheits Workshops


Login mit PHP Session programmieren

Sehr oft lese ich von Neulingen die Frage wie man denn einen Login programmiert. Deshalb wollen wir hier darauf eingehen und uns ein kleines Login Skript basteln, welches noch nach belieben erweitert werden kann.

Um einen Login zu programmieren, benötigen wir erstmal eine Möglichkeit Daten speichern zu können. Hierfür hätten wir die MySQL Datenbank, Cookies und Sessions zur Auswahl. Die Daten werden nur für den Zeitraum benötigt, die der User auf unserer Homepage surft. Aufgrund dessen müssen wir die Daten nicht permanent speichern und lassen die MySQL Datenbank aussen vor. Ausserdem müssen die Daten nach jedem Seitenaufruf wieder zur Verfügung stehen. Mit MySQL müssten wir die IP Adresse als Merkmal mit speichern, damit wir den Login den Users zuordnen können. Da es aber Anbieter wie AOL gibt, wo die IP Adresse zur Laufzeit unterschiedlich sein kann, verlassen wir uns nicht darauf. Wir wählen die Sessions, da sie temporär verfügbar sind, sich automatisch löschen und der User aus Sicherheitsgründen beim Öffnen eines neuen Browsers sich erneut einloggen muss ; nicht dass jemand anders am selben Computer eingeloggt ist nur weil er einen Browser öffnet (cookies).

Als erstes starten wir die Session(); und fragen ab, ob der Surfer eingeloggt ist:

Datei: index.php

<?php
    session_start
();

    
$_logindaten = ARRAY("name"=>"admin""passwort"=>"12345");

    if (isset(
$_POST["loginname"]) && isset($_POST["loginpasswort"]))
        {
        if (
$_logindaten["name"] == $_POST["loginname"] &&
            
$_logindaten["passwort"] == $_POST["loginpasswort"])
            {
            
# Userdaten korrekt - User ist eingeloggt
            # Login merken !
            
$_SESSION["login"] = 1;
            }
        }

    if (
$_SESSION["login"] != 1)
        {
        include(
"login-formular.html");
        exit;
        }

    
# User ist eingeloggt
?>

In dem Programm haben wir die Session(); gestartet, in einem Array gespeichert wie der korrekte Login lauten müsste und dann anhand $_SESSION['login'] überprüft, ob der Surfer eingeloggt ist. Ist er nicht eingeloggt, dann wird das Formular "login-formular.html" angezeigt und aus dem Programm ausgestiegen.

Dazwischen haben wir noch eine Prüfung eingebaut. Mit isset();überprüfen wir, ob die Variablen aus dem Formular gesetzt sind. Ist dies der Fall, dann versucht der User einen Login und wir müssen die Daten überprüfen. Hierzu wird das Array mit den Logindaten mit den eingegebenen verglichen. Sind diese identisch, wird der Login gespeichert.

Datei: login-formular.html

<form method="POST" action="index.php">
<b>Login</b><br>
<br>
Username: <input name="loginname"><br>
Passwort: <input name="loginpasswort" type=password><br>
<br>
<input type=submit name=submit value="Einloggen">
</form>






<<<< zurück Kapitelauswahl vorwärts >>>>




Kommentare: (absteigend sortiert)

Hier stehen noch alte Kommentare, die direkt über die Webseite gemacht wurden. Es kann dort nicht weiter kommentiert werden. Bitte nutzt dafür die Facebook Kommentare.

.:: 19.09.13 - 19:41 Uhr :: Name: ilyas ::.
Das ganze Loginsystem im Internet verwirrt mich, denn ich habe mir mehrere tutorials über session&login angesehen und jedes Tutorial hat seinen eigenen PHP script ;/

.:: 09.04.13 - 08:07 Uhr :: Name: Wolfgang ::.
Bitte um Eure Hilfe.
Warum geht mein folgender Code nicht,
es scheint als würden die Daten in der bilder.php nicht ankommen, weder der Satz mit dem erfolgreich eingeloggt noch der Name wird ausgegeben:

<!----index.php---------------------->
<!DOCTYPE html>
<html lang="en">
<head>
</head>

<body>
<?php
session_start();
$name = $_POST['username'];
$pass = $_POST['kennwort'];

if(isset($name) AND $pass=='darf')
{
$_SESSION['user'] = $name;
$_SESSION['pass'] = $pass;
echo "Hallo $name <br>
<a href='bilder.php'>Weiter</a>";
}
else
{
?>
<h2>Bitte geben Sie Ihre Daten ein:</h2>
<form action="index.php" method="post">
<label for="username">Username: </label>
<input type="username" name="username" value="ich" required><br>
<label for="kennwort">Kennwort</label>
<input type="password" name="kennwort" /><br>
<input type="Submit">
</form>
<?php
}
?>
</body>
</html>

<!-------bilder.php--------------------------->

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<link href="css/style.css" rel="stylesheet">
<title>Für Freunde</title>
</head>

<body>

<?php
session_start();

$name = $_SESSION['user'];
$pass = $_SESSION['pass'];

if($pass=='darf')
{
echo "Zugriff erlaubt";
}
else
{
echo "Zugriff fehlgeschlagen";
}

echo "Hallo ",$name,"!";

?>

</body>
</html>

.:: 21.02.13 - 12:21 Uhr :: Name: hoijgjh ::.
Danke :)

.:: 16.03.12 - 09:35 Uhr :: Name: nerdnoob ::.
@tomkro ich werd dich definitiv adden^^
brauch deine hilfe sofern du zeit hast

.:: 12.03.12 - 22:29 Uhr :: Name: barfly ::.
bei der if-Abfrage ( if ($_logindaten["name"] == $_POST["loginname"] ....) einfach eine elseif einfügen. (Wenn keine Übereinstimmung, dann $_SESSION["login"] = 0;)
Dann funzt der LogIn nur noch mit den richtigen LogIn-Daten.

.:: 23.02.12 - 13:14 Uhr :: Name: Hallo ::.
Woran kann es liegen, wenn das login-Formular wieder erscheint, sobald man die seite neu lädt?

.:: 22.10.11 - 23:35 Uhr :: Name: John ::.
Wo kommt die Variable Login her?
Oder habe ich etwas falsch verstanden?

.:: 03.07.11 - 18:04 Uhr :: Name: Hi ::.
Ich verstehe das nicht

.:: 03.03.11 - 21:12 Uhr :: Name: tomkro ::.
ich kann euch vl bei ein paar fragen helfen.. kontaktiert mich einfach bei skype ;) hier wird das zu unübersichtlich..
skype: alex.tom.kro
mfg
tomkro

.:: 02.03.11 - 11:40 Uhr :: Name: Sandro ::.
Hallo Charly! Wenn man sich erfolgreich eingeloggt hat, soll bei meiner Webseite ein Link erscheinen, welcher zum Logout führt. wie soll ich machen, dass $_SESSION["login"] wieder auf 0 geht? macht es das automatisch?

.:: 19.02.11 - 22:41 Uhr :: Name: Michael ::.
Mich würde mal interessieren, wie man einen Benutzer automatisch registrieren kann. Das heißt, einen neuen Benutzer in die Datenbank einträgt, ihm einen Ordner auf dem Server zuweist und einen Aktivierungslink per email sendet!

.:: 01.02.11 - 16:16 Uhr :: Name: pille18 ::.
Schön und gut. Aber wie funktioniert das mit abspeichern der user-daten in einer text-datenbank

.:: 14.01.11 - 20:30 Uhr :: Name: tomkro ::.
ja, ich hba jz php gelernt und weiß jz ein skript das funzt :D
Anmerkung Charly: Das freut mich. Jetzt sollten wir nur noch an Deinen Sprachkenntnissen feilen :)

.:: 11.01.11 - 12:30 Uhr :: Name: dIe sTimMe ::.
Stimmt, jeder Name wird akzeptiert.
Und jedes Passwort.

Und jetzt behaupte ich mal das dass auch in Ordnung so ist, denn es wird ja lediglich die Session gespeichert und kein \"ELSE\"-Fall im Falle eines falschen Namen oder Passwortes abgehandelt.

Es geht doch jetzt erst mal darum das, solange die Session aktiv ist, ich nicht nochmals Name und PW eingeben muss, oder?!

.:: 16.12.10 - 17:12 Uhr :: Name: tomkro ::.
hmm.. bei mir kann man sich mit jedem benutzernamen anmelden^^

.:: 13.12.10 - 14:08 Uhr :: Name: BaDiN ::.
Wäre nicht besser, wenn mann statt
$_SESSION["login"] = 1;
<<---------------->>
if( Userdaten Check ){
Wenn korrekt sind
$_SESSION['login'] = true;
} else {
Wenn nicht korrekt sind
$_SESSION['login'] = false;

}
dann
if($_SESSION['login']){
echo "Eingeloggt";
} else {
echo "Nicht eingeloggt";
}
oder
if (!$_SESSION['login']) {
echo "Nicht eingeloggt";
} else{
echo "Eingeloggt";
}
<<---------------->>
benutzt.

.:: 23.05.10 - 12:11 Uhr :: Name: Charly ::.
Prinzipiell hast Du natürlich vollkommen Recht Mark. Da ich aber so wenig wie möglich schreiben will, um nicht durch unnötige Zeilen zu verwirren habe ich diese weggelassen, da die Browser den Inhalt trotzdem anzeigen.

Sicher sollte man für ordentliches HTML später auf solche Sachen achten.

Gruß
Charly

.:: 05.05.10 - 18:05 Uhr :: Name: mark ::.
Beiform...fehlt nicht der doctype,html,head/body?









Content
 
  Bottom Design  


PepperTools.de Software Download | Software Shop
www.imilkowski.eu - Software Programmierung und Webdesign


 


Persönliche Empfehlung
Mit Wix.com eine kostenlose Homepage erstellen ? Einfach, schnell und ohne Vorkenntnisse.