Hilfe für Session

chrmey

Grünschnabel
Hallo Zusammen,

mein erster Beitrag in diesem Forum! Ist echt toll hier :)
Ich habe ein Bild-Upload-Skript mit Warenkorbsystem in PHP geschrieben (ohne Datenbank!) Funktioniert auch bisher ohne Probleme. Leider vergisst der Server nach einer Weile das ich da bin und leert meinen Warenkorb (bzw. sieht mich scheinbar als neuen Nutzer). Ich kann manchmal 4 Bilder in den Warenkorb laden, manchmal auch mehr.
Das Problem:

Ich habe alles in eine Datei geschrieben (nur Funktionen in eine separate Datei, die ich includiere). Kann das Problem daran liegen, dass ich bisher weder Sessions noch eine Datenbank nutze? Leider habe ich noch nie mit Sessions gearbeitet. Und weiß leider bis auf session_start() nicht genau wie es geht - vor allem wenn alles in einer Datei steht.

Über jegliche Hilfe wäre ich dankbar.
Christian

PS: Da das Skript schon recht groß ist, würde ich es gern bei Bedarf per Mail senden.
 
Wo und wie speicherst du den Warenkorb denn?

Und wie ordnet PHP den Warenkorb einem User zu?
 
Danke für die superschnelle Antwort!

Die erste Variante war zu konfus ;-)
Also folgende Frage:
1. Ist die Weitergabe der SID so möglich? (am Anfang der Datei nur session_start() ohne weitere Angabe!)
<form method="post" action="'.$_SERVER['PHP_SELF'].SID.'" enctype="multipart/form-data" name="upload">
Problem ist, dass die SID im Browser nicht angezeigt wird.

2. Die Werte eines Array werden bisher in Form von <input type="hidden" name="upload" value="'.htmlentities(serialize($upload)).'"> weitergegeben.
Muss ich das ändern in $_SESSION["upload"] = $upload und ohne htmlentities und serialize?

Das war's schon. Entschuldigung für die ersten Fragen. Hoffentlich sind diese besser. Aber im Bereich sessions bin ich noch ein Neuling.
Danke
 
Zuletzt bearbeitet:
Problem hat sich erledigt, habe es so gemacht wie oben und es läuft.
Bisher habe ich nur noch das Problem, dass die SID nicht im Browser angezeigt wird. Ist das normal?

Schönen Abend Allen!
 
Die Session ID solltest du am besten so weitergeben:

PHP:
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'?sid='.session_id().'" enctype="multipart/form-data" name="upload">';
 
Habe alles abgeändert, jedoch die sid erscheint wieder nicht in der Browserleiste. Dort steht noch immer brav upload2.php ohne id. Da es läuft, stört es mich nicht. Ich habe aber die Bedenken, dass ich gar nicht in der Session arbeite.
 
Zuletzt bearbeitet:
Normalerweise arbeitet PHP immer mit einem Session Cookie, das automatisch gesetzt wird, sobald die Session gestartet wird.
Problematisch wird es halt, wenn der Client dann Cookies blockt.
 
Nochmals danke, werde weiterhin testen. Ein so schnelles und nettes Forum liest man selten!

Bis demnächst
Christian
 
Zurück