Opened 9 years ago
Closed 9 years ago
#1172 closed Bug/Fehler (fixed)
Grundsätzlich nur PHP Zeitfunktionen verwenden
| Reported by: | Ronald Parcinski | Owned by: | somebody |
|---|---|---|---|
| Priority: | normal | Milestone: | modified-shop-2.0.3.0 |
| Component: | Shop | Version: | 2.0.2.2 |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: |
Description
Hier wird der Vorschlag beschrieben:
Problem mit Passwort zurücksetzen Link.
https://www.modified-shop.org/forum/index.php?topic=35614.msg337166#msg337166
Ich habe den SQL-Befehl now() einfach mit PHP date() ersetzt!
Dies erscheint mir dir sinnvollste lösung da der Zeitstempel unten ja auch wieder per PHP mit der Systemzeit verglichen wird!
In: password_double_opt.php
suchen nach:
password_request_time = now()
ersetzen mit:
password_request_time = '".date('Y-m-d H:i:00')."'
Attachments (0)
Change History (5)
comment:1 by , 9 years ago
comment:2 by , 9 years ago
Problem ist doch MySQL Funktion now() und PHP Funktion date() wenn der Datenbankserver eine andere Zeit wie der PHP Server hat.
comment:3 by , 9 years ago
Statt now muss man natürlich utc_timestamp nutzen.
Im übrigen kann man auch now nutzen und ens SQL-Server alle Daten liefern lassen:
SELECT `password_request_time`, now() as currentservertime FROM `customers`
Beide Werte vergleichen und fertig.
comment:4 by , 9 years ago
Da für password_request_time nur die Zeitdifferenz ausschlaggebend ist, muss sich die Berechnung auf die gleiche Basis beziehen, egal welche das auch ist.
Den obigen vorgeschlagenen FIX für password_double_opt.php habe ich jetzt übernommen.

Das halte ich für falsch. Einzig richtig ist in meinen Augen ausschließlich mit UTC zu arbeiten. Hierfür eine zentrale Funktion z. B. in "xtc_datetime.inc.php" definieren und diese überall im Code nutzen. Die Datums/Zeitangaben für die Benutzeroberfläche kann man korrekt über ein Zeitzoneneinstellung (evtl. sogar Kundenabhängig) steuern.