Philipp Grashoff: Session- Variable in anderer Datei ändern

Hi!

Ich schaffe einfach nicht folgendes:

ich habe die index.php, wo entweder eine Umfrage oder deren Ergebnis angezeigt werden soll, je nachdem, ob schon abgestimmt wurde. Dazu will ich eine Session benutzen. Die action vom Formularfeld zeigt auf die umfrage.php; In dieser Datei wird man per header an die Index.php weitergeleitet - und eine beliebige Session- Variable verändert werden. Nun habe ich aber das Problem, dass alle Änderungen, die ich in der umfrage.php bezueglich ID, Name oder sonst irgendwas mache, ignoriert werden -> die index.php wird nach wie vor ohne diese Veränderungen angezeigt. Da ich keine Anfänger-Gerechte Session-Beschreibung gefunden habe, weiss ich so langsam nicht weiter...

Deshalb:

kann mir vielleicht jemand sagen, wie sowas geht?

MFG

Philipp

  1. Hallo,

    fällt jetzt recht schwer ohne die entsprechenden Codeabschnitte was zu Deinem Problem zu sagen (evtl. Posten). Aber aller Anfang liegt denke ich mal in der Session-Identifizierung. Hast Du überall schön brav mitgegeben, welche Session Du eigentlich verwenden willst?

    Grüße aus Würzburg
    Julian

    1. Hi!

      So, hab mal meinen Code:

      Das steht in der Index.php:

      <?
      if (!session_is_registered('count')) {
          session_register('count');
          $count = 0;
      }
      ?>

      Diese Datei wird immer geladen.... also ne session wird auf jeden fall gestartet...

      falls an der Umfrage teilgenommen wird, wird per action=... die datei auswerten.php aufgerufen.. in ihr steht folgendes:

      <?

      $a=$HTTP_REFERER;
      header('location:'.$a);

      if (session_is_registered('count')) {
          $count = 1;
      }
      else
      {
          session_register('count');
          $count = 1;
      }

      die anderen Angaben in der Datei werden ausgefuehrt (in textdatei schreiben usw), aber die Variable Count wird nicht erhoeht, obwohl dass ja eingetlich der Fall sein muesste, sie bleibt 0....

      MFG

      Philipp

      1. Moin,

        Diese Datei wird immer geladen.... also ne session wird auf jeden fall gestartet...

        Von Session starten kann ich in deinem Code nichts sehen. Du möchtest auf jeden Fall session_start() benutzen!

        $a=$HTTP_REFERER;
        header('location:'.$a);

        Das ist ziemlich unschön, weil du dich auf den Referer verlässt.

        --
        Henryk Plötz
        Grüße aus Berlin

        1. Moin,

          Hiho

          Von Session starten kann ich in deinem Code nichts sehen. Du möchtest auf jeden Fall session_start() benutzen!

          Nun, ich habe nun schon oft gelesen dass eine Session auf jeden Fall gestartet wird, solald session_register kommt...

          »»Das ist ziemlich unschön, weil du dich auf den Referer verlässt.

          Gibts ne bessere Loesung ?

          1. * ausversehen auf Absenden gekommen*

            Gibts ne bessere Loesung ?

            Ich will, dass die Leute dorthin zurueckkommen wo sie waren, nachdem sie an der Umfrage teilgenommen haben..

            MFG

            Philipp

            1. Eine Lösung wäre per Forular die URL mitzugeben <input type=hidden value="http://<? echo $PHP_SELF; ?>" name=a>. Somit kommt die URL auf jeden Fall mit.

              Grüße aus Würzburg
              Julian

              1. Hi!

                Hab das ganze nochmals durchgeschaut.. jetzt hab ich nur session_start() in der index.php und dann halt session_start(), session_register("count") und $count=1 in der auswerten.php und die include-bedingung iss halt ob $count 1 ist oder nich...
                Klappt gut, muss jetzt nur noch das mit dem Hidden-Input machen...

                Vielen Dank euch allen!

                Philipp

                1. Hi!

                  Ein Problem beim Hidden-Input:
                  $PHP_SELF gibt mir zwar die php-datei zurueck; ich habe aber noch eine variable (index.php?con=...), welche er nicht mit abspeichert. diese Brauche ich aber unbedingt, sonst koennte ich gleich auf die index.php verweisen..

                  MFG

                  Philipp

                  1. Moin,

                    Ein Problem beim Hidden-Input:
                    $PHP_SELF gibt mir zwar die php-datei zurueck; ich habe aber noch eine variable (index.php?con=...), welche er nicht mit abspeichert. diese Brauche ich aber unbedingt, sonst koennte ich gleich auf die index.php verweisen..

                    $REQUEST_URI gibt dir den vollständigen Pfad und alle Parameter mit denen die aktuelle Datei aufgerufen wurde.

                    Hint: Diese und ähnliche Sachen erfährst du durch den Aufruf von phpinfo()

                    --
                    Henryk Plötz
                    Grüße aus Berlin

                    1. Hi,

                      $REQUEST_URI gibt dir den vollständigen Pfad und alle Parameter mit denen die aktuelle Datei aufgerufen wurde.

                      $REQUEST_URI gibt bei mir gar nix zurueck....

                      MFG

                      Philipp

                      1. Moin,

                        $REQUEST_URI gibt bei mir gar nix zurueck....

                        Ja mei, dann schau dir halt die Ausgabe von phpinfo() an!
                        Dann wirst du feststelllen dass evt. auch $HTTP_SERVER_VARS["REQUEST_URI"], $SCRIPT_NAME.($QUERY_STRING!=""?"?".$QUERY_STRING:"") oder $HTT_SERVER_VARS["SCRIPT_NAME"].($HTTP_SERVER_VARS["QUERY_STRING"]!=""?"?".$HTTP_SERVER_VARS"QUERY_STRING"]:"") funtionieren.

                        --
                        Henryk Plötz
                        Grüße aus Berlin

          2. Moin,

            Nun, ich habe nun schon oft gelesen dass eine Session auf jeden Fall gestartet wird, solald session_register kommt...

            Ja, aber schau dir deinen Code mal an:
            Du fragst erst ab ob die Variable in der aktuellen Sitzung registriert wird und rufst session_register erst auf wenn das nicht der Fall ist. Dann wird die Variable aber zusätzlich auch gleich auf 0 gesetzt.

            Gibts ne bessere Loesung ?

            Du hast doch eh Sessions: Pack den zuletzt aufgerufenen URL da rein. Alternative (imho besser): Pack den aktuell aufgerufenen URL (idealerweise mit Querystring) in das Abststimmformular wie Julian sagte.

            --
            Henryk Plötz
            Grüße aus Berlin