Wie die Existenz eines Arrays in einer Sessionvariablen prüfen?

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

  • Wie die Existenz eines Arrays in einer Sessionvariablen prüfen?

    Hi,
    ich möchte überprüfen, ob eine mit einem Array gefüllte Sessionvariable Wehrte enthält oder leer ist. Auf die Abfage

    IF session(xyz) = ""

    bekomme ich folgende Fehlermeldung: "Typen unverträglich", vermutlich, weil ein Array drin ist. Was mach ich falsch? Kann ich Variablen auf true (für voll) und false (für leer) abfragen?
    Originalscript ist unten.

    Vielen Dank,
    Joy

    ******************************************************

    ' Wenn Session-Variable nicht schon vorhanden, erstelle
    ' sie und fülle sie mit Array "spielekorb"
    IF session("spielekorb") = "" THEN
    Dim spielekorb()
    session("Spielekorb") = 0
    redim spielekorb(1) ' mit lehren Arrays kann er nix anfangen
    END IF

  • #2
    ah das Problem kommt mir doch bekannt vor...

    exakt derselbe Fehler hab ich auch mal bei meinen Board gehabt. So nun ich hab das damals mit einer Umstruktuierung gelöst (ich war und bin zu faul mir die Arbeit zu machen warum das so ist, ja dumm ich weis :-) ).

    das müsste so gehen

    Dim pruefung1, pruefung2, ok
    'Initialiesierung der Variablen
    pruefung2 = session(xyz)
    pruefung1 = (pruefung2<>"")
    'die Var pruefung1 bekommt nun einen "booleanischen"
    'Wert (true oder false)
    ok = pruefung1
    'als bessere Übersicht wird dies auf die Var "OK" übertragen
    'dann kommt die eigentliche IF-Endif -struktur

    IF ok THEN
    Dim spielekorb()
    session("Spielekorb") = 0
    redim spielekorb(1) ' mit lehren Arrays kann er
    'nix anfangen
    END IF

    Im Grundegenommen ist das ja der selbe Quark wie
    session(xyz) = "" nur bei mir ging es komischerweise.Probiers mal aus. wenn es dann immernochnicht geht sag bescheid. Muss ich mir ne andere Lösung ausdenken.

    MFG Morpheus

    Der Computer rechnet mit allem -
    nur nicht mit seinem Besitzer
    Dieter Hildebrandt
    www.slware.de - Scripts & Tutorials für professionelles Webdesign

    Kommentar


    • #3
      Hmm, geht irgentwie leider nicht.

      Hmm, geht irgentwie leider nicht. Die Fehlermeldung bleibt die gleiche. Komisch. Ist doch im Prinzip ganz einfach: Session da oder nich. Wenn Du noch einen Tip hast, währ ich Dir dankbar...
      Zur Sicherheit poste ich mal den ganzen Code.

      Viele Grüße,
      Joy

      **********************************************
      ************

      ' Spiel IDs aus dem String in Variablen verpacken
      Dim spielid(10)
      spielid(1) = request.querystring("spielid_1")
      spielid(2) = request.querystring("spielid_2")
      spielid(3) = request.querystring("spielid_3")
      spielid(4) = request.querystring("spielid_4")
      spielid(5) = request.querystring("spielid_5")
      spielid(6) = request.querystring("spielid_6")
      spielid(7) = request.querystring("spielid_7")
      spielid(8) = request.querystring("spielid_8")
      spielid(9) = request.querystring("spielid_9")
      spielid(10) = request.querystring("spielid_10")



      ' Wenn Session-Variable nicht schon vorhanden, erstelle sie und fülle sie mit Array "spielekorb"
      '*** Initialiesierung der Variablen
      Dim pruefung, sessionleer
      '*** die Var sessionleer bekommt nun einen "booleanischen" Wert (true oder false)
      pruefung = session("spielekorb")
      sessionleer = (pruefung="")


      IF sessionleer THEN
      Dim spielekorb()
      session("Spielekorb") = 0
      redim spielekorb(1) '*** mit lehren Arrays kann er nix anfangen
      Dim anfang
      anfang = "ja"
      END IF

      ' *** alte version ***********************************
      *******************************
      'IF session("spielekorb") = "" THEN
      'Dim spielekorb()
      'session("Spielekorb") = 0
      'redim spielekorb(1) ' mit lehren Arrays kann er nix anfangen
      'Dim anfang
      'anfang = "ja"
      'END IF
      '**********************************
      ***********************************
      ***************



      ' Übergebene Spiele-IDs in den Array "Spielekorb"
      Dim zaehler
      Dim spieleanzahl
      Dim neuespiele
      neuespiele = 0

      FOR zaehler = 1 TO 10

      IF spielid(zaehler) <> "" THEN

      ' Wiedergutmachen der provisorischen Array-Füllung von oben
      IF anfang = "ja" THEN
      spieleanzahl = ubound(spielekorb) + 0
      neuespiele = neuespiele + 1
      anfang = "nein"
      ELSE
      spieleanzahl = ubound(spielekorb) + 1
      neuespiele = neuespiele + 1
      END IF
      redim preserve spielekorb(spieleanzahl)
      spielekorb(ubound(spielekorb)) = spielid(zaehler)

      END IF
      NEXT




      ' Array "Spielekorb" in session packen
      session("spielekorb") = spielekorb

      %><br><br><center><b><%= neuespiele %> Spiel/e wurde/n erfolgreich in den Spielekorb gepackt!</b></center><%
      ' response.redirect("erfolg.asp?anzahl=")

      Kommentar


      • #4
        Probier mal mit NULL oder EMPTY
        zu vergleichen

        also

        var_1 = Null oder
        var_1 = Empty

        sorry hab im Moment wenig zeit, hab im RL zur Zeit ein bisschen stress. vieleicht hilft dir das ja. wenn nicht nochn Post...

        [Editiert von Morpheus am 23-04-2001 um 14:59]
        MFG Morpheus

        Der Computer rechnet mit allem -
        nur nicht mit seinem Besitzer
        Dieter Hildebrandt
        www.slware.de - Scripts & Tutorials für professionelles Webdesign

        Kommentar

        Lädt...
        X