nichtschecker: PHP-Variable an HTML-Element übergeben

Hallo,
kann mir jemand sagen wie ich eine PHP-Variable an ein
Html-Element weitergeb?

So sieht das Script aus!

<html>
<head>
<title>Index.html</title>
</head>

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

--

<html>
<head>
<title>Auswertung.php</title>
</head>

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

--

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!

Geht das???

--
Nichtschecker
webmaster@diemodellwelt.de
http://www.diemodellwelt.de
  1. Hi,

    dein Ansatz war schon richtig, nur leider nicht mehr mit den aktuellen PHP-Einstellungen kompatibel. Aus Sicherheitsgründen erzeugen externe Parameter nicht mehr automatisch PHP-Variablen - d.h.: Du musst in deinem Skript erst wieder sagen, was $lalala eigentlich enthalten soll, dazu gibt es die Superglobals $_GET, $_POST (bzw. $_REQUEST).
    $lalala = $_POST['lalala'];

    Das sollte eigentlich reichen.

    MfG
    Rouven

    --

    -------------------
    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
  2. auswertung.php:

    <html>
    <head>
    <title>Auswertung.php</title>
    </head>

    <body>
    <input type="text" name="lala" value="<?php echo $lalala; ?>">
    </body>
    </html>

  3. 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/
    1. Hello,

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

      besser:

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

      XHTML möchte doppelte Häkchen und PHP möchte den Index im Array auch als String in Häkchen sehen...

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      1. Hallo Tom,

        XHTML möchte doppelte Häkchen

        Wie kommst Du darauf? URL please!

        und PHP möchte den Index im Array auch als String in Häkchen sehen...

        Aber nicht, wenn das ganze zwischen doppelten Anfuehrungszeichen steht...

        http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing.simple
        Korrekt: echo "Blabla $foo[bar] Blabla";
        Korrekt: echo "Blabla {$foo['bar']} Blabla";
        Falsch: echo "Blabla $foo['bar'] Blabla";

        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/
        1. Hello,

          Hallo Tom,

          XHTML möchte doppelte Häkchen

          Wie kommst Du darauf? URL please!

          Da gab es neulich hier einen Thread, der auf die passende Stelle verwies und ich habe mir leider nur gemerkt, dass definitiv doppelte Anführungszeichen festgelegt wurden. Ich muss also selber erst wieder suchen danach.

          Außerdem steht es auch irgendwo in Self, gültig für HTML ab 4.x ??
          Ich habe das leider auch vergessen. Man wird alt.
          http://selfhtml.teamone.de/html/allgemein/textauszeichnung.htm#attribute

          So, das habe ich gefunden. Und irgendwer hatte dann auch noch die Stelle zitiert, die doppelte Häkchen vorschrieb...

          Wäre nett, wenn Du mir auch noch eine Rückmeldung geben könntest, wenn Du selber fündig wirst, ggf. auch mit gegenteiliger Aussage.

          Liebe Grüße aus http://www.braunschweig.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          1. Hallo Tom,

            Danke, dass Du doch noch geantwortet hast. ;-)

            [Deine Behauptung: In XHTML muessten Attributwerte in doppelten
            Anfuehrungszeichen stehen]

            Außerdem steht es auch irgendwo in Self, gültig für HTML ab 4.x ??
            http://selfhtml.teamone.de/html/allgemein/textauszeichnung.htm#attribute

            Dort ist nur die Rede von "Anfuehrungszeichen".

            Und irgendwer hatte dann auch noch die Stelle zitiert, die doppelte Häkchen vorschrieb...

            Das kann hoechstens fuer irgendein extrem modernes XHTML gelten,
            das ich noch nicht kenne.

            Fuer HTML 4.01 gilt:
              "http://www.w3.org/TR/html401/intro/sgmltut.html#h-3.2.2
               By default, SGML requires that all attribute values be delimited
               using either double quotation marks (ASCII decimal 34)
               or single quotation marks (ASCII decimal 39).
               Single quote marks can be included within the attribute value
               when the value is delimited by double quote marks, and vice versa."
            (Etwas weiter unten stehen dann die paar wenigen Ausnahmen,
            wo in HTML 4 kein Anfuehrungszeichen notwendig ist.)

            In den Unterschieden von HTML 4.01 zu XHTML 1.0
            http://www.w3.org/TR/xhtml1/#diffs
            fand ich nichts zum Thema "doppelte/einfache Anfuehrungszeichen".
            Ich gehe deshalb davon aus, dass obiges dort unveraendert gilt.
            Das einzige, was in XHTML anders ist: Es muessen _alle_
            Attributswerte in Anfuehrungszeichen stehen.
            http://www.w3.org/TR/xhtml1/#h-4.4

            In der Zusammenfassung der Unterschiede zwischen
            XHTML 1.0 Strict und XHTML 1.1 steht nichts von Anfuehrungszeichen:
            http://www.w3.org/TR/xhtml11/changes.html#a_changes

            Gewisse Leute interpretieren den Abschnitt zu AttValue
            aus der XML-1.0-Recommendation (Second Edition)
            http://www.w3.org/TR/REC-xml#NT-AttValue
            so, dass auch in XML beide Anfuehrungszeichen
            bei Attributen erlaubt seien.
            (Ich verstehe diesen Text nicht restlos... ;-)

            Ich bin deshalb ueberzeugt, dass in XHTML 1.0 und 1.1
            Attributswerte mit doppelten oder einfachen
            Anfuehrungszeichen eingepackt werden duerfen.

            Diese Auffassung teile ich mit vielen andern, z.B.
            http://www.fincher.org/tips/web/xhtml.shtml
            http://catcode.com/cit041j/to_xhtml.html
            http://www.juicystudio.com/tutorial/xhtml/attributes.asp
            http://zero-soul.panicus.org/xhtml/xhtml-attributes.php
            http://lists.w3.org/Archives/Public/www-html-editor/2002JulSep/0001.html
            http://lists.w3.org/Archives/Public/www-html-editor/2001AprJun/0473.html
            http://mail.python.org/pipermail/python-list/2003-July/173248.html

            Es gibt aber auch ein paar Leute, die dasselbe behaupten wie Du:
            http://www.devarticles.com/c/a/HTML/XHTML-Explained/1/
            http://builder.com.com/5100-6371-1044630.html
            http://academ.hvcc.edu/~kantopet/xhtml/index.php?page=xhtml+attributes

            Bis ich aber eine _offizielle_ Quelle sehe, welche die doppelten
            Anfuehrungszeichen vorschreibt, halte ich das fuer ein Geruecht.

            ---

            Alternativ akzeptiere ich auch eine XHTML-Testseite, bei welcher
            der offizielle Validator die einfachen Anfuehrungszeichen
            "anmeckert".

            Als "Beweis" fuer meine Meinung kannst Du ja mal das
            Validator-Resultat einer Seite in XHTML 1.0 Transitional
            anschauen, wo ich sehr viele Attribute in einfachen
            Anfuehrungszeichen habe (warum wohl?;-):
            http://validator.w3.org/check?uri=http%3A%2F%2Fwww.tiptom.ch%2Fhomepage%2F&ss=1&verbose=1
            (dort dann runterscrollen fuer den Quelltext)

            ---

            Das einzige einigermassen stichhaltige Argument gegen
            einfache Anfuehrungszeichen waere IMHO das Geruecht,
            dass gewisse alte Browser damit nicht klarkommen.
            Solche Geruechte sind mir aber egal.
            Browser schlucken auch Attribute ohne Anfuehrungszeichen
            klaglos, selbst wenn sie vorgeschrieben waeren, da kann
            ich nicht glauben, dass sie mit einfachen Anfuehrungszeichen
            nicht klarkommen sollten...

            Gruesse,

            Thomas

            1. Hello Thomas,

              Uiuiui...

              Da habe ich aber mindestens den ganzen Vormiattag von 06:00 bis 09:00 zu lesen...
              Muss ja schließlich auch unsere hauseigenen Statuten auf soliden Grundmauern bauen.

              Danke für die Mühe

              Liebe Grüße aus http://www.braunschweig.de

              Tom

              --
              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen