2012-01-25 68 views
1

我想要在我的瀏覽器中看到我在瀏覽器中看到的URL,但是問題在於它使用Ajax URL更改了URL。codeigniter在ajax之後獲取URL

前。

我是在domain.com/user/username

和我通話中domain.com/posts/submit

當我回聲$ _ SERVER [「REQUEST_URI」]職位控制器上的AJAX URL中提交功能,它會顯示第二URL和不是第一個...我怎麼能保證和獲得第一個內部的Ajax功能,其100%有效,並沒有被用戶更改,以防止任何不良行爲?

感謝

回答

0

我用JavaScript來它,它似乎工作...希望不要在未來的任何問題,它...

PS:我不明白爲什麼我的其他的答案被刪除。無論如何,這就是答案。

0

HTTP_REFERER,但我不知道這是否適用於JavaScript的請求。另一個問題是:它不適用於所有瀏覽器。

你可以嘗試以下方法:

1)作爲當前URL保存有令牌的用戶訪問domain.com/user/username - 比方說5299sQA332 - 到數據庫中,並通過PHP提供的Javascript

令牌

2)AJAX請求將通過POST

3)需要控制在你的Ajax控制器的其他變量一起發送該令牌您搜索數據庫中給定的令牌5299sQA332有你有你的第一個網址,你可以相當肯定,它沒有被manupulated

:)

0

如果我理解正確的話,你要確保Ajax調用從它的頁面來應該在?在這種情況下,只需傳遞一個令牌即可。

在控制器函數中設置會話中的令牌變量;

public function username() { 
    $this->session->set_userdata('ajax_token', time()); 
} 

然後在視圖中用js;

$.ajax({ 
    url: '/user/username', 
    type: 'post', 
    data: 'whatever=bob&token='+<?php echo $this->session->userdata('ajax_token'), 
    success: function(data) { 

    }, 
    error: function(data) { 

    } 
}); 

然後在你表單驗證,做的是定製的回調,以檢查它們是相同的。

0

你看過CodeIgniter的Input Class嗎?

$this->input->get('something', TRUE);