Sönke Tesch: Wie übergebe ich eine Variable an eine neue PHP-Seite

Beitrag lesen

Hmm, habe leider erst jetzt angefangen mit Formularen zu arbeiten, und kenne mich da noch net so aus, daher verstehe ich diese Zeile nicht:

echo "<input type="hidden" name="variable" value="".htmlentities($variable)."">";

Ich weiss ehrlich gesagt gar nicht, was mir so ein hidden feld bringt :-(

Ein hidden-Feld ist eigentlich ein ganz normales Formularfeld, wie Felder zur Texteingabe (<input type=text) oder Radioknöpkens (<input type=radio>) auch, nur mit dem kleinen Unterschied, daß ein hidden-Feld eben hidden ist - versteckt, nicht sichtbar.

Der Sinn solcher Felder ist ganz einfach, mit den anderen Formulardaten, die der Benutzer eingibt, auch andere, schon vorgefertigte Daten zu übergeben. Wie man das einsetzt, erlebst Du gerade: Du hast in Deinem Skript mehrere Variablen, die Du zum nächsten Aufruf des Skriptes "rüberretten" willst. Diese Variablen versteckst Du einfach per hidden-Feld im Formular und bekommst sie dann, wie alle anderen Eingaben des Formulars auch, in $_POST geliefert.
Siehe dazu auch die SelfHTML-Seite: http://selfhtml.teamone.de/html/formulare/versteckte.htm

Das htmlentities($variable) dient davon unabhängig dazu, das Problem mit Sonderzeichen zu umgehen, auf das ich bereits bei der URL hingewiesen hatte: Bestimmte Zeichen darf bzw. sollte man in HTML nicht benutzen, dazu gehören insbesondere <, > und &, die alle eine spezielle Bedeutung für HTML haben (Markieren von Tags à la <br> und Marieren von Sonderzeichen à la ö), aber auch so Sachen wie deutsche Sonderzeichen (Umlaute).
Die PHP-Funktion htmlentities() wandelt diese Zeichen in ihre HTML-Darstellung um, < in <, > in >, & in &, das kleine ö in ö, usw.

Zusammengefasst wird so aus dem PHP-Code

$variable="schön & stark";
  echo "<input type="hidden" name="variable" value="".htmlentities($variable)."">";

die Ausgabe

<input type="hidden" name="variable" value="schön & stark">

Nach dem Absenden des Formulars erhälst Du dann auf der nächsten PHP-Seite in $_POST neben den anderen Formularfeldern auch

$_POST["variable"]="schön und stark";

Jetzt hab ich mir soviel Mühe gegeben, jetzt brummt Dir hoffentlich auch der Schädel ;) Tipp: Probieren geht über Studieren.

Du kannst Dir die Variablen, die PHP übergeben wurden, übrigens mit einem Aufruf der Funktion phpinfo() auflisten lassen (und vieles andere mehr dazu).

Achja: Anstatt "variable" müsste ich in meinem Fall dann "fehler" nehmen, oder ?

fehler, menue und frage, genau.

achja, ein hidden Feld habe ich schon, für den Submit Button, den bracuhe ich, hat mir ein kumpel gesagt:

echo" <input type="hidden" name="Start" value= "Submit">";

Na, wenn er meint :) Das hängt von Deinem Skript ab, ob es diese Variable braucht.

Gruß,
  soenk.e