Array in $_SESSION [PHP]

  • #1
M

MrStack

Bekanntes Mitglied
Themenersteller
Dabei seit
25.06.2004
Beiträge
46
Reaktionspunkte
0
Hi,

habe folgendes Problem: ein array ist in der Variabel $_SESSION enthalten und ich muss dieses leeren.
Jedoch sind auch alle anderen variablen zu leeren die in $_SESSION vorhanden sind. Könnt ihr mir ein Tipp geben wie ich das mache? (Die folgende Prozedur leert bereits die Variablen)

Danke im voraus

Code:
function ClearAdvSrcValues() {

 if (is_array($_SESSION)) {
  reset($_SESSION);
  while (list($key, $val) = each($_SESSION)) {
   if (substr($key, 0, 7) ==->advsrc_')
    if (!is_array($_SESSION[$key]))
     unset($_SESSION[$key]);
  }
 }
}
 
  • #2
Hi,

in dem du die Abfrage obs kein Array ist wegläst ;)

Code:
function ClearAdvSrcValues() {
	if (is_array($_SESSION)) {
		while (list($key, $val) = each($_SESSION)) {
			if (substr($key, 0, 7) ==->advsrc_')
				unset($_SESSION[$key]);
		}
		reset($_SESSION);
	}
}
 
  • #3
leider tut sich überhaupt nichts, habe nun mit einem JavaScript getestet ob er überhaupt etwas aus der while Schleife durchführt.

Alle Werte die von einem input type text kommen werden gelöscht, bis auf jene die von einer multiple select kommen!!

Vieleicht hilft das weiter!!
 
  • #4
edoch sind auch alle anderen variablen zu leeren die in $_SESSION vorhanden sind.

Code:
<?php
$_SESSION = false;
?>

schneller bekommste die Variablen nich weg ;D ;D
 
  • #5
Hi,

nochmal zum Verständnis :)

Willst du alles in $_SESSION löschen (dann ist der einfachste Weg der, den Conny gepostet hat) oder nur die Keys die mit advsrc_ beginnen (so wars in deinem geposteten Script)?

Und was hat PHP jetzt mit JavaScript zu tun? Da steig ich irgendwie noch nich durch. :)
 
  • #6
Ich möchte nur die Variablen die mit advsrc_ beginnen leeren!!

Mit echo alert(test) habe ich nur kontrolliert ob er in die while schleife überhaubt einsteigt!!
 
  • #7
Hi,

Ich denke, dann mußt du etwas mehr von deinem Quelltext posten, mir fällt zumindest so nix mehr ein.

MrStack schrieb:
Ich möchte nur die Variablen die mit advsrc_ beginnen leeren!!
Den geänderten Code hatte ich getestet und der löscht alle Einträge in $_SESSION die mit advsrc_ anfangen (ob Array oder nicht ist unset egal).


MrStack schrieb:
Mit echo alert(test) habe ich nur kontrolliert ob er in die while schleife überhaubt einsteigt!!

Aber nicht so, oder? :) :
function ClearAdvSrcValues() {
if (is_array($_SESSION)) {
while (list($key, $val) = each($_SESSION)) {
echo alert(test);
if (substr($key, 0, 7) ==->advsrc_')
unset($_SESSION[$key]);
}
reset($_SESSION);
}
}
 
  • #8
:eek: nein, soo:

Code:
   echo <script>;
   echo alert('test');;
   echo </script>;
 
  • #9
Habe nun auch mit folgenden Code kontrolliert ob $_SESSION Werte enthält, jedoch scheint das nicht der Fall zu sein!!

Code:
if (count($_SESSION) > 0) {

   echo <script>;
   echo alert('test');;
   echo </script>;
}

Außerdem benutze ich noch folgende Methode um die Variablen zu füllen:
(Diese Methode wird beim Ergebnis der Suche verwendet) Für $a setze ich $_POST ein!!

Code:
function StoreAdvSrcValues($a) {

 if (count($a)) {
  reset($a);
  while (list($key, $val) = each($a)) {
   $_SESSION['advsrc_' . $key] = $val;
  }
 }
}

Wenn ich nun zurück auf die Suche Seite gehe wird die

ClearAdvSrcValues ausgeführt (siehe bereits geposteten Code) Jedoch bleibt auf der Ergebnis seite immer noch die Werte von der:

Code:
<select name=ca_cts_id[] size=3 multiple>

erhalten... schlecht :'(
 
  • #10
Habe nun den Fehler gefunden!!

Habe ein wichtiges include zu spät gemacht!! *gg*

Danke trotzdem für eure Hilfe

Cyya
 
Thema:

Array in $_SESSION [PHP]

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.965
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben