Alwin: Was macht ein hidden-Feld??

Hallo allerseits,

ich habe mehrere zusammenhängende Formulare, deren Inhalte jeweils an das folgende Formular übergeben werden, vom vorhergehenden direkt und das jeweils vorletzte per hidden - Feld. Also im ersten gibt man z.B. seinen Namen ein, im 2. die Straße und PLZ und im letzten seine Mail-Adresse. Das letzte Formular schreibt dann die Angaben mittels php in eine Datenbank.

Mein Problem ist folgendes: Bsp: der Name ist 'Schmidt Kleinhübler'
, lasse ich ihn mir in dem 2. Formular anzeigen erscheint er komplett. In selbigem wird er an ein 'hidden' - Feld übergeben und weitergeschickt. Lasse ich ihn mir im 3.Formular anzeigen erscheint nur noch 'Schmidt'. D.h. es verschwindet alles nach dem Leerzeichen. Was kann ich dagegen tun.

Danke an alle im Voraus.

Alwin

  1. Hallo Alwin,

    , lasse ich ihn mir in dem 2. Formular anzeigen erscheint er komplett. In selbigem wird er an ein 'hidden' - Feld übergeben [...]

    Per PHP oder JS?

    Bye,
    Peter

    1. Hallo Alwin,

      , lasse ich ihn mir in dem 2. Formular anzeigen erscheint er komplett. In selbigem wird er an ein 'hidden' - Feld übergeben [...]

      Per PHP oder JS?

      Bye,
      Peter

      Per PHP

      Alwin

      1. Hi Alwin,

        , lasse ich ihn mir in dem 2. Formular anzeigen erscheint er komplett. In selbigem wird er an ein 'hidden' - Feld übergeben [...]

        Per PHP oder JS?

        Per PHP

        Also:
        Formular 1:
        <input name="name">
        Hier gibst du einen Namen ein.

        Formular 2:
        <input name="name" value="<? echo $name; ?>">
        Hier kontrollierst du den Namen; er erscheint komplett.

        Formular 3:
        <input name="name" value="<? echo $name; ?>" type="hidden">
        Hier wird der Name reingepackt, steht allerdings nur halb im
        Quellcode?

        Kann ich mir nicht vorstellen. Hab ich da was mistverstanden?

        Bye,
        Peter

        1. Hi Alwin,

          , lasse ich ihn mir in dem 2. Formular anzeigen erscheint er komplett. In selbigem wird er an ein 'hidden' - Feld übergeben [...]

          Per PHP oder JS?

          Per PHP

          Also:
          Formular 1:
          <input name="name">
          Hier gibst du einen Namen ein.

          genau!

          Formular 2:

          hier übergebe ich ihn an ein hidden-Feld
          <?php
          echo "<input type = "hidden" name = "Name" value = $Name>\n";
          echo $Name;
          ?>

          funktioniert noch komplett, es folgen weitere Eingaben auf der Seite und die ganze wird mit submit weitergeschickt...

          <input name="name" value="<? echo $name; ?>">
          Hier kontrollierst du den Namen; er erscheint komplett.

          Formular 3:

          Hier angekommen ergibt:
          <?php
          echo $Name;
          ?>
          nur noch den halben Namen, also bis zum Leerzeichen

          <input name="name" value="<? echo $name; ?>" type="hidden">
          Hier wird der Name reingepackt, steht allerdings nur halb im
          Quellcode?

          Kann ich mir nicht vorstellen. Hab ich da was mistverstanden?

          Bye,
          Peter

          Meine Frage nun also: Wo bleibt der Rest ?????

          Alwin

          1. Hi Alwin,
            ich habs ;-)

            Formular 2:
            hier übergebe ich ihn an ein hidden-Feld
            <?php
            echo "<input type = "hidden" name = "Name" value = $Name>\n";
            echo $Name;                                            ^^^^^
            ?>                        Hier müssen Anführungszeichen rum!

            Sonst wird alles nach der Leerstelle als neues, leeres Attri-
            but gesehen.

            Außerdem sollte man im HTML-Code vor und nach Gleichheitszei-
            chen keine Leerzeichen setzen.

            Bye,
            Peter

            1. Hi Alwin,
              ich habs ;-)

              Formular 2:
              hier übergebe ich ihn an ein hidden-Feld
              <?php
              echo "<input type = "hidden" name = "Name" value = $Name>\n";
              echo $Name;                                            ^^^^^
              ?>                        Hier müssen Anführungszeichen rum!

              Sonst wird alles nach der Leerstelle als neues, leeres Attri-
              but gesehen.

              Außerdem sollte man im HTML-Code vor und nach Gleichheitszei-
              chen keine Leerzeichen setzen.

              Bye,
              Peter

              An der Stelle spielt aber PHP nicht mit bei mir, da will er ein "," oder ein ";"...

              Gruß Alwin

              1. Hi Alwin, <== Das ist eine Begrüßung.

                Formular 2:
                hier übergebe ich ihn an ein hidden-Feld
                <?php
                echo "<input type = "hidden" name = "Name" value = $Name>\n";
                echo $Name;                                            ^^^^^
                ?>                        Hier müssen Anführungszeichen rum!

                An der Stelle spielt aber PHP nicht mit bei mir, da will er ein "," oder ein ";"...

                Latürnich escapte Anführungszeichen: ". Sonst "denkt" der PHP-
                Interpreter nämlich, der String sei zu Ende, und kann mit dem
                $Name nichts mehr anfangen.

              2. Huhu Alwin

                Du musst die "s maskieren (klar sonst kann sie ja später jeder vor Gericht identifizieren).

                Viele Grüße

                lulu

                btw. übersichtlicher( finde ich) geht's so

                printf('<input type="hidden" name="Name" value="%s">',$NAME);

                1. Huhu Alwin

                  Du musst die "s maskieren (klar sonst kann sie ja später jeder vor Gericht identifizieren).

                  ROFL!

                  btw. übersichtlicher( finde ich) geht's so

                  printf('<input type="hidden" name="Name" value="%s">',$NAME);

                  Warum nicht gleich komplett in den HTML-Modus gehen:
                  ?>
                  ...
                  <input type="hidden" name="Name" value="<?= $name ?>">
                  ...
                  <?

                  Im Prinzip sollte man bei PHP-Scripten Code und HTML versuchen getrennt zu halten. Macht jedenfalls dann ziemlich Sinn, wenn man die gleiche PHP-Datei mit verschiedenen Parametern zu verschiedenen Ausgaben veranlassen will.

                  Jedenfalls bei diesem Formular macht es irgendwie Sinn.

                  <? if (nichtabgesendet) {
                  ?>
                  ...
                  <HTML für ein leeres formular>
                  ...
                  <?
                  } elseif (abgesendet_aberunkontrolliert) {
                  ?>
                  ...
                  <HTML für Kontrollformular mit Hiddenfeldern>
                  <input type="hidden" name="Name" value="<?= $name ?>">
                  ...
                  <?
                  } elseif (kontrolle_war_ok) {
                  #Daten in die Datenbank schreiben
                  #und auf die Startseite zurück
                  header("Location: index.html");
                  }
                  ?>

                  1. Hi Sven,
                    das folgende Posting ist nicht gegen dich gerichtet ;-)

                    [...]
                    <input type="hidden" name="Name" value="<?= $name ?>">
                    [...]                                     ^

                    Sag mal, ist das Gleichheitszeichen Absicht? Das hab ich bis-
                    her in jedem deiner Postings gefunden, in denen es um PHP
                    ging!

                    Nüschts für unjut,
                    Peter

                    1. Tag Peter,

                      [...]
                      <input type="hidden" name="Name" value="<?= $name ?>">
                      [...]                                     ^

                      Sag mal, ist das Gleichheitszeichen Absicht? Das hab ich bis-
                      her in jedem deiner Postings gefunden, in denen es um PHP
                      ging!

                      Das ist die Abkürzung für <? echo $name; ?>. Insofern ist es durchaus Absicht ;-)

                      Ciao,

                      Harry

      2. Spontan wuerde ich da mal unter : urlencode($name) nachgucken.

        Gruss, Mel

        Hallo Alwin,

        , lasse ich ihn mir in dem 2. Formular anzeigen erscheint er komplett. In selbigem wird er an ein 'hidden' - Feld übergeben [...]

        Per PHP oder JS?

        Bye,
        Peter

        Per PHP

        Alwin

  2. Hallo,
    ich kenn das von Perl her, das ich extra für die ausgabe eine Formatierung anlege.
    z.b $feld{'message'} =~s/\n/<br>/g;
    ( also \n wird gegen <br> ersetzt.)
    Sowas müsste es auch für leerzeichen in Php geben

    ich weiss nicht ob das in php geht. Der fehler kommt jedoch durch das Leerzeichen zustande.
    Umgehen würde es sich mit nem Bindstrich. Ansonsten?
    Schau auf:
     http://www.php-center.de/

    Hoffe, das hilft dir ein wenig weiter
    Gruss

    1. Hi,

      ich kenn das von Perl her, das ich extra für die ausgabe eine Formatierung anlege.
      z.b $feld{'message'} =~s/\n/<br>/g;
      ( also \n wird gegen <br> ersetzt.)
      Sowas müsste es auch für leerzeichen in Php geben

      str_replace(" ","&nbsp",$string");

      ich weiss nicht ob das in php geht. Der fehler kommt jedoch durch das Leerzeichen zustande.

      Nein, da bin ich mir sicher, dass das nicht so ist. Habe auch
      schon oft solche Scripts programmiert, und das ist mir noch
      nie untergekommen. Wer's nicht glaubt, soll z.B. unter
      http://www.assistance4all.de/?page=sos das Formular ausfül-
      len. Als Fehlerüberschrift Test oder so eingeben.

      Außerdem: Wenn es in diesem Kontrollfeld richtig angezeigt
      wird, aber nicht im hidden-Feld ...?

      Umgehen würde es sich mit nem Bindstrich. [...]

      Nein, es ist ja möglich, dass jemand einen Doppelnamen hat ;-)

      Bye,
      Peter