2015-12-23 56 views
0

我正面臨着這個問題。當我嘗試在我的視圖中訪問我的test_product/import.php時,我會遇到這個問題。如何在codeigniter中使用sites_url

遇到錯誤您請求的操作不是允許的 。

我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> 

這是所有在相同目錄/查看/ test_product /代碼。這樣做的目的是訪問我的其他頁面import.php。

+0

你應該在你的控制器構造方法或調用您的觀點是這樣$這個 - >加載功能加載url_helper - >幫助( 'URL')。 –

+0

閱讀本文http://stackoverflow.com/questions/14623050/site-url-is-not-work-properly-in-codeigniter-framework –

+0

我有嘗試調用,但它仍然給出了相同的錯誤。 – user1032181

回答

1

既然你說你的import.php是在視圖中,那麼它被歸類爲一個視圖文件。您無法直接從site_url訪問視圖文件。您需要在創建一個控制器能夠訪問的觀點

application > controllers > test_product > Import.php 

控制器對於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"> 

How to use URL Helpers

形式Helper

表單驗證Library

+0

它的作品謝謝 – user1032181

0

您在雙引號內使用雙引號。
嘗試
"<?php echo site_url('Test_product/import');?>"

如果沒有加載url_helper。嘗試
如果要自動加載URL

file location :application/config/autoload.php 
$autoload['helper'] = array('url'); 

如果想每次需要加載:

$this->load->helper('url'); 

建議
這是更好地autoload url_helper,因爲我們在任何地方都需要它。 如果你想訪問資源,如CSS,JS,圖像,使用base_url(),否則,site_url()

+0

我嘗試把它放在我的控制器類中,但它不起作用 – user1032181

+0

我改變我的答案,檢查它 –

+0

同樣的問題。遇到錯誤 您請求的操作不被允許。 – user1032181

1

這個錯誤不是關於「site_url」。它與Codeigniter CSRF保護有關。 爲了解決它,你應該:

  • 使用,而不是使用純HTML創建表單的form_open()和form_close()輔助函數。當您使用助手功能時,「csrf token」將自動插入表單中作爲隱藏字段。

  • 如果您不能使用form_open()或form_close()你可以使用CSRF令牌名稱和值

    $這個 - >安全 - > get_csrf_hash( );

    $ this-> security-> get_csrf_token_name();

    並通過在表單中​​添加令牌作爲隱藏輸入字段來手動發送它們。

    <input type="hidden" name="<?php echo $this->security->get_csrf_token_name(); ?>" value="<?php echo $this->security->get_csrf_hash(); ?>">

  • 關掉CSRF保護,這是不推薦的。