使用JInput过滤整数

时间:2013-01-27 18:57:10

标签: php joomla joomla2.5 joomla3.0

我正在从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');
}

3 个答案:

答案 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');
相关问题