[CON-405] Plugin Frontendusers -> Uhrzeit
[CON-405] Plugin Frontendusers -> Uhrzeit
Ich habe ein komisches Verhalten entdeckt (Version 4.8.15) und frage hier nach ob das jemand bestätigen kann.
Man gibt im Backend einem Frontendbenutzer z.B. folgendes in "Gültig von" oder "Gültig bis" ein:
- 2011-06-16 23:59:59 oder 2011-12-31 23:59:59
Sendet man das Formular ab, wird gespeichert und das eingegebene Datum inkl. Uhrzeit wird angezeigt
Nun ruft man den Benutzer neu auf und stellt fest, dass man dieses angezeigt bekommt (steht so auch direkt nach dem Speichern in der DB!):
=> 2011-06-16 23:03:00 bzw. 2011-12-31 23:03:00
a.) Kann das jemand bestätigen?
b.) Hat jemand eine Idee woran das liegen kann, ich steh auf dem Schlauch
Man gibt im Backend einem Frontendbenutzer z.B. folgendes in "Gültig von" oder "Gültig bis" ein:
- 2011-06-16 23:59:59 oder 2011-12-31 23:59:59
Sendet man das Formular ab, wird gespeichert und das eingegebene Datum inkl. Uhrzeit wird angezeigt
Nun ruft man den Benutzer neu auf und stellt fest, dass man dieses angezeigt bekommt (steht so auch direkt nach dem Speichern in der DB!):
=> 2011-06-16 23:03:00 bzw. 2011-12-31 23:03:00
a.) Kann das jemand bestätigen?
b.) Hat jemand eine Idee woran das liegen kann, ich steh auf dem Schlauch
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)
-
- Beiträge: 3626
- Registriert: Di 12. Okt 2004, 20:00
- Wohnort: Voerde (Niederrhein)
- Kontaktdaten:
Re: Plugin Frontendusers -> Uhrzeit
Verschoben nach Bugs. Das ist nachvollziehbar und auch für mich nicht direkt erkennbar, wo das hakt.
Der Plugin-Code selbst ist ja übersichtlich, der FE-User-Plugin-Aufruf und das Speichern durch die FE-User-Klasse inkl GenericDB hat mir da auch erstmal nichts erhellendes gebracht.
Der Plugin-Code selbst ist ja übersichtlich, der FE-User-Plugin-Aufruf und das Speichern durch die FE-User-Klasse inkl GenericDB hat mir da auch erstmal nichts erhellendes gebracht.
-
- Beiträge: 4255
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Plugin Frontendusers -> Uhrzeit
Kann ich erstmal nicht nachvollziehen. Könntet ihr bitte mal Angaben zu PHP- und MySQL-Versionen machen bei denen der Fehler Auftritt.
Und ist das bei der Neuanlage oder beim Bearbeiten des Benutzers?
Gruß aus Franken
Ortwin
Und ist das bei der Neuanlage oder beim Bearbeiten des Benutzers?
Gruß aus Franken
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
-
- Beiträge: 3626
- Registriert: Di 12. Okt 2004, 20:00
- Wohnort: Voerde (Niederrhein)
- Kontaktdaten:
Re: Plugin Frontendusers -> Uhrzeit
Bei mir ist das eine 4.8.14 auf MySQL 5.0.67, aufgetreten bei Bearbeitung eines Nutzers.
-
- Beiträge: 4255
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Plugin Frontendusers -> Uhrzeit
Also bei mir sind das 2 Installationen ohne Beanstandung.
Gruß aus Franken
Ortwin
undDatenbankserver-Version 5.1.41
Installierte PHP-Version 5.3.1
Bei Beiden kann ich den Fehler nicht nachvollziehen. Ich habe die Datumsangaben von Karsten per Copy&Paste eingefügt und sie bleiben nach dem Speichern wie sie waren.Datenbankserver-Version 5.1.33
Installierte PHP-Version 5.2.9
Gruß aus Franken
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
-
- Beiträge: 3626
- Registriert: Di 12. Okt 2004, 20:00
- Wohnort: Voerde (Niederrhein)
- Kontaktdaten:
Re: Plugin Frontendusers -> Uhrzeit
Ich habe es gerade auch nochmal in einer älteren Installation (4.8.10) getestet. Dort ist das auch nachvollziehbar (MySQL 5.1.41, PHP 5.3.2).
@Ortwin: und wenn du den Nutzer danach nochmal aufrufst steht das da wirklich noch richtig?
@Ortwin: und wenn du den Nutzer danach nochmal aufrufst steht das da wirklich noch richtig?
-
- Beiträge: 4255
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Plugin Frontendusers -> Uhrzeit
@Ingo: Dann zeigt's hier auch den Fehler.
Ich schau mir das mal ein wenig genauer an.
Gruß aus Franken
Ortwin
Ich schau mir das mal ein wenig genauer an.
Gruß aus Franken
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
-
- Beiträge: 4255
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Plugin Frontendusers -> Uhrzeit
Könntet Ihr mal bitte in den Plugins jeweils die store-Funktion ändern. Dann sollte es funktionieren.
Zur Info:
Der 3. Parameter schaltet den festeingebauten _inFilter der GenericDB ab. Eventuell sollte man die Plugins noch mit einer Validitätsprüfung für DATE bzw. DATETIME versehen. Könnte man auch zentral in die Security-Klasse machen.
Gruß aus Franken
Ortwin
Code: Alles auswählen
function frontendusers_valid_from_store ($variables)
{
global $feuser;
$feuser->set("valid_from", $variables["valid_from"], false);
}
Code: Alles auswählen
function frontendusers_valid_to_store ($variables)
{
global $feuser;
$feuser->set("valid_to", $variables["valid_to"], false);
}
Der 3. Parameter schaltet den festeingebauten _inFilter der GenericDB ab. Eventuell sollte man die Plugins noch mit einer Validitätsprüfung für DATE bzw. DATETIME versehen. Könnte man auch zentral in die Security-Klasse machen.
Gruß aus Franken
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Re: Plugin Frontendusers -> Uhrzeit
Lösung bestätigt, funktioniert
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)
-
- Beiträge: 4255
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: [CON-405] Plugin Frontendusers -> Uhrzeit
Soderle...
Nun hab ich die Lösung mal etwas ausgearbeitet und mit einer zusätzlichen Validitätsprüfung der Eingaben versehen. Dabei sind dann gleich mal noch 2 Methoden (Contenido_Security::isMySQLDate && Contenido_Security::isMySQLDateTime)für die Contenido_Security-Klasse entstanden.
Vielleicht könnte das ja mal Jemand so Einbauen und Testen, wenn's funktioniert kann es dann noch in den Core für's nächste Release.
!Achtung!
Es werden Änderungen am Core vorgenommen, sollten diese Änderungen nicht ins SVN einfliessen so gehen sie bei einem späteren Update verloren. Achja, und für Schäden und... aber das kennt ja Jeder.
Also, folgende Änderungen bzw. Ergänzungen vornehmen.
Ortwin
Nun hab ich die Lösung mal etwas ausgearbeitet und mit einer zusätzlichen Validitätsprüfung der Eingaben versehen. Dabei sind dann gleich mal noch 2 Methoden (Contenido_Security::isMySQLDate && Contenido_Security::isMySQLDateTime)für die Contenido_Security-Klasse entstanden.
Vielleicht könnte das ja mal Jemand so Einbauen und Testen, wenn's funktioniert kann es dann noch in den Core für's nächste Release.
!Achtung!
Es werden Änderungen am Core vorgenommen, sollten diese Änderungen nicht ins SVN einfliessen so gehen sie bei einem späteren Update verloren. Achja, und für Schäden und... aber das kennt ja Jeder.
Also, folgende Änderungen bzw. Ergänzungen vornehmen.
- In der Security-Klasse (contenido/classes/class.security.php) hinter der Methode isString() folgenden Code einfügen
Code: Alles auswählen
/** * Check: Is the variable formatted as MySQL DATE 'YYYY-MM-DD' * @static * * @author Ortwin Pinke * @since Contenido 4.8.16 * * @param string $sVar given date/string * @param boolean $bCheckValid additional use of checkdate for validation * @return boolean true|false */ public static function isMySQLDate($sVar, $bCheckValid = false) { $sVar = trim($sVar); $bFormatOk = preg_match("/^\d{4}-\d{2}-\d{2}$/", $sVar); if($bCheckValid && $bFormatOk) { $aDateParts = explode("-", $sVar); return checkdate($aDateParts[1], $aDateParts[2], $aDateParts[0]); } elseif($bFormatOk) { return true; } return false; } /** * Check: Is the variable formatted as MySQL DATETIME 'YYYY-MM-DD HH:MM:SS' * @static * * @author Ortwin Pinke * @since Contenido 4.8.16 * * @param string $Var given datetime/string * @param boolean $bCheckValid additional use of checkdate for validation * @return boolean true|false */ public static function isMySQLDateTime($sVar, $bCheckValid = false) { $sVar = trim($sVar); $bFormatOk = preg_match("/^\d{4}-\d{2}-\d{2} [0-2][0-3]:[0-5][0-9]:[0-5][0-9]$/", $sVar); if($bCheckValid && $bFormatOk) { $aDateTimeParts = explode(" ", $sVar); $aDateParts = explode("-", $aDateTimeParts[0]); return checkdate($aDateParts[1], $aDateParts[2], $aDateParts[0]); } elseif($bFormatOk) { return true; } return false; }
- Im FEUser-Plugin valid_from (contenido/plugins/frontendusers/valid_from/valid_from.php) die Funktion frontendusers_valid_from_store() durch folgende ersetzen
Code: Alles auswählen
/** * check and store valid_from date/datetime * * @global FrontendUser $feuser * @param array $variables */ function frontendusers_valid_from_store ($variables) { global $feuser; if(Contenido_Security::isMySQLDate($variables["valid_from"], true) || Contenido_Security::isMySQLDateTime($variables["valid_from"], true) || empty($variables["valid_from"]) || $variables["valid_from"] == "0000-00-00") { $feuser->set("valid_from", $variables["valid_from"], false); } }
- Im FEUser-Plugin valid_to (contenido/plugins/frontendusers/valid_to/valid_to.php) die Funktion frontendusers_valid_to_store() durch folgende ersetzen
Code: Alles auswählen
/** * check and store valid_to date/datetime * * @global FrontendUser $feuser * @param array $variables */ function frontendusers_valid_to_store ($variables) { global $feuser; if(Contenido_Security::isMySQLDate($variables["valid_to"], true) || Contenido_Security::isMySQLDateTime($variables["valid_to"], true) || empty($variables["valid_to"]) || $variables["valid_to"] == "0000-00-00") { $feuser->set("valid_to", $variables["valid_to"], false); } }
- Fertisch
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog