Session Problem

Gesperrt
general2000plus
Beiträge: 53
Registriert: Mi 5. Jan 2005, 13:58
Wohnort: Coellefornia
Kontaktdaten:

Session Problem

Beitrag von general2000plus »

hallo

ich bin am verzweifeln und komme einfach nicht zu einer lösung.
ich benutze das hauptnavimodul mit folgendem output code:
ich setze in diesem modul eine sessionvariable($_SESSION['hintergrund']), es soll der aktive bereich der navigation gespeichert werden. das problem ist jetzt, wenn ich diese variable in einem anderen modul ausgebe wird nicht der aktive bereich ausgegeben sondern der jeweils vorherige.
hat jemand von euch eine idee woran das liegen kann?

gruss kai

Code: Alles auswählen

<?php 
<?php 
// Hauptnav 
/*********************************************** 
* CONTENIDO MODUL - OUTPUT 
* 
* Modulname : Navigation 1.1 
* Author : Jan Lengowski 
* Copyright : Contenido - four for business 
* Created : 15-05-2003 
* Modified : 26-05-2003 
************************************************/ 

if ( !is_object($db2) ) { 
$db2 = new DB_Contenido; 
} 

/** 
* Check if a category is child 
* of another category 
* 
* @return boolean true/false 
* @author Jan Lengowski <Jan.Lengowski@4fb.de> 
* @copyright four for business AG 2003 
*/ 
function catIsChildOf($id, $idparent) { 

global $cfg, $client, $lang;

$db = new DB_Contenido; 

$parent = $id; 

while ( $parent != 0 ) { 

$sql = "SELECT 
a.parentid 
FROM 
".$cfg["tab"]["cat"]." AS a, 
".$cfg["tab"]["cat_lang"]." AS b 
WHERE 
a.idclient = '".$client."' AND 
b.idlang = '".$lang."' AND 
a.idcat = b.idcat AND 
a.idcat = '".$parent."'"; 

$db->query($sql); 
$db->next_record(); 

$parent = $db->f("parentid"); 

if ($parent == $idparent) { 
return true; 
} 

} 

return false; 

} 

if ( catIsChildOf($idcat, CMS_VALUE[0]) ) { 
$sel_idcat = $idcat; 
} else { 
$sel_idcat = CMS_VALUE[0]; 
} 

/* Include Template Class */ 
include_once($cfg["path"]["contenido"] . 'classes/class.template.php'); 

/** 
* Array storing alle the 
* navigation data 
*/ 
$navitems = array(); 


/* Template Instance */ 
$tpl = new Template; 

/** 
* Recursive function for creating 
* the navigation array 
* @param Int $idcat Category id 
*/ 
function nav($idcat) { 

global $navitems, $client, $lang, $cfg; 

$db = new DB_Contenido; 
$db2 = new DB_Contenido; 

$sql = "SELECT parentid FROM ".$cfg["tab"]["cat"]." WHERE idcat = '$idcat'"; 

$db->query($sql); 
$db->next_record(); 

$parentid = $db->f("parentid"); 

if ( $parentid == 0 ) { 

if ( $idcat != CMS_VALUE[0] ){ 

$navitems = array(); 

$sql = "SELECT 
A.idcat, 
C.name 
FROM 
".$cfg["tab"]["cat_tree"]." AS A, 
".$cfg["tab"]["cat"]." AS B, 
".$cfg["tab"]["cat_lang"]." AS C 
WHERE 
A.idcat = B.idcat AND 
B.idcat = C.idcat AND 
B.idclient = '$client' AND 
C.idlang = '$lang' AND 
C.visible = '1' AND 
B.parentid = 'CMS_VALUE[0]' 
ORDER 
BY A.idtree"; 

$db->query($sql); 

while ($db->next_record()) { 

/* Check for external redirects... */ 
$sql = "SELECT 
a.external_redirect AS ext 
FROM 
".$cfg["tab"]["art_lang"]." AS a, 
".$cfg["tab"]["cat_art"]." AS b, 
".$cfg["tab"]["cat"]." AS c 
WHERE 
b.idcat = '".$db->f("idcat")."' AND 
b.is_start = '1' AND 
c.idclient = '".$client."' AND 
c.idcat = b.idcat AND 
a.idart = b.idart AND 
a.idlang = '".$lang."'"; 

$db2->query($sql); 
$db2->next_record(); 

$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank'; 

$navitems[$db->f("idcat")] = array("idcat" => $db->f("idcat"), 
"name" => $db->f("name"), 
"target" => $target); 
} 

} 

return true; 
} 

$sql = "SELECT 
A.idcat, 
C.name 
FROM 
".$cfg["tab"]["cat_tree"]." AS A, 
".$cfg["tab"]["cat"]." AS B, 
".$cfg["tab"]["cat_lang"]." AS C 
WHERE 
A.idcat = B.idcat AND 
B.idcat = C.idcat AND 
B.idclient = '$client' AND 
C.idlang = '$lang' AND 
C.visible = '1' AND 
B.parentid = '$parentid' 
ORDER BY 
A.idtree"; 

$db->query($sql); 

while ($db->next_record()) { 

/* Check for external redirects... */ 
$sql = "SELECT 
a.external_redirect AS ext 
FROM 
".$cfg["tab"]["art_lang"]." AS a, 
".$cfg["tab"]["cat_art"]." AS b, 
".$cfg["tab"]["cat"]." AS c 
WHERE 
b.idcat = '".$db->f("idcat")."' AND 
b.is_start = '1' AND 
c.idclient = '".$client."' AND 
c.idcat = b.idcat AND 
a.idart = b.idart AND 
a.idlang = '".$lang."'"; 

$db2->query($sql); 
$db2->next_record(); 

$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank'; 

$tmp_nav[$db->f("idcat")] = array("idcat" => $db->f("idcat"), 
"name" => $db->f("name"), 
"target" => $target); 
} 

$tmp_nav[$idcat]["sub"] = $navitems; 
$navitems = $tmp_nav; 

/* Function call */ 
nav($parentid); 

} // end function 

$sql = "SELECT 
A.idcat, 
C.name 
FROM 
".$cfg["tab"]["cat_tree"]." AS A, 
".$cfg["tab"]["cat"]." AS B, 
".$cfg["tab"]["cat_lang"]." AS C 
WHERE 
A.idcat = B.idcat AND 
B.idcat = C.idcat AND 
B.idclient = '$client' AND 
C.idlang = '$lang' AND 
C.visible = '1' AND 
B.parentid = '$sel_idcat' 
ORDER BY 
A.idtree"; 

$db->query($sql); 

while ( $db->next_record() ) { 

/* Check for external redirects... */ 
$sql = "SELECT 
a.external_redirect AS ext 
FROM 
".$cfg["tab"]["art_lang"]." AS a, 
".$cfg["tab"]["cat_art"]." AS b, 
".$cfg["tab"]["cat"]." AS c 
WHERE 
b.idcat = '".$db->f("idcat")."' AND 
b.is_start = '1' AND 
c.idclient = '".$client."' AND 
c.idcat = b.idcat AND 
a.idart = b.idart AND 
a.idlang = '".$lang."'"; 

$db2->query($sql); 
$db2->next_record(); 

$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank'; 

$navitems[$db->f("idcat")] = array("idcat" => $db->f("idcat"), 
"name" => $db->f("name"), 
"target" => $target); 
} 

/* Create Navigation Array */ 
nav($sel_idcat); 

/* Start Output buffer */ 
ob_start(); 

foreach ($navitems as $key => $data) { 
/* 1. Navigations Ebene */ 
$iz++;
$menuB= "Tmenu".$iz;
$tpl->reset(); 
$tpl->set('d', 'IDNAME', $menuB);
$tpl->set('d', 'NAME', $data['name']); 
$tpl->set('d', 'TARGET', $data['target']); 
$tpl->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat'])); 
$tpl->next(); 
if ($idcat == $data['idcat'] || is_array($data['sub'])) { 
$_SESSION['hintergrund']=$menuB;
$tpl->generate('templates/navfirst_h_on.html'); 
} else { 
$tpl->generate('templates/navfirst_h_off.html'); 
} 
if (is_array($data['sub'])) { 
$tmp_data = array(); 
$tmp_data = $data; 
$tmp_bereich = $menuB;
} // end if 
} // end foreach 

/* Read out buffer */ 
$html = ob_get_contents(); 

/* Clean buffer */ 
ob_end_clean(); 

/* Output buffer-contents */ 
echo $html; 

?> 
code für die ausgabe

Code: Alles auswählen

<?
$ausgabe=$_SESSION['hintergrund'];
echo $ausgabe;
?>
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ähm wieso verwendest du dafür die session ? mir ist nicht ganz klar was du damit erreichen möchtest...
werte in der session zu speichern ergibt eigentlich nur dann einen sinn wenn ich eine variable für die nächste seite sichern möchte...
*** make your own tools (wishlist :: thx)
general2000plus
Beiträge: 53
Registriert: Mi 5. Jan 2005, 13:58
Wohnort: Coellefornia
Kontaktdaten:

Beitrag von general2000plus »

super

habe den fehler gefunden, lag daran das die ausgabe vor der hauptnavi ausgeführt wurde. ärgerlich dafür habe ich mir jetzt zwei stunden den kopf zerbrochen.
:x
Gesperrt