PHP für dich
Startseite
Danke, Claudia

About me
Bücher
Download
FAQ, Impressum
Datenschutz

Derzeit online: 442
Tickets ersteigern bei www.fansale.de
Werbung

Spenden via PayPal

Aber wie kann ich denn ...

... die Variablen übergeben?

So, wie wir bisher mit Variablen gearbeitet haben, müssen diese von Anfang an festgelegt sein. Es kann jetzt aber auch der Fall sein, dass wir die Variablen erst später festlegen wollen bzw. diese durch eine Benutzereingabe füllen wollen.

Ein Beispiel dazu kannst du dir PopUphier anschauen.

Bei diesem Script wird durch ein Formular der Inhalt des Feldes übergeben und auf der darauf folgenden Seite ausgegeben.

Ganz wichtig ist es hierbei, dass die Formularfelder einen eindeutigen Namen bekommen, da dieser Name als Variablenname verwendet wird.

Die erste Seite, die beim Beispiel angezeigt wird sieht so aus (nur das Formular ohne CSS-Anweisungen):
  <form action="form2.php" method="post">
  <input type="text" size="17" name="Inhalt">
  <br><br>
  <center>
  <input type="submit" value="OK">
  </center>
  </form>
Die erste Zeile ruft ein Formular auf, bei dem durch das action festgelegt wird, welche Datei nach dem Absenden aufgerufen werden soll. Du kennst das vielleicht mit cgi-Programmen. Dort steht dann action="sendmail.cgi" oder Ähnliches. Ebenfalls wird hier festgelegt, dass als method post verwendet werden soll.
Trennlinie
post contra get

Als Übertragungsmethoden hast du prinzipiell post und get zur Verfügung. Bei PHP werden wir fast immer post verwenden. Der Unterschied besteht darin, dass durch get eine URL aufgerufen wird, an die sämtliche Formulardaten angehängt werden. Nun ist aber die maximale Länge von URLs beschränkt und wenn zuviel Inhalt mitgeschickt werden soll, funktioniert es daher nicht mehr.

So würde in unserem Fall diese URL so aussehen (falls "Claudia" in das Feld eingetragen wurde):

http://www.schattenbaum.net/php/form2.php?Inhalt=Claudia

Überträgt man die Daten jedoch mittels post können beliebig lange Inhalte mit übertragen werden, da diese nicht in eine URL umgewandelt werden, sondern durch Steuerungsanweisungen des Browsers übermittelt werden.

Das Umstellen auf get kann jedoch dann sinnvoll sein, wenn überprüfen möchte ob und welche Daten übertragen werden.
Trennlinie

Durch die folgende Zeile wird ein Text-Input-Feld mit einer Größe von 17 definiert und diesem Feld wird der Name Inhalt zugewiesen.

Danach kommt nur noch ein Zeilenabstand und ein zentrierter Submitbutton.

Aber was steht jetzt in der form2.php, die ja durch unser Formular aufgerufen wird?
Und jetzt kann ich deinen Namen (oder das, was du in
das Feld geschrieben hast) anzeigen lassen:
<br><br>
<?php
echo $_POST["Inhalt"];
?>
<br><br>
Wie das funktioniert erf&auml;hrst du, wenn du das 
Fenster wieder schlie&szlig;t.
Du erinnerst dich daran, dass unser Input-Feld den Namen Inhalt hatte? Genau dieses Feld (bzw. der Inhalt des Feldes) wird jetzt ausgegeben. Das "Inhalt" wird zum Namen der Variable und ist dadurch für uns ansprechbar. Da Sicherheit aber immer wichtiger wird, gibt es eine Sicherheitseinstellung bei PHP, die auf immer mehr Servern aktiv ist. Dabei muss man von anderen Seiten übergebene Variablen extra übernehmen und zwar durch $_POST["Variablenname"];. Wenn man diese Variable öfter in einer Seite verwendet oder einfach der besseren Übersicht wegen kann es auch sinnvoll sein, die Variablen vor dem Einsatz wieder in einen "kurzen Variablennamen" umzuschreiben. Das sieht dann so aus:
$Inhalt = $_POST["Inhalt"];
Wurde die Variable per get übergeben, verwendet man anstatt _POST _GET. Ansonsten funktioniert es genauso.

Verwendest du jedoch bei Feldname (in form1.php) und Variablenname (in form2.php) eine unterschiedliche Schreibweise (zB große bzw. kleine Anfangsbuchstaben) so bekommst du einfach nichts angezeigt.

Jedes Feld in deinem Formular ist über den Namen, den du ihm gegeben hast ansprechbar. Du musst allerdings auch hier beachten, dass du keine Zahlen an den Anfang stellen darfst. Der Name "01Absender" ist daher nicht möglich. Du solltest daher darauf achten, dass du keinen Feldnamen doppelt verwendest.

Da du aber nicht immer ein Formularfeld verwenden kannst, wenn du Daten übergeben willst, kannst du dies auch mittels einer Url machen.

Dabei gibst du zunächst ganz normal den Namen der Datei an ...
  test.php
... und verbindest damit durch ein Fragezeichen den Namen der 1. Variable ...
 test.php?Vorname
... auch hier erfolgt die Zuweisung des Inhaltes durch ein Ist-Gleich ...
  test.php?Vorname=Claudia
... Weitere Variablen kannst du mit einem kaufmännischen Und (&) anhängen (dabei brauchst du kein weiteres Fragezeichen) ...
  test.php?Vorname=Claudia&Nachname
... und auch dieser Variable wird ein Inhalt zugeordnet ...
  test.php?Vorname=Claudia&Nachname=Schaffarik
In der Datei test.php kannst du jetzt durch $_GET["Vorname"] und $_GET["Nachname"] auf die Inhalte (Claudia bzw. Schaffarik) der Variablen zugreifen.

Das sieht dann zB so aus (hier sieht man auch die Übergabe von get-Variablen):
  <?php
  echo "Vorname: ", $_GET["Vorname"];
  echo "<br>";
  echo "Nachname: ", $_GET["Nachname"];
  ?>
Eventuell funktionieren auf deinem Server auch die Kurzformen $_post["Variablenname"]; und $_get["Variablenname"];. Die Anwendung erfolgt genauso, wie bei den langen Formen.

Na? Noch immer alles klar? Fein, dann können wir ja jetzt weitermachen.
PHP

.: Anfang
.: Text ausgeben
.: Variablen
.: Var. übergeben
.: Math. Operatoren
.: Vgl. Operatoren
.: If-Anweisung
.: Log. Operatoren
.: Dateien
.: Suchen/Ersetzen
.: Datum & Uhrzeit
.: Arrays (+ foreach)
.: Tage & Monate
.: while-Schleife
.: for-Schleife
.: eMail-Versand
.: Includes
.: Zufall

MySQLTM

.: Anfang
.: DB und Tabellen
.: Tabellen füllen
.: Verb. herstellen
.: Einfache Abfrage
.: Weitere Abfrage
.: Daten ausgeben
.: Daten hinzufügen
.: Daten löschen
.: Daten ändern
.: Verb. beenden

Sonstiges

.: Links
.: FAQ
.: Download
.: Druck PHP
.: Druck MySQL
.: Bücher
.: Danke, Claudia

Spielerei


© 2001 - 2008 Claudia Unkelbach Nach oben