Session Problem

longnose

Grünschnabel
Hallo leute

Stehe vor einem Session Problem und weiss leider nicht weiter:

Ich habe einen kleinen Shop programmiert in welchem ich mit einer Server-Seitigen Session-Variable arbeite. Die Sessions werden einwandfrei übergeben und alles funktioniert soweit nach wunsch.

Hier der Code im Head:
PHP:
<?php
	// SESSION-VARS
	if(!session_id()){
   		session_start();
	}	
	
	if(!isset($_SESSION['sCart'])){
		$sCart = new warenkorb;
	} else {
		$sCart = $_SESSION['sCart'];
	}

	$_SESSION['sCart']=$sCart;	

?>

Nun benötige ich zum Schluss noch die "Kasse" mit dem Formular. Da ich diese Seite aber vom Server in wiTango generieren lasse, möchte ich das array $sCart in die vom Server erstellte neue Session übertragen, welche beim Aufruf von kasse.php generiert wird. wie stelle ich das am geschicktesten an?

meine ideen waren folgende:

  • da ich noch auf die alte session zugreifen kann (weiss zwar nicht wie das php-technisch lösbar wär) -> die alte session anzusprechen (da fehlt mir jedoch das knowhow dies umzusetzen)
  • das array $sCart irgendwie mit dem Link mitgeben und auf der nächsten seite wieder in die session speichern oder einfach nur auslesen...

kann mir jemand einen tipp geben wie man dies umsetzen kann in php?
 
Hier das Shop-Objekt

PHP:
<?php
	// WARENKORB KLASSE
	class warenkorb{
		
		var $items;
		// KONSTRUTOR
		function warenkorb(){
			$this->items=array();
		}
		
		// ---------------------------------------------------
	
		// ARTIKEL EXISTIERT IM WARENKORB?
		function funItemExist($id){
			// ARRAY AUF ENTHALTENEN ID-WERT ÜBERPRÜFEN
			foreach ($this->items as $key => $value) {
				if($id==$key){
					// ENTHÄLT BEREITS EINEN ID
					return true;
				}
			} return false;
		}
		
		// ARTIKEL HINZUFÜGEN
		function funAddItem($id, $quantity){
			if($this->funItemExist($id)){
				$this->items[$id]+=$quantity;
			} else {
				$this->items[$id]=$quantity;
			}		
				
		}
		// ARTIKEL ÄNDERN
		function funchgItem($id, $quantity){
			if($this->funItemExist($id)){
				$this->items[$id]=$quantity;
			} 				
		}
		
		// ARTIKEL AUSLESEN
		function funGetItems(){
			return $this->items;
		}
		
		// ARTIKEL ENTFERNEN
		function funRemItem($id){
			unset($this->items[$id]);
			return (!$this->funItemExist($id));
			
			/*
			if($this->funItemExist($id)){
				return false;
			} else {
				return true;
			}*/
		}

		// WAARENKORB LEEREN (ALLE ARTIKEL ENTFERNEN)
		function funResetCart(){
			unset($this->items);
			$this->items=array();
		}
				
		// ANZAHL ARTIKEL
		function funCountItems(){
			return count($this->items);
		}
	}
?>
 
Zurück