include/gb/verarbeiten.php
include/gb/verarbeiten.php
include/gb/verarbeiten.php
include/gb/verarbeiten.php
include/gb/verarbeiten.php
include/gb/verarbeiten.php
Daten, die von einem Formular an eine Datei gesendet werden, werden in der Empfängerdatei zuerst so verarbeitet, damit sie problemlos weiter behandelt werden können.
Im vorliegenden Gästebuch erfolgt dies in der Vorschau (nach Erhalt der Angaben von dem Eingabeformular) und in der Speichern-Datei (erhalten von der Vorschau).
Die Ausführung der Verarbeitung erfolgt mit mit PHP-Codes, der vom Server ausgeführt (geparst) wird, bevor die Daten an den Browser des Anwenders weitergeleitet werden.
include/gb/verarbeiten.php
PHP-Befehle
Code: <?php
?>
<?php .... ?>
include/gb/verarbeiten.php
Include-Datei
Da der gleiche Text in der Vorschau und in der Speichern-Datei verwendent wird, wurde der Text in einer "Include"-Datei erstellt.
Bei der "Include"-Datei handelt sich um eine Datei ohne Kopfdaten (head).
In dieser Datei ist also nur der Text, der in eine oder mehrere HTML-Dateien eingelesen werden kann.
include/gb/verarbeiten.php
Einlesen der Include-Datei in ein HTML-Dokument
Der Text der Include-Datei wird in die Dateien der Vorschau und die Speichern-Datei eingelesen.
Der eingelesene Text ist dann Bestandteil dieser HTML-Dateien. Für den Anwender ist dann nicht mehr ersichtlich, dass dieser Text aus einer Include-Datei stammt, da er vom Server vor dem Senden an den Browser eingefügt (geparst) wurde.
Wie in den Dateien Verarbeiten und Speichern beschrieben, wird die Include-Datei mit einem PHP-Befehl in diese Dateien eingelesen.
Code: include "../../include/gb/einlesen.php";
<?php include "../../include/gb/verarbeiten.php"; ?>
include/gb/verarbeiten.php
Prinzip
Wenn beim Formular <form ... method="post">
angegeben wurde,
werden die Variablen als "POST"-Variablen gesendet.
Wenn beim Formular <form ... method="get">
angegeben wurde,
werden die Variablen als "GET"-Variablen gesendet.
Da wir im Dokument "normale" Variablen verwenden möchten, müssen diese gesendeten Variablen in "normale" Variablen umgewandelt werden.
Code: $... = $_POST ['...'];
Befehl: $gb_name = $_POST ['gb_name'];
Wandelt die "Post"-Variablen in "normale" Variablen um.
$_POST ['gb_name']
Die mit der Post-Methode an diese Datei
gesendeten Variablen sind Post-Variablen.
Da wir im Dokument "normale" Variablen verwenden möchten, müssen die Post-Variablen in normale Variablen umgewandelt werden.
$gb_name
Dies ist eine (umgewandelte) "normale" Variable.
// Variablen umwandeln $gb_name = $_POST ['gb_name']; $gb_email = $_POST ['gb_email']; $gb_thema = $_POST ['gb_thema']; $gb_eintrag = $_POST ['gb_eintrag']; $gb_spam = $_POST['gb_spam'];
Code: htmlentities("Zeichenkette")
Diese Funktion wandelt alle in einer Zeichenkette enthaltenen Sonderzeichen inkl. Umlaute in die entsprechende HTML-Codes um.
Oder anders ausgedrückt: Wandelt alle alle Zeichen, die eine HTML-Code-Entsprechung haben, in diese Entsprechung um.
Konstanten
ENT_COMPAT
Konvertiert nur doppelte Anführungszeichen
und lässt einfache Anführungszeichen unverändert.
ENT_QUOTES
Konvertiert sowohl doppelte als auch einfache
Anführungszeichen.
ENT_NOQUOTES
Lässt doppelte und einfache
Anführungszeichen unverändert.
Befehl: $gb_name = htmlentities($gb_name,ENT_QUOTES);
Wandelt alle Sonderzeichen, die als Steuercode missverstanden werden könnten, in den HTM-Code dieser Zeichen um.
Der Befehl erstellt eine neue Variable mit dem gleichen Namen der alten Variablen.
In den neuen Variablen sind alle Sonderzeichen in deren HTML-Code umgewandelt. Dieser HTML-Code zeigt das Sonderzeichen in einem HTML-Dokument korrekt an, kann aber als Steurezeichen keine Funktion mehr ausführen.
// Sonderzeichen umwandeln $gb_name = htmlentities($gb_name,ENT_QUOTES); $gb_thema = htmlentities($gb_thema,ENT_QUOTES); $gb_eintrag = htmlentities($gb_eintrag,ENT_QUOTES); $gb_spam = htmlentities($gb_spam,ENT_QUOTES);
Grundlagen und Workshops
Code: stripslashes("Zeichenkette")
Befehl: $gb_name = stripslashes($gb_name);
// Backslash entfernen $gb_name = stripslashes($gb_name); $gb_thema = stripslashes($gb_thema); $gb_eintrag = stripslashes($gb_eintrag);
Grundlagen und Workshops
Code: nl2br("Zeichenkette")
Befehl: $gb_name = nl2br($gb_name);
Zeilenumbrüche richtig anzeigen.
Durch diesen Code wird eine modifizierte Zeichenkette zurückgegeben,
in der Zeilenumbrüche durch den entsprechenden HTML-Tag
<br>
ersetzt sind.
Anders ausgedrückt: Dieser Code fügt bei allen
Zeilenumbrüchen den HTML-Tag <br>
ein,
damit der Zeilenumbruch auch ausgeführt wird.
// Zeilenumbrüche richtig anzeigen $gb_eintrag = nl2br($gb_eintrag);
Grundlagen und Workshops
Code: trim
Befehl: $gb_name = trim($gb_name);
Wenn diese Leerzeichen nicht entfernt werden, wird ein Feld mit Leerzeichen nicht als leer erkannt, da als Inhalt diese Leerzeichen sind.
In einem Formular soll auch eine Fehlermeldung kommen, wenn als Inhalt nur Leerzeichen sind.
// Leerzeichen entfernen $gb_name = trim($gb_name); $gb_thema = trim($gb_thema); $gb_eintrag = trim($gb_eintrag);
Grundlagen und Workshops
Prinzip
Im Eingabeformular ist ein nicht sichtbares Feld, das von einem Betrachter ohne Ausschaltung des Stylesheets nicht ausgefüllt werden kann.
Es wird aber angenommen, dass ein Spam-Generator dort etwas hineinschreibt, da er ohne Stylesheet arbeitet.
Wenn sich in diesem Feld ein Eintrag befindet wird der Ablauf gestoppt.
1) Kontrolle ob das Spam-Feld leer ist
if ($gb_spam == "") {
$xgb_spam = true;} else {$xgb_spam = false;}
Fall a) Das Spam-Feld ist leer:
$xgb_spam = true;
Es kann im nächsten Schritt
weiterverarbeitet werden.
Fall b) Im Spam-Feld befindet sich ein Eintrag:
$xgb_spam = false;
Die Verarbeitung im nächsten Schritt
wird nicht durchgeführt.
2) Mitteilung bei einem Eintrag im Spamfeld
if ( !$xgb_spam) {
echo '<h2>Achtung Fehler!</h2>
<p>Bitte den Webmaster informieren</p>';
// Kontrolle des Spamfeldes if ($gb_spam == "") { $xgb_spam = true;} else {$xgb_spam = false;} // Mitteilung bei einem Eintrag im Spamfeld if ( !$xgb_spam) { echo '<h2>Achtung Fehler!</h2> <p>Bitte den Webmaster informieren</p>'; }
include/gb/verarbeiten.php
<?php // Variablen umwandeln $gb_name = $_POST ['gb_name']; $gb_email = $_POST ['gb_email']; $gb_thema = $_POST ['gb_thema']; $gb_eintrag = $_POST ['gb_eintrag']; $gb_spam = $_POST['gb_spam']; // Sonderzeichen umwandeln $gb_name = htmlentities($gb_name,ENT_QUOTES); $gb_thema = htmlentities($gb_thema,ENT_QUOTES); $gb_eintrag = htmlentities($gb_eintrag,ENT_QUOTES); $gb_spam = htmlentities($gb_spam,ENT_QUOTES); // Backslash entfernen $gb_name = stripslashes($gb_name); $gb_thema = stripslashes($gb_thema); $gb_eintrag = stripslashes($gb_eintrag); // Zeilenumbrüche richtig anzeigen $gb_eintrag = nl2br($gb_eintrag); // Leerzeichen entfernen $gb_name = trim($gb_name); $gb_thema = trim($gb_thema); $gb_eintrag = trim($gb_eintrag); // Kontrolle des Spamfeldes if ($gb_spam == "") { $xgb_spam = true;} else {$xgb_spam = false;} // Mitteilung bei einem Eintrag im Spamfeld if ( !$xgb_spam) { echo '<h2>Achtung Fehler!</h2> <p>Bitte den Webmaster informieren</p>'; } ?>
Code: $... = strtolower($...);
Befehl: $gb_checkwort = strtolower($gb_checkwort);
//macht nur Kleinbuchstaben $gb_checkwort = strtolower($gb_checkwort);
Grundlagen und Workshops
Code: $...= str_replace("alt","neu","Zeichenkette")
alt
enthält dabei die alte Teil-Zeichenkette, die jeweils durch
neu
ersetzt wird.
Befehl: $gb_name = str_replace("<","<",$gb_name);
//Umwandlung eines Steuerzeichens in den HTML-Code $gb_name = str_replace("<","<",$gb_name);
Grundlagen und Workshops
Code: strip_tags("Zeichenkette")
strip_tags
lassen sich alle HTML- und PHP-Tags
aus einer Zeichenkette entfernen.
Befehl: $gb_name = strip_tags($gb_name);
//Löscht alle Spezialzeichen $gb_name = strip_tags($gb_name);
Grundlagen und Workshops