我正在从JInput中检索一个必须是整数的值。
$input = new JInput();
$post = $input->getArray($_POST);
$value= $input->$post['value'];
现在显然我不能使用is_int(),因为$_POST
使值成为字符串 - 通常用filter_input()解决。这让我有一个小问题 - 因为我想拒绝任何不是整数的东西 - 不要把它转换成整数。使用
$value=JFactory::getApplication()->input->get('value', '0', 'INT');
强制字符串为整数。 (例如,输入1.2将给出1等的$值)。所以我不知道如何实现这个过滤器。理想情况下,我想按照
的方式做点什么if(is_int($delete)) {
//Carry on processing data
} else {
//Stop function and display a JError
JLog::add("Value is not a integer", JLog::WARNING, 'jerror');
}
答案 0 :(得分:0)
为什么不使用:
$input = new JInput;
$value = $input->getInt('value');
答案 1 :(得分:0)
最后在check for integer or float values下的SO上找到了它。
使用的最终代码是:
$input = new JInput();
$post = $input->getArray($_POST);
$value= $input->$post['value'];
//checks value is numeric and if it is a int
if(is_numeric($value) && (int) $value == $value) {
//process data
} else {
JLog::add("Value is not a integer", JLog::WARNING, 'jerror');
}
答案 2 :(得分:0)
$input = new JInput;
$email = $input->get('email', '', 'post');
$time = $input->get('time', '', 'post');
$move = $input->get('move', '', 'post');
$idcat = $input->get('idcat', '', 'post');