Luky.cc NetworkLuky.cc NetworkLuky.cc Network - AutoDetectLuky.cc Network - AutoDetectEinloggenLuky.cc Network - AutoDetect

LukyDeluxe8 1.0 
dAxEngine 1.0 powered 

LukyDeluxe8

LukyChat

LukyThoughts

PHP

MySQL

CS: S

Service

 

T
u
t
o
r
i
a
l
 

 


PHP Tutorial > Kapitel 5: Cookies und Formulare


Antworten zu Fragen aus Kapitel 4:
1. Was passiert wenn ich "while(true)" ausführe? Wie kann man Endlosschleifen aufhalten?
Die While-Schleife erwartet eine Bedingung. Wenn diese, wie hier mit "true", erfüllt ist, wird die Schleife weiterhin ausgeführt. Wenn die Schleife durch die Bedingung nach vielen Durchläufen nicht gestoppt wird, spricht man von einer Endlosschleife. Diese kann durch den "break;" Befehl an einer gewünschten Stelle gestoppt werden.
2. Zähle die vier Schleifenarten auf.
While, Do-While, For, Foreach
3. Welche Schleife ist auf Arrays spezialisiert?
Die Foreach-Schleife.

Cookies
M
an spricht oft von Cookies, doch was genau sind Cookies? Am besten siehst Du in "C:\Dokumente und Einstellungen\Dein Username\Cookies" nach und schaust dir eine der vielen Textdateien an, die sich dort befinden.
Genau, Cookies sind Textdateien die von Webseiten an den Benutzer gesendet werden.
Cookies können Zahlen, Zeichenketten beinhalten. Zum Beispiel kann man mit Cookies Zählen, wie oft ein einzelner Besucher schon auf Deiner WebSeite war.
Jedoch kann jeder Benutzer seine Cookies verwalten und bei Bedarf löschen. Am Öftesten werden Logininformationen mit Cookies gespeichert.
PHP stellt für Cookies eine Funktion und ein Superglobales Array zur Verfügung. setcookie() und $_COOKIE[].
Mit
 setcookie("namedescookies", "wert");
setzt Du Cookies die an den Benutzer gesendet werden. Mit
 $_COOKIE["namedescookies"];
bekommst Du den Wert des Cookies wieder in dein Script.

Wann immer Du ein Cookie an den Benutzer schickst, solltest Du darauf achten, dass davor keine Ausgabe von Text passiert. Wenn vor dem Einsatz von setcookie() schon ausgegeben wurde, wird das Cookie nicht gesetzt.

Tutorial_Kapitel5_Beispiel_1.php:
<?php

if($_COOKIE["meincookie"] == "")
{
 
setcookie("meincookie", mt_rand(1, 50), 3600);
 echo
"Diese Nachricht erscheint erst wieder, wenn Du deine Cookies gelöscht hast oder eine Stunde vergeht.";
}
else
{
 echo
"Das Cookie ist gesetzt. Es beinhaltet die Zahl ".$_COOKIE["meincookie"].".";
}

?>


Formulare
I
n Kapitel 2 wurde schon ein kleiner Vorgeschmack auf die Fähigkeiten von Formularen gezeigt. Hier lernst du jetzt, sie für den eigenen Gebrauch einzusetzen.
Die häufigste Formularart die dir sicher bekannt ist, ist das Einloggen-Formular. Man gebe Username, Passwort an, klicke vielleicht noch auf eine "Automatisch Einloggen" Checkbox und drückt auf den Abschicken Knopf.
Wie das ganze Funktioniert kannst Du dir im folgenden Beispiel ansehen.

Tutorial_Kapitel5_Beispiel_2.php:
<?php

$username
= "Luky";
$passwort = "lalelu";

if(
$_COOKIE["loginusername"] == "")
{
 if(
$_POST["username"] == "")
 {
  
?>
  <form method="POST" action="Tutorial_Kapitel5_Beispiel_2.php">
  Username: <input type="text" name="username">

  Passwort: <input type="password" name="passwort">

  <input type="checkbox" name="save" value="1"> Automatisch Einloggen?
  <input type="submit" value="Einloggen">
  </form>
  <?php
 }
 else
 {
  if(
$_POST["username"] == $username && $_POST["passwort"] == $passwort)
  {
   if(
$_POST["save"] == 1)
   {
    
setcookie("loginusername", $_POST["username"], ((3600*24)*365));
    
setcookie("loginusername", $_POST["username"], ((3600*24)*365));
    
// ((3600*24)*365) = 365 Tage in Sekunden
   }
   else
   {
    
setcookie("loginusername", $_POST["username"]);
    
setcookie("loginusername", $_POST["username"]);
    
// Cookies werden gespeichert solange der Browser offen ist.
   }
   echo
"Loginvorgang erfolgreich! <a href=\"Tutorial_Kapitel5_Beispiel_2.php?a=1\">Ausloggen</a>";
   
// ... Zum Beispiel Administrationsbereich ...
  }
 }
 else
 {
  echo
"Falsches Passwort! <a href=\"Tutorial_Kapitel5_Beispiel_2.php\">Nochmal versuchen</a>";
 }
}
elseif(
$_COOKIE["loginusername"] == $username && $_COOKIE["loginpasswort"] == $passwort)
{
 if(
$_GET["a"] == 1)
 {
  
setcookie("loginusername", "", 0);
  
setcookie("loginpasswort", "", 0);
  echo
"Du wurdest ausgeloggt. <a href=\"Tutorial_Kapitel5_Beispiel_2.php\">Klicke hier um dich wieder einzuloggen.</a>";
 }
 echo
"Du bist eingeloggt! <a href=\"Tutorial_Kapitel5_Beispiel_2.php?a=1\">Ausloggen</a>";
 
// ... Zum Beispiel Administrationsbereich ...
}
else
{
 
setcookie("loginusername", "", 0);
 
setcookie("loginpasswort", "", 0);
 echo
"Cookie wurde manipuliert!";
}

?>


Für dieses Beispiel habe ich mich auf einen möglichen Usernamen und ein Passwort beschränkt. Im Anhang zu diesem Kapitel findest du eine zweite Version die mehrere Benutzernamen / Passwörter erlaubt.

Code Analysieren:
I
n diesem Script wird $_POST, $_GET und nun auch $_COOKIE verwendet. (Arrays mit _ am Anfang sind meistens von PHP gesetzt) Zur Wiederholung: Wenn ein Formular mit method="POST" eingestellt wird, wird das $_POST[] Array verwendet. Wenn method="GET" dann das $_GET[] Array.
Wenn du dir den Link
 <a href=\"Tutorial_Kapitel5_Beispiel_2.php?a=1\">Ausloggen</a>
ansiehst, erkennst du a=1. Dies setzt $_GET["a"] zu 1. Ein GET Befehl erfolgt also über die Adresszeile.
Ein Link kann wie folgt aussehen:
 <a href=\"Tutorial_Kapitel5_Beispiel_2.php?a=1&b=2&c=3&d=4\">Ausloggen</a>
Die Struktur ist ganz einfach: Die erste Variable wird mit einem Fragezeichen "?" eingeleitet. Die Restlichen mit "&". Wenn dieser Link ausgeführt wird, besitzt das $_GET[] Array: $_GET["a"], $_GET["b"], $_GET["c"], $_GET["d"].
 
Was passiert nun im Detail?
Am Anfang setze ich einen Usernamen und ein Passwort als Variablen mit der ersten IF-Abfrage schaue ich nach ob der Benutzer nicht schon eingeloggt ist.
Ist dieses Cookie nicht gesetzt schaue ich nach, ob der Benutzer nicht schon das Formular ausgefüllt hat.
Wenn nicht, dann soll das Formular angezeigt werden.
Ist nun das Formular ausgefüllt, wird der Username und das Passwort überprüft bevor etwas in die Cookies geschrieben wird.
Wie du siehst, wird überall zuerst das Cookie gesetzt bevor etwas ausgegeben wird.
Wenn der Benutzer nun Automatisch Einloggen wünscht, wird das Cookie hier für einen Tag gespeichert. (3600 Sekunden mal 24 für Stunden und wieder mal zum Beispiel 365 für Tage).
Wenn NICHT dann wird das Cookie so lange gespeichert sein, bis der Benutzer seinen Browser schließt.
Wird das Script aufgerufen und die Cookies beinhalten die richtigen Daten, so bekommt der User den Eingeloggten-Bereich zu sehen wo er sich auch ausloggen kann. Beim Ausloggen werden den 2 Cookies leere Werte zugefügt.

Datenmanipulation
Es kann vorkommen, dass sich ein bösartiger Benutzer in dein System einschleusen will und eine Sicherheitslücke ausnutzt. Wenn die 2 Cookies in diesem Beispiel nicht die gewünschten Werte enthalten, da sie manipuliert wurden, werden sie sofort gelöscht. In diesem Tutorial befindet sich weiter vorne noch ein ganzes Kapitel über die Wichtigkeit der Sicherheit in PHP.

Formularfelder
H
TML bietet eine große Reihe an Formularfeldern an. In Kapitel 2 wurden einige schon besprochen. Noch einmal zur Übersicht:

 <form method="POST/GET/PUT" action="phpdatei.php" name="namedesformulars">FORMULARFELDER</form>
 <input type="typ" name="variablenname" value="Standartwert" size="länge" disabled checked>
 <select name="variablenname" disabled><option value="wert1" selected>Wert1 Beschreibung</option><option value="wert2">Wert2 Beschreibung</option></select>
 <textarea name="variablenname" cols="breite" rows="höhe" disabled>Standartwert</textarea>
 

Der <form> Tag leitet ein Formular ein und wieder aus. Innerhalb des Form Tags müssen alle benötigten Formularfelder stehen. Man sollte nie vergessen den <form> Tag wieder zu schließen. Ansonsten können Probleme auftreten.
Das Input Feld ist das Wichtigste zur Erstellung von Formularen. Folgende Werte können in den type="" Parameter kommen:

 type="text"
 type="password"
 type="hidden"
 type="checkbox"
 type="radio"
 type="submit"
 type="button"
 type="reset"


Typ Text erstellt dir eine Textbox die du mit "size" länger/kleiner machen kannst.
Typ Password erstellt dir eine Textbox in die der Benutzer sein Passwort schreiben kann ohne dass es angezeigt wird.
Typ Hidden erlaubt es, Variablen mit dem Formular an das eigene Script "weiter zu senden", ohne dass es der Benutzer "sieht".
Typ Checkbox ist ein Wahr / Falsch wert. Entweder ist die Variable der Checkbox deklariert (angeklickte Checkbox) oder nicht.
Typ Radio zeigt dem Benutzer eine Auswahlbox an. Wenn du mehrere Radio Felder mit dem selben Namen  aber verschiedenen Werten erstellst, entscheiden diese über den Inhalt dieser Variable.
Typ Submit sagt dem Browser, dass das Formular bereit zum abschicken ist.
Typ Button zeigt einen beliebigen Button an der mit Javascript genutzt werden kann.
Typ Reset setzt alle Formularfelder auf die value="wert" Standartwerte zurück.

Select ist eigentlich eine Form des Input Tags, jedoch als eigener Tag erstellt worden. Man benutzt Select um Dropdownlisten zu erstellen. Auswahlfelder fügt man mit dem <option> Tag hinzu.

Der Textarea Tag ermöglich dir, dem Benutzer ein mehrzeiliges Textfeld anzuzeigen. Da HTML den Zeilenumbruch in diesem Textfeld nicht darstellt muss dieser Zeilenumbruch in den <br> Tag umgewandelt werden.

Fragen zu diesem Kapitel:
1. Was sind Cookies?
2. Als was werden Cookies bei Usern gespeichert?
3. Welches Array beinhaltet gesetzte Cookies?
4. Welche Elemente beinhaltet ein gesamtes Formular?
5. Zähle die 4 wichtigen HTML Tags auf mit denen man Formulare erstellt.
6. Was weißt du über $_POST, $_GET, $_COOKIE?

Antworten in Kapitel 6

Alle Beispiele von Kapitel 5





 

Navigation «
 

Einführung
Basiswissen / HTML
Tutorial
Codeschnipsel
Links

Sitemap

LD unterstützen «
 

 

Developed by dAxpHpNIzER™
Copyright © Lukas Wojcik 2002 - 2021. Alle Rechte vorbehalten. AGB

 

Extesizer.at