Thomas Luethi: PHP-Variable an HTML-Element übergeben

Beitrag lesen

Hallo,

[Formular]
<form action="auswertung.php" method="post">
<input type="text" name="lalala" value="1"><br>
<input type="submit" value="Los!">
</form>

[Skript]
<input type="text" name="lala" value="$lalala">
Wenn man auf Index.html im Feld 50 eingibt und Los! klickt,
dann soll Auswertung.php aufgerufen werden und im Input-Feld
dann 50 stehen!

Das "spezielle" bei PHP ist ja, dass man (wenn man will)
beliebig abwechseln kann zwischen

  • HTML-Code, welcher unveraendert ausgegeben wird
  • PHP-Code, welcher interpretiert ("geparst") wird

<input type="text" name="lala" value="$lalala">

ist (aus der Sicht von PHP) ein Bereich mit HTML-Code,
deshalb passiert nichts, der HTML-Code wird so, wie
er ist, an den Browser ausgeliefert, und dort steht dann
im Input-Feld einfach "$lalala"

Du musst also in den PHP-Modus wechseln.
Entweder - wie im Beispiel von Kosmos - nur gerade an
der Stelle, wo Du die Variable einfuegen willst,
oder aber - was ich uebersichtlicher finde - fuer die ganze Zeile:

<?php echo "<input type='text' name='lala' value='$_POST[lalala]>"; ?>
oder
<?php echo '<input type="text" name="lala" value="'.$_POST['lalala'].'">'; ?>

Nur bei veralteten, unsicheren Server-Einstellungen (register_globals="off")
kannst Du im Skript direkt auf $lalala zugreifen.

Du solltest besser auf $_POST['lalala'] oder $_REQUEST['lalala'] zugreifen.
Das wird auch in Zukunft funktionieren und ist sicherer/uebersichtlicher,
weil Du dann der Variable ansiehst, wo sie herkommt, naemlich von
der "boesen" Aussenwelt.

Lies mal:

dclp-FAQ:

Variablen und Formulare
http://www.dclp-faq.de/ch/ch-webvariablen.html

Sicheres Programmieren in PHP
http://www.dclp-faq.de/ch/ch-security.html

Von HTML zu PHP: Schreibe Formularverarbeitungen in Normalform
http://www.dclp-faq.de/q/q-stil-normalform.html

PHP-Manual: Strings, Einfache und doppelte Anfuehrungszeichen, HEREDOC-Syntax,
http://www.php.net/manual/en/language.types.string.php
Abschnitt davon:
Variablen-Analyse (parsing) in Strings:
http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing
dclp-FAQ: Anführungzeichen oder Hochkomma?
http://www.dclp-faq.de/q/q-stil-anfuehrungszeichen.html

PHP-Manual: Predefined Variables (englisch, die deutsche Uebersetzung
ist unvollstaendig/veraltet)
http://www.php.net/manual/en/language.variables.predefined.php und
http://www.php.net/manual/en/reserved.variables.php

Gruesse,

Thomas

--
Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/