Hallo zusammen,
folgendes wird zwar nur für einen verschwindend geringen Teil der Nutzer von Bedeutung sein, korrigiert aber einen Fehler.
Vorab als Info: Ich nutze das komplette Spektrum von INT(11) (-2147483648 bis 2147483647) für die Generierung von Produkt IDs. Alles funktioniert, bis man in den Warenkorb kommt und Artikel mit negativer Produkt ID aus dem Warenkorb entfernen möchte. Der Entfernen-Button filtert das Minuszeichen aus der Produkt ID heraus, sodass sie nicht mehr angesprochen werden kann. Mit dem Button lassen sich nur Artikel mit positiven Product IDs entfernen, obwohl der Modified Shop im Allgemeinen auch Artikel mit negativen Produkt IDs zulässt und verarbeitet.
Korrigieren lässt sich dies in Zeile 60 der Datei ./includes/cart_actions.php, dort steht
$prd_id = preg_replace('/[^0-9\{\}]/', '', $_GET['prd_id']); Es sollte ein Minuszeichen hinzugefügt werden, um die Produkt IDs nicht künstlich auf positive Zeichen zu beschränken und die Auswahlmöglichkeiten mit einem Schlag um 2000000000 zu verringern.
So sollte Zeile 60 der cart_actions.php nach Korrektur aussehen:
$prd_id = preg_replace('/[^0-9\{\}\-]/', '', $_GET['prd_id']); Im SV Trunk wurde der betreffende Teil ausgelagert in die Datei ./inc/xtc_input_validation.inc.php
Dort muss die Zeile 33 in folgendes geändert werden.
$replace_param='/[^0-9\{\}\-]/';
PS: Das Minuszeichen braucht an letzter Stelle kein Escape, sollte aber.
Linkback: https://www.modified-shop.org/forum/index.php?topic=23774.0