phpbar.de logo

Mailinglisten-Archive

[php] Session-Array um Wert erweitern

[php] Session-Array um Wert erweitern

Thomas Beckmann php_(at)_phpcenter.de
Thu, 16 Aug 2001 18:18:29 +0200


Hallo Martin!
>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.=20
>
>1. Problem:
>Wenn ich $sess_id_titel[] =3D "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
Offenbar stopfst Du vorher schon mal einen string in die Variable...
Normalerweise ist das n=E4mlich kein Problem.

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

Da beim ersten mal
>		$sess_id_titel =3D $form_id_titel;
nur ein string ist, wird mit=20
>$titelneuinsess[] =3D $sess_id_titel[$i];
nur der erste Buchstabe =FCbergeben.


---
Thomas Beckmann, Kiel, Germany
beckmann_(at)_gis.de


php::bar PHP Wiki   -   Listenarchive