Abermals Hallo,
so, mein Umgang mit Sessions funktioniert jetzt insoweit schon mal ganz gut, als dass Werte von einer Seite an eine andere übergeben werden.
Allerdings bekomme ich bei einer Vergleichsabfrage, in der ein String nach dem Vorkommen einer Artikelbezeichnung durchsucht wird (markierte Zeile), die Fehlermeldung "Parse error: syntax error, unexpected T_IS_IDENTICAL".
Ich bekomme Bestellpositionen als String mit immer gleichem Aufbau "Bezeichnung|Größe|Farbe|Anzahl|Einzelpreis|Summe" von einer anderen Seite geliefert.
Mit nachfolgendem Code möchte ich prüfen, ob ein Artikel mit der Bezeichnung $Bezeichnung bereits in der Session abgelegt wurde:
<?php
$ArtikelVorhanden = "nein";
if (empty ($_SESSION['ID']))
{
array_push ($_SESSION['ID'], $Bestellposition);
}
else
{
for ($i = 0; $i < count ($_SESSION['ID']); $i++)
{
---> if (strpos ($_SESSION['ID'][$i], $Bezeichnung)) === true) <---
{
$ArtikelVorhanden = "ja";
$Spalte = explode ("|", $_SESSION['ID'][$i]); // Bezeichnung|Größe|Farbe|Anzahl|Einzelpreis|Summe
$Spalte[3] += 1;
implode ("|", $Bestellposition);
$_SESSION['ID'][$i] = $Bestellposition;
break;
}
}
if ($ArtikelVorhanden == "nein")
{
array_push ($_SESSION['ID'], $Bestellposition);
}
}
?>
Wenn ich mir über var_dump das Array $_SESSION ausgeben lasse, dann habe ich beispielsweise folgende Anzeige:
Array (1)
(
| ['ID'] => Array (2)
| (
| | ['0'] = String(50) "Gewandung für den Körper 1|M|Jeansblau|1|51.5|51.5"
| | ['1'] = String(51) "Gewandung für den Körper 2|M|Dunkelblau|1|41.1|41.1"
| )
)
Den PHP-Code werde ich nachfolgend, wenn er korrekt funktioniert, noch über eine header-Anweisung erweitern, um doppeltes Ablegen zu unterbinden.
Was stimmt aber an meiner Abfrage nicht?
Danke für eure Hilfe.
Gruß
Enrico