Intro:
PHP ist eine Serverseitige Scriptsprache, ich kann so Daten und Dateien auf dem Server erstellen, bearbeiten und speichern! Die PHP-Scripts werden innerhalb eines HTML-Dokuments geschrieben, aber die Datei wird mit der Endung .php gespeichert, damit sie der Server erkennt.
PHP hat einen riesigen Funktionsumfang. Einen kleinen Überblick über die Sprachelemente gebe ich in der Datei syntax.php und in den folgenden Kapiteln. Die volle Ladung PHP kriege ich aber auf der PHP Site mit ihrer Funktionsreferenz www.php.net/manual/de/funcref.php
Server als Vorbedingung
PHP heisst ursprünglich Personal Home Page Tools - nun PHP Hypertext Preprocessor. Preprocessor heisst Vorbearbeiter.
PHP-Scripte sind dem Browser unverständlich und müssen vorher schon von einem PHP-Interpreter auf dem Server ausgeführt werden, dieser sendet danach HTML an den Browser! Ohne Server mit PHP-Interpreter drauf, stellt der Browser nix PHP dar!
Für Datenbankanbindungen braucht es zudem ein Datenbankprogramm (zum Beispiel 'MySQL') welches mit den PHP-Scripts angesprochen wird und wiederum auf einem eigenen Server läuft (Datenbankserver).
Server testen
phpinfo()
Um herauszufinden, ob PHP tatsächlich vom Web-Server unterstützt wird, legt man z.B. eine Datei PHP_info.php an mit dem Inhalt
diese Datei spielt man auf den Server und ruft sie auf.
Es werden Tabellen ausgegeben mit Konfigurations-Angaben. Bei meinem momentanen 'NextWeb' Host
hat es die PHP Version 5.3.10 auf dem Server.
<?php phpinfo() ?>
Test-Server
XAMPP
Als Entwicklungsumgebung der PHP-Scripts (mein Laptop zum Code schreiben), muss auch ein eigener virtueller Server
(zum Beispiel 'Apache') auf der Festplatte betrieben werden mit dem 'PHP-Interpreter' darauf.
Ich habe zuhause XAMPP (von >> apachefriends.org) installiert, welches den Apache-server, MySQL, PHP und Perl
alles in einem Packet verfügbar macht und sehr einfach zu installieren ist.
Alle PHP-Dateien müssen im ROOT Ordner 'htdocs' des virtuellen Servers abgespeichert werden
(je nach Installationsort z.B.: C:\Programme\xampp\htdocs). Eine dortige index.html Datei wird vom Browser geöffnet,
wenn schlicht und ergreiffend localhost in die Adresszeile des Browsers eingegeben wird!*
Die IP Adresse lautet HTTP://127.0.0.1 (Port für localhost). Die Tabellen die hier in der Testdatei erscheinen zeigen,
dass ich eine etwas ältere PHP-Version, nämlich 5.3.8 habe.
Server konfigurieren
Die Grundeinstellungen können sich von Host zu Host und Server zu Server ziemlich unterscheiden. Es ist strengstens zu empfehlen, die beiden Server (Entwicklungsumgebung und produktiver Server) möglichst gleich zu konfigurieren (mit Ausnahme der ERROR Anzeigen). Das bedeutet meisst, der Testserver wird dem produktiven Server angepasst, da beim Shared Hosting weniger Einstellungsmöglichkeiten gegeben werden. Die Apache Server Einstellungen werden in der Datei httpd.conf, die PHP Einstellungen werden in der Datei php.ini konfiguriert.
Xampp: Was ist wo?
- (*) Die index.php in \xampp\htdocs\index.php: (localhost) lädt ein Frameset und damit eine art Homeseite für XAMPP, diese könnte durch eine Datei ersetzt werden die auf die verschiedenen eigenen Projektordner verlinkt.
- xampp\apache\conf\httpd.conf: Die zentrale Konfigurations-Datei für den Apache. **
- xampp\cgi-bin: Das CGI-BIN-Verzeichnis
- xampp\mysql: Verzeichnis für den MySQL Daemon (Server)
xampp\mysql\data\pflanzen: meine Datenbank 'Pflanzen' und ihre Tabellen - xampp\perl: Das Perl-Verzeichnis
- xampp\php\php.ini: Die zentrale Konfigurations-Datei für PHP im CGI-Modus
- xampp\phpmyadmin\config.inc.php: Die Konfigurations-Datei für phpMyAdmin
- xampp\tmp Temp: Ordner für PHP-Uploads und Sessions
Der Web-Server sollte so konfiguriert sein, dass nach index.html (etc.) auch index.php als Defaultseite geöffnet wird.
(**) Die ROOT-Ordner Angabe lässt sich auch konfigurieren, ich könnte den
Ordner 'lehrling' auf dem Laufwerk 'D' als Server-Alias verwenden.
Die Datei die geändert werden müsste heist 'C:\Programme\xampp\apache\conf\httpd.conf'
dort nach 'DocumentRoot' suchen:
#DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
Durch ein Admin-Formular des Hosts (Benutzerkonsole), kann ich wahrscheinlich einige lokale Konfigurationen für den PHP-Interpreter selber vornehmen, Z.B. dass ERROR Nachrichten nicht angezeigt werden sollen (um Hackern keine Tipps zu geben). Manche Hosts (mit Apache Server) erlauben einem auch .ht-Dateien anzulegen, in denen Apache-Konfigurationen vorgenommen werden können.
PHP Einbindung
Innerhalb einer HTML-Datei wird das Script im Body (unter Umständen noch vor den HTML-Code des Head) wie folgt eingefügt:
<?php ... ?>
<?php PHP-Anweisungen; ?>
Dies ist die bevorzugte XML-Schreibweise.
<? PHP-Anweisungen; ?> (nur Fragezeichen genügen nicht in jeder
Server-Konfiguration und sollte nicht mehr verwendet werden)
<script language = "php"> PHP-Anweisungen;</script> (ist die Script-Schreibweise, die ausser Mode ist)
<% Code; %> (bei der Verwendung von ASP - Active Server Pages - werden andere Tags verwendet - siehe php.ini)
Da die Dateiendung *.php lauten muss, um den Preprocessor anzusprechen, könnte auch gesagt werden, innerhalb einer PHP-Datei kann auch HTML stehen. PHP und HTML Teile können in einer Datei beliebig oft aufeinander folgen, ja gar ineinander verwoben werden. Es ist auch möglich, die ganze HTML Struktur durch PHP schreiben zu lassen:
<?php echo "<html>"; echo "etc."; echo "</html>"; ?>
Mehrere PHP-Scripts in der selben Datei gelten wie ein einzelnes Script, die Variablen des oberen Scripts stehen auch den unteren Script zur Verfügung:
<?php $name = "Marcel"; ?> <p>HTML Code ...</p> <?php echo "$name"; ?>
include("nav.php");
Dies gilt auch für externe Scripts, oder Scriptteile (oder nur eine Variable) in einer externen Datei, welche durch @include() eingebunden werden (das @ verhindert eine Fehlerausgabe):
<?php @include("nav.php"); ?>
Im File, welches so eingebunden wurde, darf es wiederum beliebig HTML- und PHP- Tags haben.
PHP sicher nutzen
PHP wird (wie Perl) genutzt, um Daten (und Dateien) direkt auf dem Server auszulesen, zu bearbeiten, zusammenzutragen und dem Browser zu übergeben. Den Inhalt des PHP-Scripts sieht man nie, im Quellcode ist nur noch HTML ersichtlich, die Scripts können so nicht geklaut werden.
Zum Beispiel Daten aus Formulareingaben eines Online-Shops rufen auf dem Web-Server eine PHP-Script-Seite auf, die wird dem PHP-Interpreter übergeben, der Code prüft die Eingaben, und holt aus dem MySQL-Datenbank-Server die entsprechenden Preise und Abbildungen des ausgewählten Produktes und gibt sie als HTML an den Webserver zurück (parsen) und von diesem werden sie dann an den Browser geschickt, von jenem endlich dargestellt. Dadurch besteht die Möglichkeit bei jedem Zwischenschritt im PHP-Script Kontrollmassnahmen zu ergreiffen. Siehe: Sicherheit