HTTP_ACCEPT_LANGUAGE is still a problem in V 3.3.2.
Today when I searched Google for my new project, I found in the preview (and in the Google cache):
So it seems that Google (and who else?) does not always send a HTTP_ACCEPT_LANGUAGE header, but at least sometimes omits it, resulting in the error message above. So we cannot rely on its existance.
Line 23 of frontend.class.php tries to consider this problem in advance (before line 24), but fails:
To me this looks like a precedence problem. The "&&" precedes over the "||".
This results in grouping the last two conditions together, instead of the first two conditions.
See also https://www.php.net/manual/en/language.o...edence.php
In order to avoid this, parentheses should be used.
So the solution might be
Please let me know what you think about this.
Best regards,
Knobbles
Today when I searched Google for my new project, I found in the preview (and in the Google cache):
Code:
Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /mydomainroot/plugins/i18n_base/frontend.class.php on line 24
Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /mydomainroot/plugins/i18n_base/frontend.class.php on line 24
So it seems that Google (and who else?) does not always send a HTTP_ACCEPT_LANGUAGE header, but at least sometimes omits it, resulting in the error message above. So we cannot rely on its existance.
Line 23 of frontend.class.php tries to consider this problem in advance (before line 24), but fails:
PHP Code:
if (!defined('I18N_IGNORE_USER_LANGUAGE') || !I18N_IGNORE_USER_LANGUAGE && isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
To me this looks like a precedence problem. The "&&" precedes over the "||".
This results in grouping the last two conditions together, instead of the first two conditions.
See also https://www.php.net/manual/en/language.o...edence.php
In order to avoid this, parentheses should be used.
So the solution might be
PHP Code:
if ((!defined('I18N_IGNORE_USER_LANGUAGE') || !I18N_IGNORE_USER_LANGUAGE) && isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
Please let me know what you think about this.
Best regards,
Knobbles