【问题标题】:Codeigniter POST/GET variables and $this->input->postCodeigniter POST/GET 变量和 $this->input->post
【发布时间】:2014-09-13 08:13:54
【问题描述】:

我在 Codeigniter 中的 post 变量有问题,现在我已修复它,但我不确定这是否正常,换句话说,我真的很想知道为什么我只在托管服务器上遇到问题,不在本地。

问题: 我想要更安全的脚本,所以我将 $_POST/$_GET 替换为 $this->input->post 和 $this->input->get,如下例所示:

if(!empty($this->input->get('endDate'))){
   $data['datepicker'] = $this->input->get('thisDate');
}

这在我的本地主机上一切正常,但我认为这是错误的方式,因为当我部署到托管服务器时,我正在使用来自 validation engine 的 ajax 解析错误,我不能登录系统,一直得到ajax解析错误,并且不知何故发现每当我检查empty$this->input->post('var)或get是否相同时,都是错误的。

我检查了 Codeigniter 的输入类并发现 $this->input->post 返回的是真/假,所以我将脚本更改为如下格式:

if(!($this->input->get('endDate'))){
   $data['datepicker'] = $this->input->get('thisDate');
}

这很好用。 我仍然想知道 - 为什么代码在本地主机上工作,但它没有在服务器上或者检查 POST/GET 变量是否为空的最佳方法是什么。似乎我真的错过了一些东西。

谢谢。

【问题讨论】:

    标签: php ajax database codeigniter


    【解决方案1】:

    考虑到检查empty($this->post->get('var')) 将始终返回false,无论POST/GET 是否存在,所以它可能只是出于这个原因。 - 所以我不知道你为什么在不同的环境下会出错,但是第一个语句是错误的,就像写if(true)

    另外,我会检查输入是否有强烈的 false 断言,你永远不知道什么时候可能需要一个零作为输入,如果你习惯了这种做法,你可能会意外得到一个 false。

    【讨论】:

    • 将留下它在我本地的工作方式的谜团,感谢您确认第一部分是错误的。为了检查是否为空,我只在它真的安全时才使用它。
    猜你喜欢
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 2017-04-11
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    相关资源
    最近更新 更多