因此,我正在做一些關於這個話題的研究,你會認爲會有答案,但沒有,或者我正在尋找錯誤的領域。htaccess和POST變量與Codeigniter的問題
問題
當提交表單我的帖子變量是空的。我通過正確的方式傳遞它們,表單將轉到需要的位置,並且變量和表單數據在標題中正確顯示並帶有值。我在表單助手自動加載配置,所以一切都是它應該如何。
我的形式揭幕戰看起來是這樣的:
<form action='/Forms/form_processor/' method='post' id='testForm'>
在我Forms
控制器看起來是這樣的:
define('BASEPATH') OR exit('No direct script access allowed');
class Forms extends CI_Controller{
public function form_processor(){
// get variables
$name = $this->input->post('name');
// ... do stuff with variable data
}
}
我還要指出,與使用htaccess的文件我的配置變量是:
$config['base_url'] = 'http://example.com/';
$config['index_page'] = ''; // this is to keep index.php out of the URL
可能的原因
當使用笨和坐在主頁,你得到這個網址:
http://example.com
這很好,直到你進入下一個頁面,你得到這個網址:
http://example.com/index.php/page
它看起來難看,所以對於美觀的目的,並保持一致性我創建了一個htaccess文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /example.com/
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 http://example.com/
</IfModule>
,然後通過在基本目錄中有這個htaccess文件我得到的URL看起來像這樣:
http://example.com/page
臨時修復和問題孤男寡女答案
有人指出,對我來說,因爲我$config['index_page']
變量爲null,這是問題源於的地方。所以我在表單的動作中添加了index.php
到我的url的開頭,並且它通過了。
不應該htaccess的重寫處理這個問題,並將其發送到它應該去的地方,我在表單的操作URL的index.php
與否?
其次,這將如何影響後變量?因爲當我提交表單時,它仍然會到達需要的位置,即使它們正確地通過標題發送,它仍然對所有變量顯示爲空。這是我最困惑的地方。
如果您需要更多信息,請讓我知道,但我們只是想弄清楚爲什麼會發生在這裏,這有點尷尬。先謝謝你!
你能否展示你上面提到的設置步驟的樣本? –
1.下載CI安裝文件,2.解壓到web根目錄,3.打開application/config/config.php,3.添加$ config ['base_url'],從$ config ['index_page']擦除index.php,在相同的文件中添加加密密鑰。 4.在index.php所在的目錄中創建.htaccess。 – cssBlaster21895
一旦我記得由於命名我的輸入名稱name =「name」而有問題,但不記得是什麼問題,現在我沒有這樣的問題 – cssBlaster21895