Hallo,
klingt wild.
Seit wenigen Wochen ist unsere Entwicklungsumgebung für die Version 2.1. offen, so, dass man noch in Jahren
sehen kann, was sich an welcher Datei wie geändert hat. Okay, dieser Hinweis hilft jetzt bei dem aktuellen
Problem wirklich nicht weiter, aber soll einen Ausblick auf die Zukunft geben. Dann könnte man eben prüfen, was wie
an dem Modul in letzten jahren geändert wurde.
Hier das Modul in der aktuellen Version
http://svn.berlios.de/viewvc/oos/trunk/ ... iew=markup
Komme ich zurück zu dem Problem
einen gutschein über 3€ (wert ist egal) über den adminbereich -> gutscheine -> Gutschein eMail an 2 oder mehr kunden versenden.
ein kunde klickt auf den link in seiner mail, legt etwas in den warenkorb.
der zweite kunde klickt während der erste noch im shop ist auch auf seinen link,legt etwas in den warenkorb. der erste kunde hat nun ein guthaben von 6€.
beim nächsten 9€ usw.
ich habe in der übersicht echte bestellungen die eine gutschrift von 24€ haben,und noch einen mit 12€, der für seine bestellung damit gar nichts bezahlen muss.
bisher hält sich der schaden noch in grenzen. bei 665 noch aktiven gutscheinen kann sich das aber noch ändern....
Zum besseren Verständnis, jeder Kunde bekommt bei dem Shop eine *eigene* Session. Wenn der Kunde etwas in
seinen Warenkorb
legt, darf selbstverständlich kein anderer Kunde zugriff auf diesen Warenkorb sprich Ssession haben.. Selbstverständlich auch nicht auf die gutscheine oder sonstige Werte die für dem Kunden in der Sesseion verwaltet werden. Der Shop selbst verwaltet diese
Seesion normerlweise nicht bzw. sollte der Shop die Session nicht selbst verwalten... sondern die Verwaltung der Session sollte Aufgabe von PHP für den Shop übernehmen.
Was steht in der
~/shop/includes/config.php
für die Session?
wenn ich einen Blick auf die Einstellung werfen darf, kann ich sagen, was wie geändert werden muss, damit
PHP die Session verwaltet.
Wie Seesion funktionieren bei PHP steht in dem PHP-Handbuch
http://de.php.net/manual/de/book.session.php
wenn man weitere Informationen zu dem Thema wünscht... kann ich das Handbuch empfehlen.
Jetzt kann es möglich sein, dass irgendein Kunde oder man Selbst einen Link zu dem Shop
mit einer "gestarteten Session verwendent.
http://demo.myoos.de/index.php?mp=main& ... 7fdeec01cb
Hierbei "entführt" man die Session (
R23SID=d6ec7ceef151892cdf9b527fdeec01cb) und der 1.4.x Shop
startet die Session leider nicht neu.
In den aktuellen versionen haben wir 'kontrollpunkte* eingebaut.
Wir schreiben den user
HTTP_USER_AGENT in die Session
Code: Alles auswählen
// verify the browser user agent
$http_user_agent = isset($_SERVER['HTTP_USER_AGENT]) ? $_SERVER['HTTP_USER_AGENT] : '';
if (!isset($_SESSION['session_user_agent])) {
$_SESSION['session_user_agent] = $http_user_agent;
}
und sollte der agent nicht übereinstimmen, löschen wir die 'login'daten.
Code: Alles auswählen
if ($_SESSION['session_user_agent] != $http_user_agent) {
unset($_SESSION['customer_id]);
unset($_SESSION['session_user_agent]);
$_SESSION['cart]->reset();
$_SESSION['member]->default_member();
oos_redirect(oos_link($aModules['user], $aFilename['login], '', 'SSL'));
}
dies muss man an die 1.4. anpassen, wenn man dies wünscht.
gleichzeitig machen wir dies auch mit der IP Adresse des Kunden,
Stimmt die IP in der Session nicht überein, löschen wir die
Login daten.
Code: Alles auswählen
// verify the IP address
if (!isset($_SESSION['session_ip_address])) {
$_SESSION['session_ip_address] = oos_server_get_remote();
}
if ($_SESSION['session_ip_address] != oos_server_get_remote()) {
unset($_SESSION['customer_id]);
unset($_SESSION['session_ip_address]);
$_SESSION['cart]->reset();
$_SESSION['member]->default_member();
oos_redirect(oos_link($aModules['user], $aFilename['login], '', 'SSL'));
}
Auch dies kann man vermutlich mit wenig Aufwand an die 1.4 anpassen.
Damit hat man aber das Problem noch nicht glöst! Die Ursache sollte man suchen.
a- haben die Kunden wirklich die gleiche Session - wie von mir vermuetet (log-files auswerten?)
b- wenn sie die gelichen Session verwanden muss man klären warum! (Suchmaschinen Links zum Shop mit der Session?
oder durch eine Bearbeitung eines Templates die Session in einen Link eingefügt? Evtl. ein Link zum Shop
mit einer session veröffentlicht?
c- keine ahnung - das beschrieben verhalten ist nicht vorgesehen und sollte so selbstverständlich nicht sein.
cu
ralf