PHP unerklärliches session verhalten

fz21z

Lt. Junior Grade
Registriert
Apr. 2009
Beiträge
300
hi,

ich habe einen onlineshop programmiert, basierend auf php.
artikel id und menge lege ich in einer session ab.
die session id uebergebe ich mit der url.
beim shoppen bzw. surfen verliert sich teilweise die session, um beim nächsten klick sprich link wieder aufzutauchen.
sichtbar wird das durch permanente ausgabe der session mit print_r.
webspace ist 1und1. auf meinem home xampp test system(windows) läuft alles.

#Artikel hinzufügen
PHP:
$_SESSION['warenkorb'][$articleid] = "1";

#SESSION Übergabe
HTML:
index.php?sektion=warenkorb&PHPSSID=618d8ad291859723da1e658258d79b4b
 
Zuletzt bearbeitet:
Moment mal. Baust du die URLs manuell zusammen? Normal passiert das doch halb automatisch wenn du die PHP-Funktion session_start() am Anfang deiner Skripte hast.
 
PHP:
session_start();

habe ich natuerlich.
die session id uebergebe ich dann, sprich insofern baue ich die url selber zusammen

PHP:
$phpssid = session_id();
Ergänzung ()

könnte das unter umständen ein serverseitiges problem sein, evtl. is die mühle einfach zu langsam und schafft es nicht, die sessions richtig zu verwalten?
 
Könnte es sein, dass sich die Bezeichnung der Session unterscheidet?
-> Vor session_start(): session_name(<string>)

Mir kommt "PHPSESSID" wahrscheinlich vor als "PHPSSID".
 
Ich würde dir bei einem Online-Shop abraten mit Session URLs zu arbeiten. Zumindest wenn's mit dem Login und der Bestellabwicklung losgeht.
 
lass die uebergabe doch mal ohne link geschehen, ergo lass es php automatisch als cookie speichern, ich uebergebe meine sessionid nie mit der url, damit kanns passieren, dass wenn jemand den link verschickt, er die daten der session unbewusst weitergibt ...
 
@Eagle-PsyX & fi**en32

Grundsätzlich habt ihr beide recht - nichtsdestotrotz MUSS es diese Möglichkeit für User geben, die von vornherein Cookies ablehnen.

Generell sind Cookies zwar rel. sicher, aber auch die Session per URL ist nicht zwingend unsicher - man muss halt die Session ID an gewisse Parameter fix binden (Browser, IP...), sodass es recht schwer wird für einen Hacker/Scriptkid diese Daten nachzubilden.

Man kann natürlich auch von vornherein sagen "mir egal, der user MUSS Cookies akzeptieren und gut is" - das aber ist nicht gerade Kundenfreundlich, oder?


@fz21z
Setzt du innerhalb einer Session irgendwelche Variablen neu? Ne Zeitbegrenzung der Session z.B. oder irgendetwas derartiges?

Welche PHP-Version setzt du lokal, welche auf dem Server ein? Ggf. nutzt du irgendeinen Code, der in einer neuen PHP-Version enthalten, in der alten nicht enthalten ist.

Tritt der Fehler grundsätzlich "sporadisch" auf oder nach einem bestimmten Muster, beispielsweise nach bestimmten vom User ausgeführten Aktionen? Was sagt dir PHP, wenn du error_reporting(E_ALL); verwendest? (speziell Warnings)...
 
@TchiboMann: grundsätzlich wäre es nicht kundenfreundlich, nur möchte ich mal behaupten, dass die 0-8-15 inet-user eh keine ahnung haben was cookies sind wozu sie gebraucht werden und vor allem dass man das im browser einstellen kann um sie nicht zu gestatten.

ergo triffts nur die, die sich ein wenig mit cookies beschäftigt haben und die damit eigentlich wissen, dass es bei einem shop evtl notwendig ist. wer das nicht aktzeptiert, hmmm ja ich weiß nich aber der kann auch draußen bleiben xD

nach deiner theorie wären auch ajax-pages kundenunfreundlich, weil sie javascript voraussetzen.

@topic: du solltes evtl mal ein paar testausgaben der sessions zwischendurch machen, um den ort des verschwindens ein wenig einzukreisen.
hast du evtl mehrere session_start(); laufen? sind die php files welche die sessions nutzen alle in einem ordner, oder hast du gar nur einen einstiegspunkt (index.php)?
 
Zuletzt bearbeitet:
@fi**en32

Nunja, du darfst die ganzen "Noob"-Zeitschriften ala PC Welt und Co. nicht vergessen. Hier wird ständig und immer wieder von Anonymisiermöglichkeiten, Anti-Script Tools usw. gesprochen. Glaub also lieber nicht, dass wirklich nur Leute auf Cookie-Support verzichten, die sich damit auch beschäftigen.

Ich sag zwar auch, dass mir diejenigen, die meinen JS und/oder Cookies abschalten zu müssen, sonstwo mal runterrutschen können, ABER: Wenns um wirtschaftliche Interessen geht (was ein Shop nunmal in der Regel hat), dann sollten auch derlei Clientel berücksichtigt werden.

Btw: Was ich absolut hasse sind Seiten, die javascript zwingend zur Pflicht machen für eine ordentliche Funktionsweise einer Seite. Solches Vorgehen ist einfach nur falsch. Javascript ist ein ergänzendes Element, auf das notfalls auch verzichtet werden können sollte. Stichwort Barrierefreiheit und Browsersupport (vor allem mobile Endgeräte). Generell bin ich ein Freund von javascript, aber eine Website MUSS zwingend auch ohne funktionieren können.

Is also nich ganz so einfach alles über einen Kamm zu scheren^^


sind die php files welche die sessions nutzen alle in einem ordner,

Das ist irrelevant. Wenn alle an der Session beteiligten PHP-Dateien, die direkt aufgerufen werden, stession_start(); am Anfang der Datei haben, ist die Verzeichnis- und Dateistruktur total egal. Erstrecht ist die Struktur egal, wenn die Index.php am Anfang ein session_start() hat und die Datei danach weitere PHP-Scripte per include() oder require() einbindet. Die Struktur selbst wäre nur dann wichtig, wenn im Cookie der Pfad nicht "/" ist sondern ein Unterordner der Domain.

Anders wärs unter Umständen bei Nutzung verschiedener Subdomains innerhalb einer Session, da die Cookiedaten hier nicht zwingend übergeben werden, wenn der Cookie an eine spezifische Domain gebunden is.
 
Zurück
Oben