Session Variable

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Session Variable


    Also folgendes:
    Ich versuche ein Skript zu schreiben das beim aufruf eine Variable in die Session schreibt (naja etwas doof gesagt^^)
    PHP-Code:
     <?php
    session_start
    ();
    $rand rand(1,100);
    $number $_GET['number'];
    if (
    $_GET['begin']) {
    $_SESSION['rand'] = $rand;
    }
    if (
    $_SESSION['rand'] == $number) {
    ?>Du hast die Zahl (<?php echo $_SESSION['rand']; ?>) erraten!<br>
    <a href="scripts.php?which=3&clean=true&begin=true">Neue Runde!</a>
    <?php
    }else if ($_SESSION['rand'] < $number) {
    ?>Die Zahl ist kleiner als <?php echo $number?>!
    <?php
    }else if ($_SESSION['rand'] > $number) {
    ?>Die Zahl ist größer als <?php echo $number?>!
    <?php
    }
    ?>
    Das war jetzt ein kleiner ausschnitt aus meinem Skript, mein Problem ist das wenn die Session-Variable einmal $rand annimmt sie den Wert immer aktualisiert! Das heißt wenn $rand 10 ist und begin existiert ist $_SESSION['rand'] auch 10 doch sobald $rand sich verändert (egal ob begin existiert oder nicht) nimmt die Session den Wert wieder an!

    Ist vielleicht etwas kompliziert erklärt aber ich glaube man weiß was gemeint ist!

    Ungefähr so:
    In Sessions steht: ...rand=>$rand...
    und da muss die variable aktualisiert werden...
    wie schaffe ich es das anstatt $rand die zufällige zahl hinzugefügt wird?

    Danke für eure Antworten!

    //edit:
    $_GET['begin'] ist eine Variable die ich in meinem Skript verwende damit die Zahl nur einmal eingetragen wird!
    Zuletzt geändert von hilst; 16.08.2006, 16:25.

  • #2
    mach mal [PHP]-Tags, damit man das auch lesen kann/will.

    Was ist begin? nimm mal lieber isset() oder sowas.

    Kommentar


    • #3
      Das kann eigentlich nur heissten, dass du immer in
      PHP-Code:
      if ($_GET['begin']) {
      $_SESSION['rand'] = $rand;

      hineinkommst. Sag mir jetzt nicht, dass du sonst begin=false übergibst ? Oder etwa doch ? Du prüfst mit deiner Bedingung nicht den Wert der Var sondern nur ob sie existiert. Und exisiteren tut auch eine Var mit Wert false v.a. weil Werte via URL immer als Strings behandelt werden.

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Nein ich übergeben die Variable begin sonst garnicht, das ist mir auch schon eingefallen und hab diese zeile in $_GET['begin'] == "true" geändert

        Kommentar


        • #5
          PHP-Code:
          if ($_GET['begin'] && !isset($_SESSION['rand'])) { 
          Bringt dich das weiter ?

          Gruss

          tobi

          p.s. übergibst du die Session ID überhaupt irgendwo ?
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            und jetzt funktionierts?

            Kommentar


            • #7
              ich weiß leider nicht was isset() macht ich erkundig mich mal...habs probiert klappt nicht, ich werd mal den gesamten script posten...
              PHP-Code:
              <?php
              session_start
              ();
              $rand rand(1,100);
              if (
              $_GET['begin'] && !isset($_SESSION['rand'])) {
              $_SESSION['rand'] = $rand;
              }
              ?>
              Zuletzt geändert von hilst; 16.08.2006, 17:11.

              Kommentar


              • #8
                alles was zu lang ist, verursacht einen horizontalen scrollbalken.

                Stupides Quelltextposten bringt dich in diesem Forum nicht weiter. du muss schon am code arbeiten.

                hast du mitlererweile herausgefunden, obs an der if(bedingung) liegt? Das heißt, dass die bedingung immer true ist?

                Mittels ein paar testausgaben solltest du das wohl hinbekommen.

                Kommentar


                • #9
                  Ja, entschuldigung ich war in einem Internetcafe und hatte keine Zeit mehr...
                  Leider ist mein Computer "eingeschränkt" z.B. funktioniert kein Javascript, aber egal.
                  Es liegt nicht an der if Bedingung wie schon erwähnt glaube ich das die Session (rand=>$rand) jedesmal die Variable aktualisiert also brauche ich eine andere Möglichkeit das selbe Ziel zu erreichen.
                  Ich weiß das mich das quelltextposten nicht weiter bringt das ist nur unnötig arbeit und das mit dem scrollbalken nervt, ich weiß hab selbst ein forum.
                  Zuletzt geändert von hilst; 16.08.2006, 17:06.

                  Kommentar


                  • #10
                    Es liegt nicht an der if Bedingung
                    kannst du das belegen?
                    wieso unternimmst du nichts dagegen?


                    zu deinem letzten Satz sag ich jetzt nichts.

                    Kommentar


                    • #11
                      Es liegt nicht an der if Bedingung wie schon erwähnt glaube ich das die Session (rand=>$rand) jedesmal die Variable aktualisiert also brauche ich eine andere Möglichkeit das selbe Ziel zu erreichen.
                      Es gibt nur eine Möglichkeit für das Script den Wert der Session Var zu ändern. Dann nämlich wenn die Bedingung zutrifft. Ich habe dich ja schon gefragt ob du die Session ID irgendwo mitgibst. Wenn du das nicht tust, dann ist !isset($_SESSION) natürlich true.

                      Gruss

                      tobi
                      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                      Kommentar


                      • #12
                        PHP-Code:
                        if ($_GET['begin'] && !isset($_SESSION['rand'])) 
                        Du solltest auch alle $_GET['*'] mit isset prüfen und nicht einfach drauf zugreifen.

                        Gruß
                        Uwe

                        Kommentar


                        • #13
                          ja kann ich belegen, habe zu der anweisung noch echo "klappt"; hinzugefüggt und das kam nur wie begin existierte
                          habs verkleinert
                          Ich weiß das mich das quelltextposten nicht weiter bringt das ist nur unnötig arbeit
                          sry das war so gemeint das das für mods oder admins unnötige arbeit ist
                          Es gibt nur eine Möglichkeit für das Script den Wert der Session Var zu ändern.
                          Ja der Wert wird nicht geändert er ist nach wie vor $rand

                          Bin dann mal bis morgen offline
                          P.S. Dieses Forum ist klasse, danke für die schnellen antworten etc.!
                          Zuletzt geändert von hilst; 16.08.2006, 17:40.

                          Kommentar


                          • #14
                            ja kann ich belegen, habe zu der anweisung noch echo "klappt"; hinzugefüggt und das kam nur wie begin existierte
                            aha, du merkst aber schon dass das ein widerspruch in sich ist.

                            Kommentar


                            • #15
                              PHP-Code:
                              <?php
                              if (isset($_GET['begin'])) {
                              $_SESSION['rand'] = $rand;
                              echo 
                              "klappt";
                              }
                              ?>
                              Also irgendwie seh ich da was falsch^^

                              P.S:Vielleicht ist Anweisung das falsche Wort^^
                              Zuletzt geändert von hilst; 17.08.2006, 08:01.

                              Kommentar

                              Lädt...
                              X