var transport

polar

Mitglied
hallo,

hab mal wieder ein session prob :(

meine session starte ich so:

PHP:
session_start();
session_register("s_cart");	
$s_cart = array();

$s_cart ist mein array in dem ich einige ausgewählte produkte ablege.
dieses array tranportiere ich mit hilfe meiner session von page zu page.

das array initialisiere ích zu beginn erstmal in einer schleife mit nullen. die entsprechende zeile sieht dann so aus:

PHP:
$s_cart[$counter] = array($row["id"] => '0');

wenn ich jetzt in meinem warenkorb auf das array zb. mit reset($s_cart) zugreifen möchte bekomme ich folgenden fehler:

PHP:
Warning: Variable passed to reset() is not an array or object in xxx:\s_cart.php on line 6
Warning: Variable passed to each() is not an array or object in xxx:\s_cart.php on line 8

das array scheint nicht als solches erkannt zu werden :(
hier noch der code auf meiner warenkorb seite:

PHP:
session_start();
	
function print_cart() {
	reset($s_cart);
  // über $s_cart[] index auf zugewiesenes array zugreifen
  while($res = each($s_cart)) {
  	//id und anzahl vom zugewiesenen array auslesen
  	while($inner_res = each($res[1])) {
  		echo "index = $res[0] : $inner_res[0] => $inner_res[1]<br>\n";
  	}
  }
}

nicht lachen, ist nur erstmal zum testen ;)
also mit session_start() transportiere ich ja die variablen, die für die session gültig sind. aber wieso klappt es nicht???
 
ahh!

ich glaub ich hab schon was gefunden *g*

Sind die php.ini-Parameter track_vars=On und register_globals=Off (standardmäßig On) eingestellt, dann sind u.a. die Sessiondaten nur über den $HTTP_SESSION_VARS[]-Hash ansprechbar, ansonsten werden die registrierten Variablen automatisch auf ihren letzten Wert reinitialisiert.

probier ich morgen mal :)
 
schade...

auch mit $HTTP_SESSION_VARS['s_cart'] kann ich nicht auf das array zugreifen.
bekomme wieder dieselbe error message :(

kann mir jemand helfen? hab nicht viel zeit *g*
edit: ich spiel hier wieder den allein-unterhalter hm? =)

edit2: oki hab nochwas rausgefunden. ich kann variablen transportieren, nur dieses array nicht. d. h. mit meiner session ist alles io *erleichtertsei* es wird ja nur eine referenz auf die variable übergeben oder wie war das nochmal??

also das array das ich verwende ist ein multidimensionales, assoziatives array *eg* und ist wie folgt aufgebaut...

$s_cart[$counter] = array($row["id"] => '0');
//erstmal alle werte auf 0

wenn ich das array auf der selben seite ausgebe klappt alles, nur nicht auf meiner warenkorb seite *hmpf* !!
 
Zuletzt bearbeitet:
hemmmm...
ich kann dir hierfür jetzt keine Garantie geben aber du kannst keine variabeln so speichern...
das session register macht einfach 1 cookie in dem die variabel und der inhalt + noch andere infos drin sind...
ein cookie kann aber keinesfalls ein ganzes array speichern!
die einzige möglichkeit wäre ein explode() und dann wieder ein implode() ansonsten jede var die du brauchst regen... wenn du nciht weisst wieviele das sind mach es mit dem explode...
hoffe hab dir geholfen...
Gruss Badmaster
 
hmm, tjor... =) ich probier morgen nochmal rum und melde mich wenn ich's hinbekommen habe. erstmal danke.

edit: ok hab's! muss in der funktion print_cart(), $s_cart nur "global" machen. das wars :)
 
Zuletzt bearbeitet:
Zurück