| Новости | 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 - он таки продолжает давать какой то результат?