Changeset 654 for trunk/lib/App.inc.php
- Timestamp:
- Jan 24, 2019 7:13:52 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/lib/App.inc.php
r630 r654 368 368 mb_language('en'); 369 369 break; 370 } 371 372 // If the 'timezone' parameter is not set, check for a tz cookie. 373 if (!$this->getParam('timezone') && isset($_COOKIE['tz']) && '' != $_COOKIE['tz']) { 374 if (preg_match('![A-Z]{3,}|\w+/\w+!', $_COOKIE['tz'])) { 375 // Valid: tz cookie has a timezone name, like "UTC" or "America/Mexico_City". 376 $this->setParam(array('timezone' => $_COOKIE['tz'])); 377 } else if (is_numeric($_COOKIE['tz']) && $_COOKIE['tz'] > -12 && $_COOKIE['tz'] < 14) { // https://en.wikipedia.org/wiki/List_of_UTC_time_offsets#UTC+14:00,_M%E2%80%A0 378 // tz cookie has a timezone offset, like "-6" (assume UTC). 379 $tz = timezone_name_from_abbr('', $_COOKIE['tz'] * 3600, 0); 380 if ($tz) { 381 // Valid. 382 $this->setParam(array('timezone' => $tz)); 383 } else { 384 $this->logMsg(sprintf('Failed to convert UTC offset to timezone: %s', $_COOKIE['tz']), LOG_NOTICE, __FILE__, __LINE__); 385 } 386 } else { 387 $this->logMsg(sprintf('Invalid timezone cookie value: %s', $_COOKIE['tz']), LOG_NOTICE, __FILE__, __LINE__); 388 } 389 } 390 if ($this->getParam('timezone')) { 391 // Set timezone of the user. 392 if (date_default_timezone_set($this->getParam('timezone'))) { 393 $this->logMsg(sprintf('Using timezone: %s', $this->getParam('timezone')), LOG_DEBUG, __FILE__, __LINE__); 394 } else { 395 // Failed: unset the timezone parameter so it isn't used to set the database timezone. 396 $this->setParam(array('timezone' => null)); 397 $this->logMsg(sprintf('Failed to use timezone: %s', $this->getParam('timezone')), LOG_NOTICE, __FILE__, __LINE__); 398 } 370 399 } 371 400
Note: See TracChangeset
for help on using the changeset viewer.