Skip to content
This repository has been archived by the owner on Nov 3, 2023. It is now read-only.

Config->escape($varValue) und Werte > PHP_INT_MAX (z.b. Facebook AppId) Alle Versionen #5939

Closed
Undaare opened this issue Jun 27, 2013 · 1 comment
Labels
Milestone

Comments

@Undaare
Copy link

Undaare commented Jun 27, 2013

Erstellt man ein DCA mit DC_FILE, und darin ein Feld vom Typ text, werden lange Zahlenfolgen zwar richtig in der localconfig gespeichert, jedoch beim laden wird der Wert als Exponentialzahl (heißt die so?) angezeigt.
Beispiel:
Eingabe:
12345678901234567890
Ausgabe:
1.2345678901235E+19

Das Problem ist, dass nicht überprüft wird, ob der Wert > PHP_INT_MAX ist und in diesen Fall dann als string gespeichert wird.
Daher mein Vorschlag:

package/contao-3.0.1/system/modules/core/library/Contao/Config.php Zeile 00395
PHP-Code:
// vorher:
00395                 if (is_numeric($varValue) && !preg_match('/e|^00+/', $varValue))

// nachher:
00395                 if (is_numeric($varValue) && !preg_match('/e|^00+/', $varValue) && $varValue <= PHP_INT_MAX)
00396                 {
00397                         return $varValue;
00398                 }
.
.
.
00415                 $varValue = preg_replace('/[\n\r\t]+/', ' ', str_replace("'", "\\'", $varValue));
00416                 $varValue = "'" . preg_replace('/ {2,}/', ' ', $varValue) . "'";
00417 
00418                 return $varValue;
00419         } 

Greetz Frank

@leofeyer
Copy link
Member

Behoben in c3a260b.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants