Hello,
Bitte versuche auch noch, was bei Eingaben von Zeilenumbrüchen, Sonderzeichen, Häkchen, Backslashes etc. geschieht.
eigentlich nichts, außer das \ zu \ wird. und zeilenumbrüche gehen nicht (im textfeld: name und notizen) da die enter taste das formular abschickt.
Array
(
[hund] => hund
[name] =>
[notizen] => Mitteilung an "Shadow" ## Häkchen werden zu "
C:\backup.dat
[button1] => Absenden
)
" Häkchen werden zu "
' Häkchen werden zu '
\ Backslash wird zu \
Dies ist eine eingebaute "Sicherheitsfunktion" von PHP, die wir aber eigentlich bei aufmerksamer Programmierung nicht benötigen. Diese sogenannte Maskierung geschieht bereits, _bevor_ das Script die Kontrolle übertragen bekommen.
Mit einer Einstellung in der php.ini oder in der Konfiguration des Hosts oder Virtual Hosts oder in einer ".htaccess"-Datei kann man das Verhalten beieinflussen.
http://de.php.net/manual/de/function.get-magic-quotes-gpc.php
und
http://de.php.net/manual/de/ref.info.php#ini.magic-quotes-gpc
PHP fügt diese Maskierungen ein und wir kämpfen dann später damit.
Es soll ein Schutz gegen "Injection" insbesondre bei Datenbanken sein, der aber leider nicht zu allen Datenbanken passt und unsere Rohdaten ja auch verfremdet.
Wie wir sie elegant wieder loswerden, OHNE die Konfiguration zu ändern, schauen wir uns in Kapitel 6 (Funktionen) an.
Eine weitere interessante Eigenschaft von PHP ist die Verarbeitung von Strings
Hier wollen wir nun die Übung 7 ansetzen:
Aufgabe 7
---------
Was ist ein String?
Was ist eine Variable?
Was haben Variablen mit Strings zu tun?
Was ist der Unterschied zwischen ' und " Häckchen?
Was sind Steuerzeichen und wie geht PHP damit um?
OK. Um die erste Frae zu klären, brauchen wir nicht zu tun, als uns unseren Quelltext von parameter_anzeige_01.php anzuschauen.
ich reduziere das hier mal auf den Block, in dem PHP aktiv wird:
<?php
echo "<h1>Hallo Shadow</h1>\n";
echo "<p>Ich bin Dein Server, und Du hast gerade Dein erstes PHP-Script geschreiben.\n".
" <br />Wenn Du disen Text lesen kannst, kann ich (dein Server) PHP</p>\n".
"<b>Bitte schau Dir den Quelltext an: </b>\n";
echo "<pre>\n";
print_r($_POST);
echo "</pre>\n";
?>
Alles, was durch die Parser-Anweisung "echo" ausgegeben wird, sind hier Strings.
Strings sind einfach nur Zeichenketten. Sie werden durch die beiden Häkchenarten ' und " begrenzt.
Alles das, was in einem String steht, gehört erstmal nicht zum interpretierten Code. Ausnahmen lernen wir später kennen. Strings werden von PHP so, wie wir sie angeben, an die Standard-Ausgabe ausgegeben. Die sit normalerweise mit dem Rückkanal zu unserem Browser verbunden.
Verkürzt kann man also sagen:
PHP gibt mit echon alle Strings unverändert an den Browser aus
Die ganze Wahrheit ist das aber nicht.
Echo kann außer Strings auch Variablen ausgeben.
<?php
$teilnehmer = "Shadow";
echo "<h1>Hallo Shadow</h1>\n";
echo "<p>Ich bin Dein Server, und Du hast gerade Dein erstes PHP-Script geschreiben.\n".
" <br />Wenn Du disen Text lesen kannst, kann ich (dein Server) PHP</p>\n".
"<b>Bitte schau Dir den Quelltext an: </b>\n";
echo "<pre>\n";
print_r($_POST);
echo "</pre>\n";
echo "<p>Teilnehmername: ";
echo $teilnehmer;
echo "</p>\n";
?>
Durch $teilnehmer = "Shadow";
legt PHP automatisch eine Variable an, der dann der String "Shadow" zugewiesen wird durch ein EINFACHES Gleichheitszeichen. Das Linke nimmt den Wert des Rechten an. Die Häkchen des Strings "Shadow" werden dabei nicht mit in die Variable übergebemn, denn sie begrenzen ja nur den String-Wert.
Durch $teilnehmer = 'Shadow";
nimmt die Variable übrigens total den gelichen Wert an. Es ist später nicht nachvollziehbar, welche Häkchen beutzt wurden.
Alternativ kann die Anweisung "Echo" auch mehrere Elemente ausgeben
echo "Der Teilnehmer heißt ", $teilnehmer, ' und ist ein Clon von ', $teilnehmer, 1;
Die einzelnen Attribute für die Anweisung (NICHT Funktion!) werden einfach mit Komma angereiht.
Noch eine Alternative der Ausgabe von Strings ist die "Konkatination", also die Verknüpfung mehrerer Strings zu einem einzigen. Hier ist der Punkt das Verknüfungszeichen.
echo "Der Teilnehmer heißt " . $teilnehmer . ' und ist ein Clon von ' . $teilnehmer;
Ein paar mehr "Merkwürdigkeiten" betrachten wir in einer eigenen kleinen Datei
<?php ### echo.php ###
$teilnehmer = "Shadow";
echo "Der Teilnehmer heißt ", $teilnehmer, ' und ist ein Clon von ', $teilnehmer, 1 , '<br>';
echo "Der Teilnehmer heißt " . $teilnehmer . ' und ist ein Clon von ' . $teilnehmer , '<br>';
echo "Der Teilnehmer heißt " . $teilnehmer . ' und ist ein Clon von ' . $teilnehmer . 1 .'<br>' ;
echo "Der Teilnehmer heißt " . $teilnehmer . ' und ist ein Clon von ' . $teilnehmer . 1+1 .'<br>' ;
echo "Der Teilnehmer heißt " . $teilnehmer . ' und ist ein Clon von ' . $teilnehmer . (1+1) .'<br>';
echo "Der Teilnehmer heißt " . $teilnehmer . ' und ist ein Clon von ' . $teilnehmer . 1+1;
?>
Einfach mal Copy und Paste und als "eccho.php" abspeichern.
Aufrufen und den Quellcode im Browser betrachten.
Was kannst Du feststellen?
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)