aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpatdenice <patdenice@piwigo.org>2008-11-30 12:53:43 +0000
committerpatdenice <patdenice@piwigo.org>2008-11-30 12:53:43 +0000
commitb66f527601e7e9e5aac4ac19c6109d808f1ef56e (patch)
treeae88f0d0d7208d87014684ea224cf34452b98c7f
parent0111f50e632ed12a6781ff9a23bdfbf99fe856f0 (diff)
merge -c2914 from trunk to branch 2.0.
- Bug in eval_syntax function in LocalFiles Editor function... Come back to previous function (svn 2588) git-svn-id: http://piwigo.org/svn/branches/2.0@2915 68402e56-0260-453c-a942-63ccdbb3a9ee
-rw-r--r--plugins/LocalFilesEditor/functions.inc.php17
1 files changed, 15 insertions, 2 deletions
diff --git a/plugins/LocalFilesEditor/functions.inc.php b/plugins/LocalFilesEditor/functions.inc.php
index 63162d5d4..97813dce0 100644
--- a/plugins/LocalFilesEditor/functions.inc.php
+++ b/plugins/LocalFilesEditor/functions.inc.php
@@ -30,9 +30,22 @@
function eval_syntax($code)
{
$code = str_replace(array('<?php', '?>'), '', $code);
- if (!@eval('return true;' . $code))
+ if (function_exists('token_get_all'))
{
- return false;
+ $b = 0;
+ foreach (token_get_all($code) as $token)
+ {
+ if ('{' == $token) ++$b;
+ else if ('}' == $token) --$b;
+ }
+ if ($b) return false;
+ else
+ {
+ ob_start();
+ $eval = eval('if(0){' . $code . '}');
+ ob_end_clean();
+ if ($eval === false) return false;
+ }
}
return '<?php' . $code . '?>';
}