mortimer: Einen Fragebogen in PHP über mehrere Seiten gehen lassen?

Hi

Ich habe einen super kleinen fragebogen gemacht in dem ich geschaut habe ob er mir bei den antworten die radiobuttons und checkboxes auch richtig ausgibt.

Nur frage ich mich ob ich das auf verschiedene seiten verteilen kann.
Ich will ca. 16 "cards" haben die man ausfüllen muss und am ende auf SENDEN drückt und er alle beantworteten fragen an mich schickt.

Kann mir hemand zeigen wie ich sowas für das verteilen auf mehrere seiten machen musss?

mfg
mortimer

  1. Hi

    Ich habe einen super kleinen fragebogen gemacht in dem ich geschaut habe ob er mir bei den antworten die radiobuttons und checkboxes auch richtig ausgibt.
    Nur frage ich mich ob ich das auf verschiedene seiten verteilen kann.
    Ich will ca. 16 "cards" haben die man ausfüllen muss und am ende auf SENDEN drückt und er alle beantworteten fragen an mich schickt.
    Kann mir hemand zeigen wie ich sowas für das verteilen auf mehrere seiten machen musss?

    Mit einem Wort: Sessions.

    Du packst auf jeder neuen Seite die (hoffentlich) nummerierten Antworten in eine oder mehrere Sessionvariablen und dann hast du sie am Ende alle parat.

    Fabian

    1. Mit einem Wort: Sessions.

      Du packst auf jeder neuen Seite die (hoffentlich) nummerierten Antworten in eine oder mehrere Sessionvariablen und dann hast du sie am Ende alle parat.

      Fabian

      Ich verstehe nicht ganz?
      Was sind sesseions?
      WIe benutze ich sie?
      Was schreibe ich?

      Ich bin sehr neu mit PHP.. daher doch bitte ein besipiel...! =/

      mfg
      mortimer

      1. Hallo Mortimer

        Mit einem Wort: Sessions.

        Du packst auf jeder neuen Seite die (hoffentlich) nummerierten Antworten in eine oder mehrere Sessionvariablen und dann hast du sie am Ende alle parat.

        Ich verstehe nicht ganz?

        Weiß ich nicht.

        Was sind sesseions?

        http://www.php.net/manual/de/ref.session.php

        WIe benutze ich sie?

        Wie es dort steht.

        Was schreibe ich?

        Das weiß ich nciht.

        Ich bin sehr neu mit PHP.. daher doch bitte ein besipiel...! =/

        Siehe der Manual-Link. Bastel ein wenig rum, und probier auch mal eine andere Lösung via DB oder Files aus, dann wird das schon ;-)

        Fabian

        1. Hi

          Ich habe es mal mit den Hiffen-fields versucht. Aber ich habe fehler =/

          http://mitglied.lycos.de/storagehall/cards/card01.htm

          es scheint fast als würde er nichtmal das php verstehen =/
          Obwohl er grade noch.. aber dann... *kopf sinken lässt*

          Ich weiss nicht weiter.

          thx alot

          mfg
          mortimer

          1. Morgen

            Ich habe es mal mit den Hiffen-fields versucht. Aber ich habe fehler =/

            Was hast du versucht, und was geht nicht? *inkristallkugelblick*

            http://mitglied.lycos.de/storagehall/cards/card01.htm

            HTTP 404

            es scheint fast als würde er nichtmal das php verstehen =/
            Obwohl er grade noch.. aber dann... *kopf sinken lässt*

            Etwas mehr Selbsteinsatz bitte.

            Fabian

            1. also mal ganz von vorne:

              Ich hatte einmal einen fragebogen:
              http://mitglied.lycos.de/storagehall/em01/mail2.php

              An dem will ich nun testen wie ich den auf 2 Seiten aufteile (damit ich es lerne und auf ein anderes projekt anwenden kann)

              Der Code:
              -------------------------------------------------------------------
              <html>
              <?php
                if($action=="senden") {

              $betreff = trim(stripslashes($betreff));
                  $inhalt = trim(stripslashes($inhalt));

              // Prüfung der Angaben nach dem Senden

              if(!$name) $fehler[] = "Ihr Name fehlt.";
                  if(!$betreff) $fehler[] = "Der Betreff fehlt.";
                  if(!$inhalt) $fehler[] = "Sie haben keine Nachricht geschrieben.";
                  if(!$von) $fehler[] = "Ihre Emailadresse fehlt";
               if(!$frage1) $fehler[] = "Sie haben Frage 1 noch nicht beantwortet!";
               if(!$frage2) $fehler[] = "Bitte füllen sie auch Frage 2 noch aus!";

              if(!count($fehler)) { // Sendet Email, wenn Prüfung "ok"

              echo("<p>Ihre Nachricht wie folgt wurde gesendet.<p>\n\n");
                    echo "Name: <b>$name</b><br>\n";
                    echo "Betreff: <b>$betreff</b><br>\n";
                    echo "Inhalt: <b>".nl2br($inhalt)."</b><br>\n";
                    echo "Lacht gerne: <b>".nl2br($frage1)."</b><br>\n";
                 echo "Weil: <b>".nl2br($frage2)."</b><br>\n";

              $text .= "inhalt: $inhalt\n";
                 $text .= "lacht gerne: $frage1\n";
                 $text .= "grund: $frage2\n";

              @mail($an,$betreff,$inhalt,$frage1,$frage2,$text,"From: ".$von);

              } else { // Fehlerausgabe, wenn Felder leer waren

              echo "Beim Senden traten folgender Fehler auf:";
                    echo "<ul><li>".implode("<li>",$fehler)."</ul>";

              }

              }

              ?>
              <form action="<?php echo $PHP_SELF; ?>" method="post">
              <input type="hidden" name="action" value="senden">
              <input type="hidden" name="an" value="indyaner@indyaner.de">
                <table>
                  <tr>
                    <td>Name</td>
                    <td><input name="name" value="<?php echo $name; ?>"></td>
                  </tr>
                  <tr>
                    <td>Email</td>
                    <td><input name="von" value="<?php echo $von; ?>"></td>
                  </tr>
                  <tr>
                    <td>Betreff</td>
                    <td><input name="betreff" value="<?php echo $betreff; ?>"></td>
                  </tr>
                  <tr>
                    <td>Inhalt</td>
                    <td><textarea name="inhalt"><?php echo $inhalt; ?></textarea></td>
                  </tr>
                  <tr>
                    <td height="100"><p>frage1</p>
                      <p> </p>
                      <p> </p></td>1
                    <td><p>lachst du gerne?</p>
                      <p>
                        <input type="radio" name="frage1" value="ja">
                        ja!</p>
                      <p>
                        <input type="radio" name="frage1" value="nein">
                        nein! </p></td>
                  </tr>
                  <tr>
                    <td height="130">
              <p>frage2</p>
                      <p> </p>
                      <p> </p>
                      <p> </p></td>
                    <td><p>weil? (mehrfachnennung)</p>
                      <p>
                        <input name="frage2" type="checkbox" id="frage2" value="kannnicht">
                        ich es (nicht) kann!</p>
                      <p>
                        <input name="frage2" type="checkbox" id="frage2" value="willnicht">
                        ich es so will!</p>
                      <p>
                        <input name="frage2" type="checkbox" id="frage2" value="ineinersekte">
                        ich bin in einer sekte!</p></td>
                  </tr>
                  <tr>
                    <td>53</td>
                    <td><input type="submit"></td>
                  </tr>
                </table>
              </form>

              </html>
              -------------------------------------------------------------------

              Kan mir jemand ... BITTE... diesen code einmal in 2 teile machen so dass ich ihn in die dateien cart01.php und cart02.php legen kann und alles geht? =/

              Ich versteh es nicht ... vorhin hatte ich nämlich das mit den hiddenfeldern versucht und ich habe es nicht gebacken bekommen =(

              Nur als beispiel. HTML lernte ich damals vor 4 jahren auch durch beispiele. Wäre also wirklich SEHR nett. Bitte =|

              mfg
              mortimer

              1. Hi

                Ich hatte einmal einen fragebogen:
                http://mitglied.lycos.de/storagehall/em01/mail2.php

                An dem will ich nun testen wie ich den auf 2 Seiten aufteile (damit ich es lerne und auf ein anderes projekt anwenden kann)

                Der Code:

                Doctype gehört hier erstmal hin.

                <html>
                <?php
                  if($action=="senden"){

                Wo kommt $action denn her? Wie wär's mit $action = $_POST['action']; ?

                $betreff = trim(stripslashes($betreff));
                    $inhalt = trim(stripslashes($inhalt));

                // Prüfung der Angaben nach dem Senden

                if(!$name) $fehler[] = "Ihr Name fehlt.";
                    if(!$betreff) $fehler[] = "Der Betreff fehlt.";
                    if(!$inhalt) $fehler[] = "Sie haben keine Nachricht geschrieben.";

                hier genauso: $name = $_POST['name'] etc.

                if(!$von) $fehler[] = "Ihre Emailadresse fehlt";
                if(!$frage1) $fehler[] = "Sie haben Frage 1 noch nicht beantwortet!";
                if(!$frage2) $fehler[] = "Bitte füllen sie auch Frage 2 noch aus!";

                if(!count($fehler)) { // Sendet Email, wenn Prüfung "ok"
                [...]

                Kan mir jemand ... BITTE... diesen code einmal in 2 teile machen so dass ich ihn in die dateien cart01.php und cart02.php legen kann und alles geht? =/

                Ich versteh es nicht ... vorhin hatte ich nämlich das mit den hiddenfeldern versucht und ich habe es nicht gebacken bekommen =(

                Nur als beispiel. HTML lernte ich damals vor 4 jahren auch durch beispiele. Wäre also wirklich SEHR nett. Bitte =|

                mfg
                mortimer

                Fabian

                1. Hi,

                  if($action=="senden"){
                  Wo kommt $action denn her? Wie wär's mit $action = $_POST['action']; ?

                  berechtigte Frage, aber hier wurde doch garantiert wieder nicht verstanden, dass der Name des Submit-Buttons übertragen und abgefragt werden muss und nicht der Text, der bein <form action"..." ...> drinsteht.

                  Alternativ kann man natürlich auch die Existenz und den Wert eines hidden-Field abfragen.

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

                  Tom

                  --
                  Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
                  1. Hi Tom

                    if($action=="senden"){
                    Wo kommt $action denn her? Wie wär's mit $action = $_POST['action']; ?

                    berechtigte Frage, aber hier wurde doch garantiert wieder nicht verstanden, dass der Name des Submit-Buttons übertragen und abgefragt werden muss und nicht der Text, der bein <form action"..." ...> drinsteht.

                    Das tut mir nun leid, aber ich denke, dass man
                    a) fragen kann, wo denn $_POST herkommt, wenn man es nicht weiß, oder aber
                    b) zur Abwechslung mal selbst sucht.

                    Alternativ kann man natürlich auch die Existenz und den Wert eines hidden-Field abfragen.

                    Wofür, wenn das Konzept ordentlich ist, braucht man doch keine hidden fields.

                    Grüße, Fabian

                  2. Hallo nochmal

                    if($action=="senden"){
                    Wo kommt $action denn her? Wie wär's mit $action = $_POST['action']; ?

                    berechtigte Frage, aber hier wurde doch garantiert wieder nicht verstanden, dass der Name des Submit-Buttons übertragen und abgefragt werden muss und nicht der Text, der bein <form action"..." ...> drinsteht.

                    Ich vergaß eben zu erwähnen, dass man ja uch in der action die actionvariable mit "senden" belegen kann.
                    action="auswert.php?action=senden"

                    dann ist $_GET['action'] == "senden"

                    Für die HTTP-Kenner: Ja, in POST-Formularen ist das so! PHP wertet nämlich den Query-String ganz normal aus und füllt damit $_GET. Ist das ganze ein GET-Form geht es nicht, da der Query-String überschrieben wird.

                    Fabian

      2. Hallo mortimer!

        www.php.net!

        http://www.php.net/manual/de/ref.session.php

        Gruß root

  2. hallo Mortimer,

    da gibt es viele möglichkeiten, etwa:

    1. sessions, wie fabian schon erwähnt hat
    2. du kannst die zwischenergebnisse in eine datei oder datenbank schreiben
    3. du kannst cookies verwenden (schlecht)
    4. du kannst die ergebnisse an díe url anhängen
    5. du kannst die ergebnisse mit hidden fields mittels formularen weitergeben

    mfg
    mamue

  3. Es gibt fertige PHP Scripts.

    Schau mal auf:

    www.php-archiv.de