Tom: 7. Übung, Variablen, Strings und Literale

Beitrag lesen

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 :-)

0 134

Kleines Forum - ganz einfach?

Eilean
  • datenbank
  1. 0
    Tom
    • programmiertechnik
    1. 0
      Eilean
      1. 0
        EKKi
  2. 0
    Bud
    1. 0
      Eilean
      1. 0

        PHP lernen ganz einfach

        Tom
        • php
        1. 0
          Siechfred
          1. 0
            Tom
            1. 0
              Siechfred
              1. 0
                Tom
                1. 0
                  Siechfred
                  1. 0
                    Tom
                    • menschelei
                  2. 0
                    Eilean
                    1. 0
                      Siechfred
                    2. 0
                      EKKi
                2. 0
                  Shadowcrow
                  1. 0

                    PHP lernen ganz einfach, 1. Übung

                    Tom
                    1. 0
                      Shadowcrow
                      1. 0

                        PHP lernen ganz einfach, 2. Übung, Validität von Ausgaben

                        Tom
                        1. 0
                          Shadowcrow
                          1. 0
                            Tom
                            1. 0
                              Shadowcrow
                              1. 0

                                3. Übung, Formulare vorbereiten

                                Tom
                                1. 0
                                  Shadowcrow
                                  1. 0

                                    3. Übung, Formulare vorbereiten, sonstige Kleinigkeiten

                                    Tom
                                    1. 0
                                      Shadowcrow
                                      1. 0
                                        OhneName
                                        1. 0

                                          HTML als strict?

                                          Tom
                                      2. 0
                                        Tom
                                        1. 0
                                          Shadowcrow
                                          1. 0

                                            Übersichtlichkeit

                                            Shadowcrow
                                            • sonstiges
                                            1. 0
                                              Tom
                                              1. 0
                                                Shadowcrow
                                                1. 0

                                                  4. Übung, Ausgabe-Formular vorbereiten

                                                  Tom
                                            2. 0
                                              Tom
                                2. 0
                                  Eilean
                                  1. 0

                                    4. Übung, Anzeige-Formular vorbereiten

                                    Tom
                                    1. 0
                                      Shadowcrow
                                      1. 0

                                        4. Übung, Kleine Fehler, Anordnung der PHP-Blöcke im Script

                                        Tom
                                        1. 0
                                          Shadowcrow
                                          1. 0
                                            Tom
                                            1. 0
                                              Shadowcrow
                                              1. 0

                                                5. Übung, Posten mit dem Formular

                                                Tom
                                                1. 0
                                                  Shadowcrow
                                                  1. 0

                                                    5. Übung, Diskussion der Ergebnisse

                                                    Tom
                                                    1. 0
                                                      Shadowcrow
                                                      1. 0

                                                        7. Übung, Variablen, Strings und Literale

                                                        Tom
                                                        1. 0

                                                          8. Übung, Einfache und doppelte Häkchen

                                                          Tom
                                                          1. 0
                                                            Shadowcrow
                                                            1. 0

                                                              9. Übung, (Vorschau) Fehlerbehandlung

                                                              Tom
                                                              1. 0
                                                                Shadowcrow
                                                        2. 0
                                                          Shadowcrow
                                                          1. 0
                                                            Tom
                                                  2. 0

                                                    5. Übung, Namen von Dialog-Elementen sinnvoll wählen

                                                    Tom
                                                    1. 0
                                                      Shadowcrow
                                                      1. 0
                                                        Tom
                                                        1. 0

                                                          6. Übung, Fehler bei der Namensgebung vermeiden

                                                          Tom
                                                2. 0
                                                  Eilean
                                                  1. 0
                                                    Eilean
                                          2. 0

                                            5.Nebenbetrachtung: Wann parst der Server?

                                            Tom
                                            1. 0
                                              Shadowcrow
                                              1. 0
                                                Tom
                                                1. 0
                                                  Shadowcrow
                                                  1. 0
                                                    Tom
                                                    1. 0
                                                      Shadowcrow
                                                      1. 0
                                                        Tom
                                                  2. 0
                                                    Eilean
                                                  3. 0
                                                    Eilean
                                                    1. 0

                                                      Name der Themen beim posten ändern

                                                      Thorsten Schleppi
                                                      • zu diesem forum
                                    2. 0
                                      Eilean
                                      1. 0

                                        4. Übung, Probleme mit der Codierung -> Validator meckert

                                        Tom
                                        1. 0
                                          Eilean
                                          1. 0

                                            4. Übung, UTF-8 mit Notepad++ ?

                                            Tom
                                          2. 0

                                            4. Übung, Notepad++ einstelllen

                                            Tom
                                            1. 0
                                              Shadowcrow
                                              1. 0

                                                4. Übung, Bitte richtige Links angeben

                                                Tom
                                                1. 0
                                                  Shadowcrow
                                                  1. 0

                                                    Probleme mit der Threaddarstellung

                                                    Tom
                                                    • zu diesem forum
                                                    1. 0
                                                      Shadowcrow
                                                      1. 0

                                                        Die berühmtesten Sprüche bei Verlegenheit

                                                        Tom
                                                        • menschelei
                                                2. 0

                                                  4. Übung, Verlinkung für Eilean

                                                  Shadowcrow
                                                  1. 0
                                                    Eilean
                                                    1. 0
                                                      Tom
                                                      1. 0
                                                        Shadowcrow
                                                      2. 0
                                                        Eilean
                                                        1. 0
                                                          Shadowcrow
                                                          1. 0
                                                            Eilean
                                                            1. 0
                                                              Shadowcrow
                                                              1. 0
                                                                Eilean
                                                                1. 0
                                                                  Shadowcrow
                                                                  1. 0
                                                                    Eilean
                                                                    1. 0
                                                                      Shadowcrow
                                                                      1. 0
                                                                        Harlequin
                                                                        1. 0
                                                                          Shadowcrow
                                                                          1. 0
                                                                            Eilean
                                                                            1. 0

                                                                              Kleiner Fehler noch beim Anzeigeformular

                                                                              Tom
                                                                          2. 0
                                                                            Harlequin
                                                      3. 0

                                                        Zischenmeldung von Tom

                                                        Tom
                                                        • menschelei
                                                        1. 0
                                                          Shadowcrow
                                                          1. 0

                                                            Zischenmeldung von Tom *#~?wüt~#*

                                                            Tom
                                                            1. 0
                                                              Shadowcrow
                            2. 0

                              PHP lernen ganz einfach, 2. Übung, OK - Frage

                              Eilean
                              1. 0

                                2. Übung, Unterschieldiche Codes auf Server und Client

                                Tom
                                1. 0

                                  2. Übung, Codes

                                  Eilean
                                  1. 0
                                    Tom
                        2. 0
                          Eilean
                          1. 0
                            Tom
                            1. 0
                              Eilean
                              1. 0
                                Tom
                                1. 0
                                  Eilean
                                  1. 0

                                    3. Übung, Formular einbauen

                                    Tom
                                    1. 0

                                      3. Übung, mal versuchen...

                                      Eilean
                                      1. 0

                                        Wann geht es weiter?

                                        Tom
                                        1. 0
                                          Eilean
                                          1. 0
                                            Tom
                    2. 0
                      Eilean
                      1. 0
                        Siechfred
                        1. 0
                          Eilean
                      2. 0

                        PHP lernen ganz einfach, 1. Übung, erste Probleme

                        Tom
                        1. 0
                          Eilean
                        2. 0
                          Eilean
                          1. 0

                            PHP lernen ganz einfach, 2. Übung, Validität herstellen

                            Tom
                3. 0

                  AGENDA V02: PHP lernen ganz einfach

                  Tom
              2. 1
                Wilhelm Turtschan
    2. 0
      Eilean
  3. 1
    Gunnar Bittersmann
    • software
    1. 0
      Eilean
      1. 2
        Gunnar Bittersmann
        1. 0
          Eilean
  4. 0

    *HUCH* wo sind wir im Moment?

    Tom
    • php
    1. 0
      Shadowcrow
  5. 0
    Shadowcrow
    • menschelei
    1. 0
      Tom