bug: Gutscheinwerte ändern sich

MyOOS hat einen Fehler, oder tut nicht das, was Ihr erwartet? Derartige "Unanehmlichkeiten" bitte hier.
Antworten
1274d3dd3
Beiträge: 5
Registriert: 13.10.2008, 12:09
Kontaktdaten:

bug: Gutscheinwerte ändern sich

Beitrag von 1274d3dd3 »

hallo,

mir ist ein seltsamer bug mit den gutscheinen aufgefallen:
ich habe eine Gutschein-Email an alle Kunden versendet mit 3€.
Punkt1: die Gutscheine sind NICHT an den Kunden gebunden.
Ich könnte also von mehreren Personen die Gutscheincodes für meinen Account nutzen.
Damit könnte man leben, Kundengebunden wäre allerdings bersser.

Punkt2:
mir ist aufgefallen, das der Wert ders Gutscheins von anderen Kunden abhängig ist.
bsp:
Ich gebe meine Gutschein-Code ein, und habe statt 3€ 21€ Gutschrift, ein anderer Kunde gibt seinen Code ein (anderes Netzwerk, andere Stadt) mein Gutscheinwert verändert sich entweder nach oben oder nach unten. ich hatte also nach div tests alles mögliche zwischen -21 und 21.

Ist dieser Bug bekannt oder ist es ein Konfigurationsproblem?
Wenn bekannt, ginbts den in 1.6 oder 1.7 noch immer?
Wenn konfiguration, wo ist das problem?

viele grüße und noch ein we,
kutte128
r23
Beiträge: 2625
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Hallo,
ich hatte also nach div tests alles mögliche zwischen -21 und 21.
interessante Beschreibung. Nur mangels nachvollziehbarer Informationen ist eine Reproduktion ja nicht möglich. Ist bei deinen Postings sicherlich (auch in der Verganheit) nicht zweck der Übung ;)

Das Verhalten von dem Gutschein kann man in
~/shop/includes/modules/order_total/*.php
anpassen.
(anderes Netzwerk, andere Stadt)
haben nur dann auswirklungen auf das Modul, wenn man MwSt Berechnungen bei seinem Gutschein verwendet und
"anderes Netzwerk oder Stadt" gleich verlassen des Binnenmakrtes bedeutet.
Punkt1: die Gutscheine sind NICHT an den Kunden gebunden.
Der Kunde kauft einen Gutschein und verschenkt diesen weiter. Für Geburtstage, Wiehnachten oder weil ihm nichts
anderes eingefallen ist. Gutscheine sind zuerst einmal 'normale' Produkte im Shop.

http://www.r23.de/Pop-Art-von-r23/jetzt ... _5_22.html

Damit gewinnt man zuerst einmal neue Kunden... Vor diesem Hintergrund sind diese Gutscheine selbstverständlich
nicht *Kundengebunden*

Man kann aber mit sehr wenig Aufwand Werbegutscheine (*3 euro* sind auch hier unüblich.) versenden. Über diese
Funktion verfügt aber der Shop noch nicht. D.h. man muss sich dies selber erstellen... und ja, diese sollten Kundengebunden sein.

cu

ralf
1274d3dd3
Beiträge: 5
Registriert: 13.10.2008, 12:09
Kontaktdaten:

Beitrag von 1274d3dd3 »

morgen!

zum reproduzieren:
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....

mit anderes netzwerk/stadt sollte eigentlich auch nur ausgedrückt werden, das der nicht am gleichen rechner sitzt und eventuell den selben browser nutzt.

über ein update auf 1.6 oder neuinstallation von 1.7 habe ich schon nachgedacht, aber sollte der bug dort noch auftreten, habe ich damit nichts gewonnen.

viele grüße,
kutte128
r23
Beiträge: 2625
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

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
1274d3dd3
Beiträge: 5
Registriert: 13.10.2008, 12:09
Kontaktdaten:

Beitrag von 1274d3dd3 »

hallo,

hier mal der ausschnitt aus der config:

Code: Alles auswählen

  define('STORE_SESSIONS', 'false');
  define('STORE_SESSIONS_CRYPT', 'false');
in der log kann ich keine probleme mit sessions feststellen, jeder nutzt eine andere.
mich wundert es ein wenig, das das problem nicht mit 2 windows (ie und firefox) oder windows und linux kisten auftaucht - zumindest konnte ich es damit bisher nicht rekonstruieren.
das problem am sonntag tauchte auf einem Mac (safari/firefox) und meinem firefox auf (linux).ich habe natürlich keine ahnung ob die beiden realen kunden (ist bisher bei nur 2 geblieben) eventuell einen mac nutzten.

aber ob das wirklich ein grund sein kann weiss ich nicht.
in der log heute gab es keine session-probleme.

EDIT:
gut, wie schon vermutet, am mac liegts nicht.
das problem taucht auf, wenn man auf den link in der email klickt.
gibt man den code im warenkorb manuell ein, klappt alles wunderbar.
ich habe jetzt mit 1.6 und 1.4 getestet.
ist wohlalso doch eher ein session problem

viele grüße,
kutte128
Zuletzt geändert von 1274d3dd3 am 02.06.2009, 15:56, insgesamt 1-mal geändert.
r23
Beiträge: 2625
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Hallo,[quote='kutte128',index.php?page=Thread&postID=1118#post1118]
in der log kann ich keine probleme mit sessions feststellen, jeder nutzt eine andere.
mich wundert es ein wenig, das das problem nicht mit 2 windows (ie und firefox) oder windows und linux kisten auftaucht - zumindest konnte ich es damit bisher nicht rekonstruieren.
das problem am sonntag tauchte auf einem Mac (safari/firefox) und meinem firefox auf (linux).ich habe natürlich keine ahnung ob die beiden realen kunden (ist bisher bei nur 2 geblieben) eventuell einen mac nutzten.
[/quote]für den Shop ist es unerheblich wer was auf welchem system verwendet. der shop ist zurzeit eine serverseitige lösung.
das problem taucht auf, wenn man auf den link in der email klickt.
alles nach index.php würde mich jetzt interessieren.

cu

ralf
1274d3dd3
Beiträge: 5
Registriert: 13.10.2008, 12:09
Kontaktdaten:

Beitrag von 1274d3dd3 »

hallo,

hier der link aus der mail ab index.php:

Code: Alles auswählen

index.php?mp=gv&file=redeem&gv_no=068eabd8fe9e
viele grüße,
kutte128
r23
Beiträge: 2625
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Der Link ist in Ordnung. D.h. an dem Link kann es nicht liegen.
Antworten