1
0
mirror of https://github.com/e107inc/e107.git synced 2025-10-11 04:54:26 +02:00
Commit Graph

5330 Commits

Author SHA1 Message Date
Cameron
3fd23555a8 Merge pull request #4077 from Deltik/fix-4076
Have e_date::strptime() use eShims::strptime()
2020-01-22 12:06:42 -08:00
Cameron
692cee83ca Make sure user_id is an integer. 2020-01-22 12:04:59 -08:00
Nick Liu
f23aec7395 Replaced e_date::strptime() with eShims::strptime()
- NEW: Added \e107\Shims\Internal\StrptimeTrait, which implements PHP internal function
       strptime(). On not-Windows, the built-in function is called. If that function fails
       or if the operating system is Windows, the alternative pure PHP implementation is
       attempted. The first successful call is returned, or false if none are successful.
- MOD: Deprecated e_date::strptime() in favor of eShims::strptime()
- FIX: License misatributed for e_date::strptime() (now eShims::strptime()). The library
       used was public domain, not CC BY-NC-SA 2.0 FR by Lionel Sauron.
- MOD: Removed STRPTIME_COMPAT constant now that eShims::strptime() exists
- MOD: Removed support for calling e_date::strptime() with:
       - a localized full month name
       - a localized abbreviated month name
       - AM or PM
       - am or pm
       because these features were only implemented in Windows mode (STRPTIME_COMPAT).
- MOD: php_compatibility_handler.php now defines global strptime() using the
       eShims::strptime() implementation
- NEW: Test all(?) the possibilities of eShims::strptime()
2020-01-22 09:07:27 +01:00
Nick Liu
f93ab61372 Moved readfile() shim to its own trait 2020-01-22 00:40:26 +01:00
Cameron
e1e8a8b627 Added 'base64' option to allow for embedded image src. (useful when including avatars in email signatures)
Added test for toAvatar() method.
Cleaned up & when found in URL by getRemoteContent()
2020-01-19 15:35:36 -08:00
Cameron
0b26a97217 Revert "Removed useless STRPTIME_COMPAT constant"
This reverts commit ce510159a9.

Added check for 'tm_hour' key.
2020-01-19 12:35:02 -08:00
Cameron
1d2add821e Fixes #3943 Allow semi-colon in URL queries. 2020-01-19 12:21:13 -08:00
Cameron
09e3e32ca9 Warning removal. Define e_PAGE when e_url.php is active. 2020-01-19 11:44:30 -08:00
Nick Liu
8b354adf44 Don't spam database server with connections
- MOD: Silently ignore failures to e_db_mysql::close(); if it's failing, it's probably already closed
- FIX: Close the PDO or mysqli connection after each e_db_abstractTest test
- MOD: Changed class2.php's $sql variable to be hinted as an e_db instead of e_db_mysql
2020-01-19 14:33:11 +01:00
Nick Liu
8c528de191 e_db_mysql: Replaced mysql with mysqli
Finally no longer using the mysql_* functions removed in PHP 7.0
2020-01-19 13:33:52 +01:00
Nick Liu
4a26ac5fd7 Removed unused USE_PERSISTANT_DB constant 2020-01-19 12:57:39 +01:00
Nick Liu
c78976750c Removed PDO from e_db_mysql
e_db_mysql has divorced e_db_pdo. They are now independently functioning implementations of e_db.
2020-01-19 12:52:22 +01:00
Nick Liu
72d3f07410 PHP 5.6 fixes for e_db_mysql
- FIX: Don't redefine MYSQL_* constants in e_db_pdo_class.php
- FIX: e_db_mysql::rowCount() could try to use mysql_num_rows() to count rows of a non-resource
- FIX: e_db_mysql::delete() stores the number of deleted rows in e_db_mysql::$mySQLrows
- FIX: e_db_abstractTest::testDb_Query() was fetching in PDO mode but shouldn't have been
- FIX: Typos in e_db_abstractTest::testDelete()
- MOD: Moved PDO-exclusive testBackup() from e_db_abstractTest to e_db_pdoTest
- FIX: e_db_mysqlTest now works in PHP 5.6 if the main e_db instance was in PDO mode but the test
       class initializes in legacy mode
- MOD: e_db_mysqlTest now asserts that PDO mode is not in use
- FIX: e_db_mysqlTest::testGetServerInfo() should now actually get a version number
- FIX: e_db_mysqlTest::testGetLastErrorNumber() has a different error code compared to PDO
- FIX: e_db_mysqlTest::testEscape() should actually get something from mysql_real_escape_string()
2020-01-19 12:30:23 +01:00
Nick Liu
970f65b705 Null check for optional query string in e107::url() 2020-01-18 19:20:48 +01:00
Nick Liu
52116adc89 Silence debug prints clearly not meant for CLI
- FIX: e_array::unserialize() HTML vomit in CLI mode
- FIX: e107_debug_shutdown() HTML vomit because $error_handler was not global
2020-01-18 18:57:43 +01:00
Nick Liu
be8f2bbeb6 Fixed PHP 7.3 warnings
- FIX: Silenced compact() in e107Test::testInitCore()
- FIX: Null check in e_db_pdo::makeTableDef()
- FIX: Null check in e_db_mysql::makeTableDef()
- FIX: userlogin::login() had this warning on line 148:
       "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"?
2020-01-18 18:52:20 +01:00
Nick Liu
524229ba0b Fixed a bunch of PHP 7.4 syntax errors
- FIX: Removed pointless (and invalid) destructor in LinkedIn::__destruct()
- FIX: All files that trigger this deprecation notice in PHP 7.4:
       "Array and string offset access syntax with curly braces is deprecated"
2020-01-18 18:26:35 +01:00
Nick Liu
d1bdfb8546 Type checks and corrections for e_parse::thumbSrcSet() 2020-01-18 16:35:21 +01:00
Nick Liu
a1560b1989 Strict fixes for e_tree_model::flattenTree()
- FIX: Null check during child recursion of e_tree_model::flattenTree()
- FIX: TreeModelTest::testTreeParentsAreAssignedCorrectly() apparently never worked until now because the wrong index was used
2020-01-18 16:35:20 +01:00
Nick Liu
d6eafdc3fc Null check for e_user_model::isBot() 2020-01-18 16:35:19 +01:00
Nick Liu
f56bf44b98 Ignore redefines of EUF_* constants in e107_user_extended 2020-01-18 16:35:19 +01:00
Nick Liu
cf8dc0b909 Null coalescing for e_theme constructor 2020-01-18 16:35:19 +01:00
Nick Liu
f5f145485a Eliminated notice failures in e107Test
- FIX: e107::getTemplate() could be run without the necessary plugin LANs
- FIX: e107Test::testGetInstance() included e107_config.php too many times
- FIX: Empty check in e107Test::testGetTemplate()
2020-01-18 16:35:19 +01:00
Nick Liu
91660a2c32 Test isolation fixes for e_db_abstractTest
Also needed a null check in e_db_pdo::db_Query()
2020-01-18 16:35:18 +01:00
Nick Liu
fc6b81fdd4 Fix undefined constant by importing LAN in e_marketplace
Apparently e_marketplace depends on the admin area theme LAN
2020-01-18 16:35:17 +01:00
Nick Liu
622be85140 Type checks involving e_formTest
- MOD: e107::getTemplate() now accepts blank strings for the plugin name to mean
       that a core template should be loaded
- FIX: e_form::progressBar() now supports input values that already have % at the end
- FIX: Null check for $options['list'] in e_form::progressBar()
- NEW: Test rounding in e_formTest::testProgressBar()
2020-01-18 16:35:17 +01:00
Nick Liu
15de2e233b Null check for e_file::file_size_decode() 2020-01-18 16:35:17 +01:00
Nick Liu
d2d0105378 Null check for UserHandler::userClassUpdate() 2020-01-18 16:35:16 +01:00
Nick Liu
1d72d48a35 Type checks for db_verify::prepareResults() 2020-01-18 11:38:36 +01:00
Nick Liu
ce510159a9 Removed useless STRPTIME_COMPAT constant 2020-01-18 11:05:09 +01:00
Nick Liu
24fe5c80ac Updated pclzip.lib.php to v2.8.4 to fix math error
Also suppress mkdir() error in e_file::unzipGithubArchive()
2020-01-18 11:05:09 +01:00
Nick Liu
82499f70a9 Debug variable scope fix in e107plugin::XmlTables() 2020-01-18 11:05:08 +01:00
Nick Liu
1561992815 Removed unused variable from e107plugin::XmlAdminLinks()
Was causing an undefined index error
2020-01-18 11:05:08 +01:00
Nick Liu
98911f0b8e Guard type errors in e_db::insert() implementations 2020-01-18 11:05:08 +01:00
Nick Liu
b2bd6763de Null checks for e107TinyMceParserTest
- FIX: Do not redefine e_ADMIN_AREA in parser.php
- FIX: Null checks for e107TinyMceParser
- FIX: Array type check for e_bbcode::imgToBBcode()
- FIX: Optional query string in e_parse::thumbUrlDecode()
- FIX: Don't redefine TINYMCE_UNIT_TEST
2020-01-18 11:05:08 +01:00
Nick Liu
c604b3019c Fixed type check in e_form::option_multi() 2020-01-18 11:05:07 +01:00
Nick Liu
8e0b047a73 array_diff_recursive() type check for recursion 2020-01-18 11:05:07 +01:00
Nick Liu
62a547aed2 Fixed E_NOTICE in plugin install/uninstall process
- FIX: e107::coreLan() now loads the lan_admin.php file if the $admin argument is true
- FIX: Variable scope of $eplug_folder in e107plugin::uninstall()
- FIX: isset() check order in pluginsTest::makePluginReport()
- FIX: class2.php: Missing ADMINPERMS constant in CLI mode
2020-01-17 17:11:26 +01:00
Nick Liu
ef34ef7ec8 Removed obsolete ALLOW_AUTO_FIELD_DEFS constant 2020-01-17 15:54:56 +01:00
Nick Liu
4321c1b944 Null coalescing for $_SERVER keys in session_handler.php
Resolves CLI-invoked E_NOTICE in:
* e_session::getValidateData()
* e_core_session::challenge()
2020-01-17 15:54:12 +01:00
Nick Liu
6fe4bf16be Null coalescing for $_SERVER keys in online_class.php
Resolves CLI-invoked E_NOTICE in:
* e_online::goOnline()
2020-01-17 15:46:15 +01:00
Nick Liu
a49b532519 Stop stepping on E107_DBG_* constants in tests
\Helper\Unit::_beforeSuite() now sets E107_DEBUG_LEVEL so that
debug_handler.php sets the debug mode.

Also fixed E_NOTICE if E107_DEBUG_LEVEL is set beforehand
2020-01-17 15:42:57 +01:00
Nick Liu
bcba1e065f Null coalescing for $_SERVER keys in iphandler_class.php
Resolves CLI-invoked E_NOTICE in:
* eIPHandler::__construct()
* eIPHandler::getCurrentIP()

Also resolves possible blank eIPHandler::$serverIP
2020-01-17 15:11:45 +01:00
Nick Liu
c232613e44 Fix mkdir() failure in e107::_init() if parent not exists 2020-01-17 15:10:18 +01:00
Nick Liu
be36462fe6 Null coalescing for $_SERVER keys in e107_class.php
Removes CLI-invoked E_NOTICE in:
* e107::prepare_request()
* e107::set_constants()
* e107::set_urls()
2020-01-17 15:04:29 +01:00
Nick Liu
34047a2db3 Prevent HTML code injection in e107::url()
Fixes: #4054

This is a better fix for #4054. HTML code injection can no longer occur in URLs generated by
e107::url() thanks to htmlspecialchars(). The previous implementation only addressed:

    & => &

Now, quotation marks and alligator brackets are also escaped, so:

    <a href=""></html>"></a>

is now rendered as:

    <a href="&quot;&gt;&lt;/html&gt;"></a>
2020-01-14 23:56:19 +01:00
Nick Liu
82b2da4c36 Better documentation for e107::url()
Clarifies that the output format of e107::url() is like htmlspecialchars()
2020-01-14 23:56:19 +01:00
Cameron
ac47858941 PHP Notice Fix. 2020-01-14 14:44:29 -08:00
Nick Liu
4893ea7c67 Fix bad reformatting of e107::url() 2020-01-13 01:14:22 +01:00
Nick Liu
e62422d63a Old HTML ampersand strict compatibility
- FIX: e107::url() now puts "&amp;" in the query string instead of "&" for compliance with the older,
       looser definition of ambiguous ampersands in the HTML specification.
       Fixes: #4054
- FIX: Typo in comment
- FIX: Clear the core/e107/addons/e_url registry (cache) because if a plugin is installed after that
       cache is initialized, the cache is not updated anymore. The plugin's e_url is therefore not
       loaded, so SEF URLs won't be generated for that plugin until the cache is regenerated.
- NEW: Test for #4054
- FIX: e_pluginTest::testGetFields() expects the initial condition of the "forum" plugin to be
       uninstalled.
2020-01-13 00:54:50 +01:00