Super Tutorials - Das PHP Tutorial

Verzeichnis:
  1. 1. Die richtige Software
  2.   1.1 XAMPP korrekt installieren (Windows)
  3.   1.2 XAMPP richtig konfigurieren (Windows)
  4. 2. PHP lernen
  5.   2.1 php-Dateien erstellen
  6.   2.2 PHP Variablen
  7.   2.3 Bedingungen (wenn dann sonst)
  8.   2.4 Parameter
  9.     2.4.1 GET-Parameter
  10.     2.4.2 POST-Parameter
  11.     2.4.3 COOKIE-Parameter
  12.   2.5 Formulare
  13.   2.6 Ein Login (Nur Autorisation)
  14.   2.7 Ein Login (mit COOKIE-Parameter)
  15.   2.8. Der Logout (mit COOKIES)
Drucken

1. Die richtige Software ^Seitenanfang

Um PHP Dateien ausführen zu können benötigt man eine Art Server. Dazu empfehle ich XAMPP! Bitte downloade Dir XAMPP und gehe zum nächsten Schritt.

1.1 XAMPP korrekt installieren (Windows) ^Seitenanfang

1. Schritt - Ausführen
Entpacke die Datei und führe sie aus. Sollte ein Sicherheitsfenster erscheinen, bestätige bitte mit "Ausführen".

2. Schritt - Installation
Es gibt nun ein Textfeld, in dem "C:\" steht, dort kann man einstellen wo XAMPP installiert werden soll.
Ich empfehle es auf C:\ zu installieren. Klicke anschließend auf "Install".
Wenn die Installation abgeschlossen ist, erscheint ein DOS-Fenster.

3. Schritt - Konfiguration
3.1 In dem DOS-Fenster wird als erstes gefragt, ob ein ShortCut Icon auf dem Desktop erstellt werden soll.
Falls ja, einfach auf "y" drücken und Enter drücken.
Falls nicht, einfach anstatt eines "y"s ein "n" eingeben und die Entertaste drücken.

3.2 Die nächste Frage möchte wissen, ob XAMPP jetzt konfiguriert werden soll oder nicht.
Falls ja, einfach auf "y" drücken und Enter drücken.
Falls nicht, einfach anstatt eines "y" ein "n" eingeben und die Entertaste drücken.

3.3 Wenn XAMPP lokal installiert werden soll, dann drücke bitte "n" und Enter.
Wenn XAMPP allerdings auf einer Festplatte oder einem USB-Stick installiert werden soll, muss "y" gewählt werden.

3.4 Drücke nun einmal Enter und die entsprechende Zahl, um die aufgelisteten Dinge auszuführen.
(Für Anfänger die "1" drücken, Enter und dann "x" und Enter.)

1.2 XAMPP richtig konfigurieren (Windows) ^Seitenanfang

Das XAMPP Control Panel zeigt viele Buttons. Das wird aber kein Problem sein!
Klicke, falls rechts neben "Apache" kein   Running   steht, auf den Button "Start" in derselben Zeile.
Als nächstes klicke, falls rechts neben "MySQL" kein   Running   steht, auf den Button "Start" in derselben Zeile.
So, nun sind die ersteinmal wichtigsten Prozesse gestartet und jetzt klicke bitte auf diesen Link: http://localhost/security/xamppsecurity.php.
Dort denkst Du Dir zunächst ein Passwort für den Hauptbenutzer von der Datenbank aus. Dabei beachte, dass die Option "cookie" als Authentifikation ausgewählt ist.
Wichtig ist auch, dass kein Häkchen bei "Passwort in Klartext speichern" gesetzt ist!
Der Rest bleibt so!

Nun lösche auch alle Dateien und Ordner, die sich im Ordner "htdocs" befinden. Aber nicht den Ordner löschen, nur den Inhalt!

2. PHP lernen ^Seitenanfang

Wir fangen nundenn richtig an! Jetzt lernst Du PHP!

2.1 php-Dateien erstellen ^Seitenanfang

Es geht ersteinmal los mit dem Erstellen einer index.php . Sie ist die Seite, die zuerst aufgerufen werden soll, wenn localhost aufgerufen wird.

1. Schritt - Der Editor
Drücke folgende Tasten-Kombi: "Windowstaste" und "R" gleichzeitig. Es erscheint das Fenster "Ausführen".
Schreibe in das Textfeld im Fenster "notepad" rein und bestätige mit der Entertaste. Nun öffnet sich ein Fenster, der Editor!

2. Schritt - index Datei erzeugen
Die Datei ist noch leer und wird nun per "Speichern unter" unter "C:\*xampp\htdocs\" als index.php gespeichert. WICHTIG! Die Endung .php darf nicht vergessen werden!
* je nach Speicherplatz variierend. Siehe angegeben Pfad der XAMPP Installation. (z.B. C:\ oder D:\ oder externes Gerät)

3. Schritt - Eine Ausgabe erzeugen (Hello World)
Sehr gut! Nun musst Du folgenden Code in die index.php schreiben:

 PHP-Code:  index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
      <title>www.superflyger.com - Super Tutorials!</title>
</head>
<body>
<?php
      echo
'
      Hello World
';
?>
</body>
</html>

Drücke nun die Tastenkombi: "Strg" + "S" gleichzeitig.
Perfekt! Nun gehe auf diesen Link, damit Du siehst, was Du geschafft hast: localhost.
Jetzt kannst Du ersteinmal anfangen etwas herumzuexperimentieren. Schau zum Beispiel was passiert, wenn Du nur "eco" schreibst oder wenn Du ein ' weglassen würdest.

2.2 PHP Variablen ^Seitenanfang

Variablen, ganz klar, kennt man aus Mathe :^] Aber das sind andere Variablen.
In PHP gibt es Variablen, die alles enthalten können und die mit sich selbst arbeiten lassen, um neue Variablen zu erzeugen.
Variablen in PHP fangen mit einem Dollar Zeichen an ($) und werden String genannt. Zum Beispiel $string. Fangen wir mit einem einfachen Code an:

 PHP-Code:  index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
      <title>www.superflyger.com - Super Tutorials!</title>
</head>
<body>
<?php
$string = "hallo";

      echo $string;
?>
</body>
</html>

Hast Du das in Deine index.php geschrieben, ruf sie nocheinmal über localhost auf oder aktualisiere, falls das Fenster noch geöffnet ist.
Es sollte jediglich ein "hallo" ausgegeben werden. Jetzt kannst Du wieder experimentieren,
was passiert wenn Du das $-Zeichen entfernst oder wenn Du statt "hallo" etwas anderes in den String schreibst?!

2.3 Bedingungen (wenn dann sonst) ^Seitenanfang

Immer wieder zu gebrauchen und ziemlich hilfreich sind Bedingungen und entsprechende Reaktionen darauf.
Zum Beispiel kann geprüft werden, ob 2 + 2 = 4.
Hier das Code-Beispiel:

 PHP-Code:  index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
      <title>www.superflyger.com - Super Tutorials!</title>
</head>
<body>
<?php
 if(2 + 2 == 4)
{
      echo
'
      Die Rechnung ist korrekt!
';
}
 else
{
      echo
'
      Die Rechnung ist falsch!
';
}
?>
</body>
</html>

Hier ist wichtig, dass bei der Bedingung zum Vergleich ein == geschrieben wird und kein einfaches Gleichzeichen!
Ist der Code gespeichert rufe den localhost auf und schau Dir an, was ausgegeben wird. Es sollte folgendes stehen: "Die Rechnung ist korrekt!".
Ist alles so wie geplant, kannst Du mal sehen, was ausgegeben wird, wenn Du anstelle der 4 einfach eine 5 eingibst.

Es kann auch einfach eine weitere Bedingung gesetzt werden, zum Beispiel 2 Rechnungen:

 PHP-Code:  index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
      <title>www.superflyger.com - Super Tutorials!</title>
</head>
<body>
<?php
 if(3 + 2 == 4)
{
      echo
'
      Die Rechnung ist korrekt!
';
}
 elseif(3 + 2 == 5)
{
      echo
'
      Die Rechnung ist falsch, aber die zweite ist richtig!
';
}
 else
{
      echo
'
      Die Rechnung ist falsch und die zweite auch!
';
}
?>
</body>
</html>

Hier sollte dann "Die Rechnung ist falsch, aber die zweite ist richtig!" ausgegeben werden.

2.4 Parameter ^Seitenanfang

Es gibt 4 Parameter, zum Beispiel GET-Parameter, POST-Parameter, COOKIE-Parameter und SESSION-Parameter.

2.4.1 GET-Parameter
GET ist, wie der Name schon sagt, ein Parameter, der über die URL Stringinhalte bekommt. GET-Parameter werden mit $_GET[] ausgelesen.
Steht zum Beispiel in der URL-Leiste index.php?abc=hallo&xyz=duda, kann man die Werte von abc und xyz so auslesen und auch ausgeben:

 PHP-Code:  index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
      <title>www.superflyger.com - Super Tutorials!</title>
</head>
<body>
<?php
$abc = $_GET['abc'];
$xyz = $_GET['xyz'];

      echo 'abc enthält den Wert '.$abc.' und xyz den Wert '.$xyz;
?>
</body>
</html>

Du fragst Dich wahrscheinlich was dieses '.$abc.' zu bedeuten hat?! Das ist eigentlich ganz einfach, so kann ich Variablen in eine Ausgabe stecken, ohne dass nachher statt dem Inhalt der Variable einfach "$abc" ausgegeben wird. Mit dem '. wird also wieder in php eingeleitet und mit dem .' wieder in die Ausgabe. In diesem Beispiel wird also ausgegeben, dass "abc" den Wert "hallo" enthält und "xyz" den Wert "duda" enthält. Bitte achte darauf, dass GET-Parameter nur erkannt werden können wenn nach dem Dateinamen ein ? steht. Dieses ? zeigt, dass nun Parameter Werte kommen, die mit einem &-Zeichen voneinander getrennt werden. Jetzt bist Du wieder dran. Wechsel doch einfach mal die Inhalte der Parameter aus, z.B. abc=test oder xyz=wasweißich.

2.4.2 POST-Parameter
Mit POST wird ein Parameter verschickt. Soetwas ist zum Beispiel für einen Login (dazu kommen wir später noch ;)) sehr praktisch, da man dort ja verhindern will, dass in der URL-Leiste dann einfach das Passwort zu sehen ist.
POST-Parameter werden mit $_POST[] ausgelesen. Hier das Beispiel:

 PHP-Code:  index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
      <title>www.superflyger.com - Super Tutorials!</title>
</head>
<body>
<?php
$abc = $_POST['abc'];
$xyz = $_POST['xyz'];

      echo 'abc enthält den Wert '.$abc.' und xyz den Wert '.$xyz;
?>
</body>
</html>

Diesmal kannst Du erstmal nicht herumexperimentieren, da wir ein Formular brauchen, das die Daten per post verschickt. Nachdem wir uns mit dem COOKIE-Parameter beschäftigt haben werden, wirst Du Dein wahrscheinlich erstes Formular bauen :).

2.4.3 COOKIE-Parameter
Ersteinmal: Es geht hier nicht um einen Keks :^] Es geht hier um ein Cookie; das ist eine Speicherung von bestimmten Daten in dem Browser. Zum Beispiel kann man damit eine Spracheinstellung speichern, sodass die Person, wenn sie beim nächsten Mal auf die Seite geht, diese auch in der richtigen Sprache angezeigt bekommt. Ein COOKIE-Parameter wird mit $_COOKIE[] ausgelesen. Dann beginnen wir einfach mal mit dem Beispiel der Spracherkennung. Versuch doch erstmal eine if-Bedingung zu schaffen, in der die Variable $lang einmal DE enthält und einmal EN enthält und die dazu entsprechende Sprache ausgegeben wird.
Solltest Du es nicht schaffen klicke bitte hier.

So, ist das erstmal geschafft, wird, wenn Du die Seite aufrufst, nichts erscheinen. Jetzt legen wir eine neue Datei namens cookie.php an. Verfahre bitte so, wie Du es mit der index.php getan hast.
Um ein Cookie zu setzen bedarf es setcookie(), eine von vielen Funktionen, die php so vielfältig macht. Hier der Code:

 PHP-Code:  cookie.php <?php
      setcookie("lang","DE");
      header('Location: index.php');
?>

Nun ruf die Datei cookie.php über localhost auf, nicht über den Arbeitsplatz! header() bewirkt, dass sofort auf eine weitere Seite weitergeleitet wird. Das erfolgt nachdem das Cookie gesetzt ist, da wir vor dem header() die setcookie() Funktion aufgerufen haben.
Da zur index.php weitergeleitet wird, wird dort nun die Abfrage stattfinden und entsprechend, da wir DE in da Cookie geschrieben haben, ein deutscher Text ausgegeben. Hätten wir in dem setcookie()-Teil allerdings anstelle von DE ein EN angegeben, so würde die index.php einen englischen Text ausgeben. Das Cookie, das wir gesetzt haben ist unendlich haltbar. Man kann es aber mit Browserfunktionen wieder löschen.
Üblich wird ein Cookie mit folgendem Code gelöscht:

 PHP-Code: 
<?php
      setcookie("lang","",time()-10);
?>

Die -10 zeigt dem Cookie, dass es schon 10 Sekunden in der Vergangenheit abgelaufen ist und sobald ein Cookie abläuft, ist es gelöscht.
Hätten wir bei dem setcookie() von der cookie.php noch ein Komma und time() + 3600 in die Klammer gesetzt, so würde das Cookie 3600 Sekunden lang halten (entspricht einer Stunde).

2.4.4 SESSION-Parameter
Session-Parameter werden nur in Sessions benutzt. Bedingung ist, um eine Session-Variable in anderen Scripten weiterverwendet werden kann, dass eine Session gestartet wurde. Das funktioniert mit session_start(). Dazu später mehr! Eine Session-Variable kann so aussehen: $_SESSION['username'].
In einer Session können Daten mit Session-Parametern ausgelesen werden, solange die Session noch aktiv ist.

2.5 Formulare ^Seitenanfang

Nicht in etwa Dokumente, nein, es sind Formulare. Sie beginnen mit <form> und enden mit </form>. Beim Öffnen eines Formulars (<form>) müssen allerdings noch Attribute angegeben werden, wie zum Beispiel Auf welche Seite werden die Daten weitergeleitet?, Welche Methode? GET oder POST? und Soll das Formular an einen Frame geschickt werden?. Für diese 3 Fälle gibt es die Attribute action="", method="" und target="".
Fangen wir mit einem normalen POST-Formular an, das einfach einen Text an die index.php schicken soll, wodurch die index.php erkennen soll, ob der Inhalt des geschickten leer ist und wenn nicht, den Inhalt ausgibt. Das machen wir mit der formular.html (WICHTIG! Endung beachten ! .html!). Hier der Code für die formular.html:

 HTML-Code:  formular.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
      <title>Erstes Formular</title>
</head>
<body>
      <form action="index.php" method="post" target="_self">
            Hier iwas eingeben: <input type="text" name="daten" value="" /> <input type="submit" value="Senden" />
      </form>
</body>
</html>

Jetzt noch die entsprechende Abfrage in der index.php:

 PHP-Code:  index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
      <title>www.superflyger.com - Super Tutorials!</title>
</head>
<body>
<?php
$daten = $_POST['daten'];

 if(!empty($daten))
{
      echo
'
      Du hast folgendes eingegeben: '.$daten;
}
 else
{
      echo
'
      Tut mir leid, aber es wurde nichts eingegeben!
';
}
?>
</body>
</html>

Gehst Du nun direkt auf die index.php, wird einfach nur ausgegeben, dass nichts eingegeben wurde. Deshalb geh nun auf dein formular.html.
Wenn Du dort etwas in das Textfeld eingibst und auf "Senden" klickst, wirst Du sehen, dass Deine eingegebenen Daten ausgegeben werden können.

Soo, mit Deinem jetzigen Wissen solltest Du im Stande sein, einen eigenen Login zu erstellen.

2.6 Ein Login (nur Autorisation) ^Seitenanfang

Das schafft man, indem man einmal die login.html und die login.php anlegt.
Die login.html sollte die Eingabe-Felder "Username" und "Passwort" enthalten, sowie ein Formular mit dem Username und Passwort verschickt werden.
Für solche Sachen eignet sich eine Tabelle immer ganz gut.

 HTML-Code:  login.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
      <title>Login (nur Autorisation)</title>
</head>
<body>
      <form action="login.php" method="post" target="_self">
            <table align="center" style="border: 1px solid #000000;">
                  <tr>
                        <td width="120">Username:</td>
                        <td width="120" align="right"><input type="text" name="username" value="" /></td>
                  </tr>
                  <tr>
                        <td width="120">Passwort:</td>
                        <td width="120" align="right"><input type="password" name="passwort" value="" /></td>
                  </tr>
                  <tr>
                        <td width="240" colspan="2" align="right"><input type="submit" value="Login" /></td>
                  </tr>
            </table>
      </form>
</body>
</html>

Wichtig hierbei ist selbstverständlich, dass die Daten per POST gesendet werden, da sonst Leute sehen könnten, was in der Adressleiste steht. Etwas zusätzliches aber nicht erforderliches ist der Rahmen, der im style-Attribut angegeben ist.
Das ganze sollte nun in etwa so aussehen:

Username:
Passwort:

Jetzt kommt der viel wichtigere Teil - Die Überprüfung der gesendeten Daten!
Die login.php sollte so aussehen:

 PHP-Code:  login.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
      <title>www.superflyger.com - Super Tutorials!</title>
</head>
<body>
<?php
      $user = "Admin"; // Hier wird der gültige Benutzername eingegeben!
      $pass = "geheim"; // Hier wird das gültige Passwort eingegeben!

      $username = $_POST['username'];
      $passwort = $_POST['passwort'];

 if($username == $user && $passwort == $pass)
{
      echo
'
      Die Login-Daten waren korrekt! Willkommen auf der gesch&uuml;tzten Seite!
';
}
 else
{
      echo
'
      Die Login-Daten waren falsch! Die gesch&uuml;tzte Seite wird nicht angezeigt!
';
}
?>
</body>
</html>

2.7 Ein Login (mit COOKIE-Parameter) ^Seitenanfang

Als nächstes befassen wir uns damit, einem Benutzer die Möglichkeit zu bieten, mehrere geschützte Seiten einsehen zu können wenn er sich eingeloggt hat.
Du solltest nun in der Lage sein, aus dem Login mit einer einmaligen Autorisation und dem Setzen eines Cookies mehrere geschützte Seiten zu kreieren, die nur bei einem bestimmt gesetzten Cookie angezeigt werden.
Hast Du es nicht geschafft, oder solltest Du keine Lust haben :^], dann klicke hier.

Wichtig! Man beachte, dass setcookie VOR irgendeiner Ausgabe kommt! setcookie() ist eine Header-Information!! Desweiteren ist hier wichtig, dass wir keine Ablaufzeit deklariert haben, was bedeutet, dass das Cookie nur durch Löschung des Benutzers oder durch ein setcookie() in der Vergangenheit gelöscht werden kann.

2.8 Der Logout (mit COOKIES) ^Seitenanfang

Jetzt haben wir schon einiges gelernt, um einen tollen Login zu erstellen. Aber was gehört zu einem guten Login? Richtig, ein Logout. Ein Logout wird benötigt, um den Zustand des Eingeloggt-seins wieder in den Ursprungszustand zurückzuführen. Das heißt also, dass man sich nach einem Login immer ausloggen sollte, um zu vermeiden, dass jemand anderes an den Account oder das Profil rankommt. Nach einem Logout muss man sich wieder einloggen, damit man seine Daten bearbeiten kann oder an im ausgeloggten Zustand nicht sichtbare Daten kommt.

Copyright Wolf-Jörgen Stange ©
Home - Tutorials