Das folgende Problem in einem PHP-Einkaufswagen.
A Dump meiner Sitzung wie folgt aussieht:
Array ([username] => [email protected] [key] => 1)
Der Einkaufswagen drei Schaltflächen:
<form name='cartForm' action='cart.php' method='post'>
<input type='image' value='submit' name='continueshopping' src='x.jpg' />
<input type='image' value='submit' name='update' src='y.jpg' />
<input type='image' value='submit' name='checkout' src='z.jpg' />
, wenn ich eine der Tasten drücken, die Seite neu geladen und das tut, was es muss (dh entfernen oder fügen Sie ein Element) ... aber das Sitzung-Array wird auf folgende geändert (abhängig von der Taste gedrückt)
Ist [Schlüssel] ein reserviertes Wort? Warum sollte der Wert von $ _SESSION ['key'] von einem Formular überschrieben werden, das einfach alles anlegt? Dies ist ein Problem für unser Projekt, da wir Benutzerkonten-IDs in [Schlüssel] gespeichert haben, aber der Wert wird jedes Mal überschrieben, wenn eine Schaltfläche im Einkaufswagen gedrückt wird.
Der eigentliche Code ist ziemlich lang, und es hier zu veröffentlichen wäre nicht praktisch. Ich weiß nicht, was ich posten soll, da der Warenkorb niemals mit der Sitzung interagiert, außer die session_id() zu erfassen. Ich frage mich wirklich, ob irgendjemand Ähnliches erlebt hat. Ich kann das Problem nicht auf meinem lokalen Server (PHP5) neu erstellen, sondern nur auf dem Live-Server (PHP4).
Vielen Dank im Voraus.
Ändern foreach ($ _POST als $ key => $ value) foreach ($ _POST wie $ key2 => $ value) macht alles funktioniert. Also nehme ich an, die Antwort ist eine Kombination aus AndreKRs Antwort und Ihrer - die Schlüsselvariable _POST wird mit der Schlüsselvariable _SESSION verwechselt. – Hovvit