Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Maxx 31.07.2007 15:40 / 31.07.2007 15:49
того зачем вам это понадобилось.@main[] $func[$form:func] ^if(^func.match[[^^xy\d+*\/-]][]){ ^funcException[$.type[invalid data]$.comment[$func]] }{ $func[^func.match[x|y][ig]{1}] ^try{ $func(^process{^^eval($func)}) ^rem{ <--untaint здесь не нужен} ^oSql.void{INSERT INTO dataname (func) VALUES ('$form:dataname')} Добавлен набор "$form:dataname" }{ ^funcException[$exception] $exception.handled(true) } } @funcException[e] ^switch[$e.type]{ ^case[number.format;parser.runtime;parser.compile]{ $result[Ошибка в формуле, <pre>$e.comment</pre> функция должна состоять из: 'x', 'y', цифр и знаков '+', '-', '*', '/' ] } ^case[number.zerodivision]{ $result[Деление на ноль! <pre>$e.comment</pre> Есть попроще функции? лень лечить деление... ] } ^case[sql.execute]{ $result[Ошибка создания набора данных: <pre>$exception.comment</pre> ] } ^case[invalid data]{ $result[<br /> недопустимый символ в формуле: <pre>$e.comment</pre> <br /> ] } }чего вы добиваетесь вычислением формулы в итоге? что заменив переменные на 1 - он таки продолжает давать какой то результат?