update if logic to cover more situations

This commit is contained in:
mohrt
2001-06-15 14:10:12 +00:00
parent 282d2e5e42
commit 18220173ef
2 changed files with 10 additions and 4 deletions

View File

@@ -486,11 +486,14 @@ class Smarty_Compiler extends Smarty {
for ($i = 0; $i < count($tokens); $i++) {
if($this->security && $tokens[$i+1] == '(' && !in_array($tokens[$i],$this->security_settings["ALLOW_IF_FUNCS"])) {
if($this->security
&& $tokens[$i+1] == '('
&& !preg_match("|[^a-zA-Z_-]+|",$tokens[$i])
&& !in_array($tokens[$i],array('eq','ne','neq','lt','le','lte','gt','ge','gte','and','or','not','mod','is'))
&& !in_array($tokens[$i],$this->security_settings["ALLOW_IF_FUNCS"])) {
$this->_syntax_error("(secure mode) '".$tokens[$i]."' not allowed in if statement");
}
$token = &$tokens[$i];
switch ($token) {
case 'eq':

View File

@@ -486,11 +486,14 @@ class Smarty_Compiler extends Smarty {
for ($i = 0; $i < count($tokens); $i++) {
if($this->security && $tokens[$i+1] == '(' && !in_array($tokens[$i],$this->security_settings["ALLOW_IF_FUNCS"])) {
if($this->security
&& $tokens[$i+1] == '('
&& !preg_match("|[^a-zA-Z_-]+|",$tokens[$i])
&& !in_array($tokens[$i],array('eq','ne','neq','lt','le','lte','gt','ge','gte','and','or','not','mod','is'))
&& !in_array($tokens[$i],$this->security_settings["ALLOW_IF_FUNCS"])) {
$this->_syntax_error("(secure mode) '".$tokens[$i]."' not allowed in if statement");
}
$token = &$tokens[$i];
switch ($token) {
case 'eq':