代码点火器POST变量

有人知道为什么:

class Booking extends Controller {

    function booking()
    {
        parent::Controller();
    }

    function send_instant_to_paypal()
    {
        print_r($_POST);
        echo '<hr />';
        print_r($this->input->post());
        echo '<hr />';
        $id_booking = $this->input->post('id_booking');
        $title = $this->input->post('basket_description');
        $cost = ($this->input->post('fee_per_min') * $this->input->post('amount'));
        echo $id_booking;
        echo $title
        echo $cost
    }
}

将会在$ _POST中的回调函数中的变量,但不是$ this-> input-> post();?

我已经有$ this-> input-> post()在使用,并且在网站的其他地方的搜索页面上工作......但是在此页面上,它不工作..这是我的表单...

<form id="add_funds" action="' . site_url('booking/send_instant_to_paypal') . '" method="post">
<input type="text" name="amount" id="amount" value="" />
<input type="hidden" name="id_booking" id="id_booking" value="0" />
<input type="hidden" name="basket_description" id="basket_description" value="Adding Credit" />
<input type="hidden" name="fee_per_min" id="fee_per_min" value="' . $fee_per_min . '" />
<input type="submit" value="Add to basket" />
</form>

这是精神; - 任何人发现任何明显愚蠢的我失踪?


您最有可能启用了XSS或CSRF,并会禁止(在此猜测)PayPal将这些详细信息发回给您。

这是CodeIgniter的典型特征,并且有一些解决方法,比如为某些控制器排除CSRF(通过配置或挂钩)。

如果您提供关于POST更多细节,我可以清楚地回答一下。

编辑

可能是你正在调用$this->input->post()不正确? 我知道CI2.1添加了对$this->input->post()来返回完整的数组,但在此之前,您必须明确定义想要的ala的post变量:

$user = $this->input->post('username');


我解决了这个问题,排除了针对该特定方法的CSRF保护

你可以在application / config / config.php中添加这段代码

if(stripos($_SERVER["REQUEST_URI"],'/Booking/send_instant_to_paypal') === FALSE)
{
    $config['csrf_protection'] = TRUE;
}
else
{
    $config['csrf_protection'] = FALSE;
}

我现在唯一能想到的是,你可能没有加载表单助手,但我不确定它是否被用于此。 你可以在/config/autoload.php做到这一点

我例如有这样的:

$autoload['helper'] = array('url', 'form', 'html', 'site_helper', 'upload_helper');

你也可以在你的函数中加载它,如下所示:

function send_instant_to_paypal()
    {
        $this->load->helper('form');
        print_r($_POST);
        echo '<hr />';
        print_r($this->input->post());
        echo '<hr />';
        $id_booking = $this->input->post('id_booking');
        $title = $this->input->post('basket_description');
        $cost = ($this->input->post('fee_per_min') * $this->input->post('amount'));
        echo $id_booking;
        echo $title
        echo $cost
    }
链接地址: http://www.djcxy.com/p/74363.html

上一篇: Code igniter POST variables

下一篇: PHP header() redirect with POST variables