$_SESSION mit SQL Eintrag

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

  • #16
    ????????????
    $_SESSION[$_GET['x']]=1;

    eventuell auch so:
    $id=intval($_GET['x']); //sowieso empfehlenswert gegen SQL-Injection
    $_SESSION[$id]=1;

    Kommentar


    • #17
      Jetzt habe ich was gefunden.
      $_SESSION[1]=true;
      $_SESSION['2']=true;
      gehen nicht und zerstört z.T. das session-handling. Die sessionvariabeln wurden nicht geschrieben, oder nur die numerischen Variabeln wurden nicht geschrieben.

      Es geht , wenn die $_SESSION_array-indizes strings sind aber keine Zahlen. (ich habe sie mit einem Buchstaben beginnen lassen). Bzw. dann überhaupt Variabelnnamen-Syntax anwenden.

      Kommentar


      • #18
        @mai: print_r ist ne schöne sache

        @topic:
        $_SESSION[1]=1 überschreibt den zweiten array-index.

        warum nicht
        $_SESSION['downloads'] = array();

        bei jedem dl wird die id ins array gesteckt:
        $_SESSION['downloads'][] = $_GET['x'];

        und zum überprüfen reicht ein:
        in_array() mit den parametern $_SESSION['downloads'] und $_GET['x']

        easy und vorallem sauber!!!

        Kommentar


        • #19
          Versuchst mal folgendes:

          $_SESSION['geladen'][$_GET['x']]=1;

          if( isset($_SESSION['geladen'][$row['id']]) ) .....

          Kommentar


          • #20
            da ist meins aber schöner!!! :P

            Kommentar


            • #21
              Original geschrieben von TobiaZ


              warum nicht
              $_SESSION['downloads'] = array();

              da gibt es Gründe dagegen.

              Die Ueberraschung ist, dass numerische array-Indizes im Zusammenhang mit $_SESSION nicht funktionieren, das heisst nicht persistent sind. Genau solche sind aber vorgekommen, wenn man eine datenbank-id verwendet.

              Kommentar


              • #22
                da gibt es Gründe dagegen.
                welche denn?

                Und welche spechen dafür, dass ich mehrere einträge mit dem gleichen wert vornehme, obwohl ich genau weiß dass es nur einen möglichen wert gibt?

                Kommentar


                • #23
                  Original geschrieben von mai
                  Die Ueberraschung ist, dass numerische array-Indizes im Zusammenhang mit $_SESSION nicht funktionieren ...
                  'downloads' ist nicht numerisch! Und dass $_SESSION['1'] nicht funktioniert, ist ein alter Hut aus der Zeit von session_register() ... siehe http://de.php.net/manual/de/ref.session.php#66084
                  Hängt wohl damit zusammen, dass nicht das Array $_SESSION serialisiert wird, sondern nur sein Inhalt und dabei wird $_SESSION['1'] zu $1, was schlicht kein gültiger Variablenbezeichner ist und beim nächsten session_start() nicht wieder erzeugt werden kann.
                  Zuletzt geändert von onemorenerd; 18.06.2006, 14:46.

                  Kommentar


                  • #24
                    also zuerst die Dokumentation: http://se.php.net/session, unter EXAMPLES, Vorbemerkung (NOTES), zweiter Absatz findet sich tatsächlich:
                    The keys in the $_SESSION associative array are subject to the same limitations as regular variable names in PHP,
                    Der nachgefragte Grund (es gibt nur einen) ist, dass man ohne zusätzliche Logik nicht weiss, wann man die Variable $_SESSION['downloads'] löschen soll, was mit $_SESSION['downloads']=array() geschieht. Es ist aber nicht nötig, weil man in einen noch nicht vorhandenen array speichern kann.

                    Die andere Codierungsmethode ist äquivalent und er hat so angefangen. Mit der downloadsperre kommt jeder Eintrag auch mit deinem nur einmal hinein.

                    $_SESSION['downloads'][]=$_GET['x'];

                    if( in_array($row['id'] , $_SESSION['downloads']) )...

                    Soll er auswählen...

                    Kommentar


                    • #25
                      Original geschrieben von onemorenerd
                      Und dass $_SESSION['1'] nicht funktioniert, ist ein alter Hut aus der Zeit von session_register()
                      solche alten hüte trag ich nicht.. bzw. in der php-Zeit habe ich nie gelebt...

                      Kommentar


                      • #26
                        meinst du wann oder wenn? ergibt irgendwie beides keinen sinn. Tut mir leid.

                        Kommentar


                        • #27
                          Original geschrieben von TobiaZ
                          meinst du wann oder wenn? ergibt irgendwie beides keinen sinn. Tut mir leid.
                          Keine Ursache.

                          Das ursprüngliche Problem ist gefunden, und zwar mit debugging+foruming.

                          Kommentar

                          Lädt...
                          X