Ticket #1141 (closed defect: fixed)
Undefined variable: acclang in dotclear-2.2/inc/clearbricks/common/lib.http.php on line 200
Reported by: | padawan | Owned by: | xave |
---|---|---|---|
Priority: | normal | Milestone: | 2.3 |
Component: | module:clearbricks | Version: | 2.2 |
Severity: | normal | Keywords: | |
Cc: |
Description
DC 2.2 génère les deux warnings suivants, le second lié au premier :
PHP Notice: Undefined variable: acclang in dotclear-2.2/inc/clearbricks/common/lib.http.php on line 200
PHP Warning: Invalid argument supplied for foreach() in dotclear-2.2/inc/prepend.php on line 272
La première erreur est dans la fonction suivante dans inc/clearbricks/common/lib.http.php :
public static function getAcceptLanguages() { $dlang = array(); if (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { $pattern = '/(?P<lang>[a-z]{2}(?:-[a-z]{2})?)(?:;q=(?P<priority>[.0-9]*))?/'; if (preg_match_all($pattern,$_SERVER['HTTP_ACCEPT_LANGUAGE'],$acclang) !== false) { foreach($acclang['priority'] as $i => $p) { if ($p == '') $acclang['priority'][$i]=1; } array_multisort($acclang['priority'], SORT_DESC,$acclang['lang']); } } return $acclang['lang']; }
La variable $acclang n'est pas définie dans la ligne suivante :
if (preg_match_all($pattern,$_SERVER['HTTP_ACCEPT_LANGUAGE'],$acclang) !== false)
Le retour de la fonction est donc erroné, ce qui provoque l'erreur qui suit à son appel ligne 272 de dotclear-2.2/inc/prepend.php :
$dlang = http::getAcceptLanguages(); foreach($dlang as $l)
Change History
Note: See
TracTickets for help on using
tickets.
Simple changement de nom de variable, corrigé sur mon fork sur Bitbucket : https://bitbucket.org/saymonz/clearbricks/changeset/80f765e731b7