Shadow1500: Variable übergeben - nicht eingetragene Variablen ausblenden?

Hallo!

Ich lasse mithilfe eines Eingabeformulars eine Ausgabeseite generieren. Nehmen wir mal an, es sind 2 Felder da: einen für Namen und einen für Adresse. Wenn nun nur Name ausgefüllt wird, wie kann ich auf der Ausgabeseite (das ganze wird mit POST weitergegeben) Adresse ausblenden lassen?

Geht das?

Wäre dankbar über antworten! :)

  1. Ich lasse mithilfe eines Eingabeformulars eine Ausgabeseite generieren. Nehmen wir mal an, es sind 2 Felder da: einen für Namen und einen für Adresse. Wenn nun nur Name ausgefüllt wird, wie kann ich auf der Ausgabeseite (das ganze wird mit POST weitergegeben) Adresse ausblenden lassen?

    Wenn keine Adresse angegeben ist, warum willst Du dann die nicht existierende Adresse ausblenden?

    Geht das?

    Ja :)

    Gruß,
      soenk.e

    PS: Es wäre hilfreich, wenn Du Deine Frage etwas detailierter stellen würdest, Code, Anwendungszweck, bisher geplante Vorgehensweise.

    1. Okay... :)

      Ich habe eine Art eBay Generator gemacht, der mir anhand von einigen Angaben eine fertige Artikelbeschreibung macht.

      Hier zwei Code- Stellen im Angabenformular:

      Headline: <input name="Anzugheadline" type="text" id="Anzugheadline">
            Informationen: <textarea name="Anzuginformationen" cols="70" rows="10" id="Anzuginformationen"></textarea>

      Und hier die entsprechenden Stellen im Ausgaben- Formular:

      echo "<b><center>".$Anzugheadline."</b></center>";
      Informationen: <br> echo $Anzuginformationen;

      So, nehmen wir mal an, ich gebe keine Informationen im Angabeformular an. Trotzdem steht nun noch im Ausgabeformular folgendes:

      Informationen:

      Wie kann ich das ausblenden lassen? ich habe natürlich noch mehr Sachen in diesem Generator drinnen, oben steht das ganze auch etwas vereinfacht... aber wie kann ich nicht angegebene Sachen ausblenden lassen?

      1. Headline: <input name="Anzugheadline" type="text" id="Anzugheadline">
              Informationen: <textarea name="Anzuginformationen" cols="70" rows="10" id="Anzuginformationen"></textarea>

        echo "<b><center>".$Anzugheadline."</b></center>";
        Informationen: <br> echo $Anzuginformationen;

        So, nehmen wir mal an, ich gebe keine Informationen im Angabeformular an. Trotzdem steht nun noch im Ausgabeformular folgendes:

        Informationen:

        Wie kann ich das ausblenden lassen?

        Wie Phil es bereits geschrieben hat: isset() ist Dein Freund. Du solltest allerdings

        a) auf die Formulardaten über das Feld $_POST[] zugreifen (alte PHP-Versionen: $HTTP_POST_VARS[]), also $_POST["anzuginfos"] statt $anzuginfos. Die Möglichkeit, Formulardaten als globale Variablen zur Verfügung zu haben, sollte eigentlich schon seit Monaten verschwunden sein (oder kurz: PHP-Interpreter ist wahrscheinlich veraltet).

        b) darauf achten, Benutzereingaben nie ungeprüft wieder auszugeben oder sonst zu verarbeiten, also 'echo htmlentities($_POST["anzuginfos"]);'. Du brauchst in den Feldern nur ein < oder > haben, und schon zerlegt es Dir möglicherweise die Anzeige. Mal ganz zu schweigen von bösen Buben, die statt Artikelinfos lustige HTML-Sachen mit <style> oder <script> eingeben ;)

        Gruß,
          soenk.e

        1. Hallo nochmal.

          Ja, dass haben mir andere auch schon gesagt...
          Allerdings geht bei mir nur die Variante mit "echo $Anzugheadline;". Die beiden anderen Möglichkeiten scheinen nicht zu funktionieren... ich habe meinen Webspace bei Puretec (Premium Paket). Kann das daran liegen?

          1. Danke schonmal an alle die mir geholfen haben... : )

            Dieser Block:

            <b>Informationen:</b><br>
              <br>
              <?php
            if(isset($_POST['anzuginfos'])) {
              echo "Informationen: ".$_POST['anzuginfos'];
            }
            ?>

            Geht nun doch. Fragt mich nicht warum... :D
            Ein kleines Problem jedoch noch: Trotzdem steht nun immernoch "Informationen:" da, auch wenn ich nichts im Info- Feld eingegeben habe...

            1. <b>Informationen:</b><br>
                <br>
                <?php
              if(isset($_POST['anzuginfos'])) {
                echo "Informationen: ".$_POST['anzuginfos'];
              }
              ?>

              Ein kleines Problem jedoch noch: Trotzdem steht nun immernoch "Informationen:" da, auch wenn ich nichts im Info- Feld eingegeben habe...

              Logisch, Du hast ja oben drüber noch ein unkontrolliertes "Informationen:" stehen.

              Es wäre davon abgesehen vielleicht auch sicherer, wenn Du die if-Bedingung etwas ergänzt:

              if ((isset($_POST['anzuginfos'])) && (strlen(trim($_POST['anzuginfos']))>0))

              Also zusätzlich zur Abfrage ob anzuginfos existiert noch die Abfrage, ob in anzuginfos außer Leerzeichen (deshalb trim()) was drin ist - man weiß ja nie.

              Gruß,
                soenk.e

  2. Hi!
    Ich rate mal ins Blaue und sage:

    if(isset($_POST['adresse'])) {
      echo "<b>Adresse: </b>".$_POST['adresse'];
    }

    Wenn $adresse nicht gefunden wird, wird diese Abfrage false und wird nicht durchlaufen :D
    CU
    http://www.yubb.de

    --
    Probier mal was anderes diesen Winter: Coke bei 60 °