Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Wie die Existenz eines Arrays in einer Sessionvariablen prüfen? [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Wie die Existenz eines Arrays in einer Sessionvariablen prüfen?


 
joysone
19-04-2001, 21:57 
 
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

 
Morpheus
19-04-2001, 22:45 
 
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.

 
joysone
23-04-2001, 01:25 
 
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=")

 
Morpheus
23-04-2001, 14:57 
 
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]


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:45 Uhr.