我正面临这个问题。当我尝试在我的视图中访问我的test_product / import.php时,我会遇到这个问题。
遇到错误您请求的操作不是 允许的。
我的import.php位于/view/test_product/import.php中。我通过/view/test_product/all.php
中的all.php打开它以下是all.php的代码
<form id="submit_form" action="<?php echo site_url("Test_product/import");?>" method="post">
<p align="right"><button name="import" type="submit" class="btn btn-primary" id="submiting" data-loading-text="Adding ... <span class='fa fa-fw fa-spinner'></span>" form="submit_form">Import </button></p>
它们都位于同一目录/ view / test_product /下。这样做的目的是访问我的其他页面import.php。
答案 0 :(得分:1)
此错误与&#34; site_url&#34;无关。它与Codeigniter CSRF保护有关。 为了解决这个问题,您应该:
或
如果您不能使用form_open()或form_close(),则可以使用
获取CSRF令牌名称和值$这 - &GT;安全 - &GT; get_csrf_hash();
$这 - &GT;安全 - &GT; get_csrf_token_name();
并通过在表单中添加令牌作为隐藏输入字段手动发送它们。
<input type="hidden" name="<?php echo $this->security->get_csrf_token_name(); ?>" value="<?php echo $this->security->get_csrf_hash(); ?>">
或
答案 1 :(得分:1)
由于您说您的import.php在视图中,因此它被归类为视图文件。您无法直接从site_url访问视图文件。您需要创建一个控制器才能访问视图
application > controllers > test_product > Import.php
Controller for Import.php
<?php
class Import extends CI_Controller {
public function index() {
// Form submit info goes here.
$this->load->view('import_view');
}
}
然后你可以使用。
<form action="<?php echo base_url("test_product/import");?>" method="post">
表格Helper
表单验证Library
答案 2 :(得分:0)
你在双引号内使用双引号。
试试"<?php echo site_url('Test_product/import');?>"
如果没有加载url_helper .try
如果你想自动加载网址
file location :application/config/autoload.php
$autoload['helper'] = array('url');
如果想根据需要加载:
$this->load->helper('url');
建议自动加载url_helper会更好,因为我们到处都需要它。
如果您想访问css,js,image等资源,请使用base_url()
,否则使用site_url()
。