Heinzi: formular & sessions

hi, um ein kleines Quiz zu basteln habe ich bisher folgendes gemacht:
1.) mehrdimensionales Array erstellt.
2.) Formular, welches immer eine Frage inkl. Antworten über einen Counter anzeigt erstellt

3.) der counter wird allerdings nur einmal hochgesetzt, bleibt dann bei 1.
So wird mir immer nur max. die zweite frage angezeigt.

kann mir mal einer ein gutes Session-Tutorail verraten oder Tipps geben, wie ich in dem Formular Sessions händeln kann?
Am besten objektorientiert,da ich das Ganze so aufsetzen wollte.

danke, heinzi

  1. Hi Heinzi!

    3.) der counter wird allerdings nur einmal hochgesetzt, bleibt dann bei 1.
    So wird mir immer nur max. die zweite frage angezeigt.

    Wie sieht dein Code aus?

    kann mir mal einer ein gutes Session-Tutorail verraten oder Tipps geben, wie ich in dem Formular Sessions händeln kann?

    Am Anfang muss die Funktion session_start() aufgerufen werden. Dann kannst du im vordefinierten Array $_SESSION deine Variablen speichern.
    Wo stößt du da auf Probleme?

    Am besten objektorientiert,da ich das Ganze so aufsetzen wollte.

    Um Sessions zu verstehen, braucht es keine Objektorientierung. Es bringt mMn auch keine Vorteile.

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. Hi Hopsel,

      das Problem ist folgendes:

      <? $z = 0;?>
      <? $kombi = $this->data; ?>
      dann kommm das Formular mit

      <form action="<?=$_SERVER['PHP_SELF']?>" method="post">
      <? if (isset($_POST['weiter']))
      {
      $z++;}
      ?>

      dann den Fragen, Antworten und dem sbumit-Button

      <input type="submit" name="weiter" value="weiter" src="<?=BASISURL?>button_img.php?text=weiter&amp;width=101"/>

      wie baue ich denn da die Session-vars ein?

      hänge im Moment total..

      1. Hi heinzi!

        In deinem Code sehe ich weder ein session_start() noch die Benutzung von $_SESSION.

        wie baue ich denn da die Session-vars ein?

        Du brauchst doch gar keine Sessions.
        Schicke den Index der Frage doch einfach in der URL mit.

        MfG H☼psel

        --
        "It's amazing I won. I was running against peace, prosperity, and incumbency."
        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
      2. Hello,

        das Problem ist folgendes:

        <? $z = 0;?>

        Ich nehme an, dass $z der Counter sein soll.
        Wann musst Du denn den Counter initialisieren?
        Doch wohl nur dann, wenn er _nicht_ vorhanden ist!

        <?php
            session_start();

        if (!isset($_SESSION['z'])
            {
                $_SESSION['z'] = 0;
            }
            else
            {
                $_SESSION['z']++;
            }

        Brutalprogrammierer schreiben einfach nur

        $_SESSION['z']++;

        Das ist aber für die Stabilität des Codes nicht gut, auch wenn es bei abgeschalteten Notices "funktioniert"...

        Ein harzliches Glückauf

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. ok.hoffe, dass man hier weiter helfen kann.
          Oben ist mein neuer Thread geschlossen worden wg. Doppelposting, obwohl es eigentlich eine neue Problemstellung gab.

          Egal, hier mein derzeitiges Prob bzw. der derzeitige stand (Antwort von Cheatah):
          ___________
          Hi,

          $sessions = $_POST['ant'];

          irreführender Bezeichner. Nenne die Variable z.B. $answer.

          $_SESSION['ant'] = $sessions ;
          sollte doch eigentlich die Antwort (Formular-name 'ant') als Session-Array speichern oder?

          $_SESSION ist ein assoziatives Array, das stimmt. Du überschreibst aber immer den selben Wert darin, nämlich $_SESSION['ant']. Das, was Du in $sessions stehen hast, ist _kein_ Array.

          Cheatah
          ______________

          Aber wie kann ich das verhindern, dass der Wert immer überschrieben wird?
          Session_start() steht übriegens an anderer (erster) Stelle im Code...

          Ist die LÖsung die Parameter an die Url zu hängen eine wirkliche Alternative?

          danke, heinzi

  2. Hi, über
     <? if($_POST['weiter']=='weiter'): ?>
     <? $_SESSION['z']++?>
    <? elseif ($_POST['back']=='back'): ?>
    <? $_SESSION['z']--?>
    <? endif; ?>
    <?=$numbers = $this->numQuest;?>
    <? $kombi = $this->data; ?>
    <? print_r($kombi);echo "<br>";?>

    steuere ich im Moment die Zählervariable , die die Fragen ausliest.

    IM Firefox funktioniert alles super,
    in opera und in IE7 geht gar nichts.
    woran kann das denn liegen?

    danke heinzi