phpbar.de logo

Mailinglisten-Archive

[php] Session-Array um Wert erweitern

[php] Session-Array um Wert erweitern

Paff, Martin php_(at)_phpcenter.de
Thu, 16 Aug 2001 17:56:03 +0200


Hi,

ich moechte Usern die Moeglichkeit geben, 1 bis 5 Titel auszuwaehlen. Dabei
registriere ich die Titel-Strings in einem Array, das ich in der Session
registriert habe. Mit jedem Skript-Durchlauf wird das Array in ein
temporaeres Array umgeschaufelt, weil ich der Sessionvariablen (hier:
$sess_id_titel) den aktuellen Titelstring NICHT einfach anhangen kann. 

1. Problem:
Wenn ich $sess_id_titel[] = "1/#/Abcde"; versuche ("/#/" benutze ich spaeter
als Trenner...), dann erhalte ich folgende Fehlermeldung:

Fatal error: [] operator not supported for strings in
e:\mp\apache\htdocs\ivw\interactive\test\test.php on line 62

2. Problem:
Das scheint also nicht zu gehen. Ich habe also eine Menge Zeilen
geschrieben, um alles in ein temp. Array zu werfen und zum Schluss der
Sessionvariablen zu uebergeben. Hier aber passiert folgendes: Beim zweiten
Durchlauf kuerzt er den ersten Wert auf eine (1) Stelle (zB: "1/#/Abcde"
wird zu "1"), bei spaeteren Duchlaufen ist alles okay (zB "2/#/Fghi" bleibt
"2/#/Fghi")

Der Code lautet wie folgt:

if (!isset($sess_id_titel))
{ 
	if (isset($form_id_titel))	// $form_id_titel -> String zB
"1/#/Abcde"
	{
		session_register ("sess_id_titel");
		$sess_id_titel = $form_id_titel;
		echo "<BR>Titel 1: $sess_id_titel"; 
	}
}
else
{
	echo '<P CLASS="text">Bisher gespeicherte Titel:<BR> '; 
	for ($i = 0; $i < count ($sess_id_titel); $i++)
	{
		echo "<BR>Titel " . ($i+1) . ': ' . $sess_id_titel[$i];
		$titelneuinsess[] = $sess_id_titel[$i];
	}
	if (isset($form_id_titel))
	{
		echo "<BR>Neuer Titel: " . $form_id_titel;
		$titelneuinsess[] = $form_id_titel;
	}

	$sess_id_titel = $titelneuinsess;
}

Kann jemand helfen?

Martin



php::bar PHP Wiki   -   Listenarchive