2013-04-03 170 views
-1

我遇到了有關從url傳遞參數的問題。我使用的功能有時會給出正確的結果,有時不會。在CodeIgniter中通過URL傳遞參數

這裏是我的控制器功能:

public function link_gen(){ 
    $text = "i have lost my password please help me"; 

    $encrypted_text = $this->encrypt->encode($text); 
    $encrypted_url = urlencode($encrypted_text); 
    echo $encrypted_url. br(); 

    echo br(). $this->retrive(urldecode($encrypted_url)); 

    echo anchor('encryption/ret_back?username='.$encrypted_url, 'click me'); 

//回聲錨(「加密/ ret_back /'.$ encrypted_url, '點擊我'); }

public function ret_back(){ 

// echo br()。 $這 - > retrive(urldecode($ STR));

  $user = $this->input->get('username'); 
    echo br(). $this->retrive(urldecode($user)); 

    echo $user. br(); 
    echo "hellooooo". br(); 
} 

爲了測試的緣故,我加密文本,然後使用urlencode()編碼它的URL,然後我通過使用URL這個字符串到另一個函數,然後使用urldecode()解碼的URL字符串中,然後進行解碼文本。但是當我運行這個時,有時解碼文本出現,有時它不。

有人可以告訴我這個的原因和解決方案嗎?

我想在'忘記密碼'模塊中使用它。

+0

你應該更好地記錄你的問題,你調試了發生了什麼?你如何從url中檢索數據? – sbaaaang 2013-04-03 20:06:40

回答

0

這取決於您如何創建鏈接以及如何從url檢索數據。

反正這些都是簡單的例子來獲取URL數據:

  1. get from $_GET[] (http://site.com/?q=hello+world)在這種情況下你得到echo $this->input->get('q',true);

  2. get data from uri segments (http://site.com/id/230) 帕拉姆●在這種情況下 您通過echo $this->uri->segment(2);

    得到的值id

然後,如果數據在url存在的系統不可能得到這個,所以當打開url時確保數據在你的url中。

+0

thak你爲你的回覆我真的很感激,請檢查我的代碼我編輯我的文章...請保留這篇文章,因爲它太... – 2013-04-04 03:46:22

+0

@SalmanAsif你忘了所需的部分**回聲br()。 $這 - > retrive(urldecode($ STR)); **該方法做了什麼?也許你的問題是從該方法返回的價值!? – sbaaaang 2013-04-04 07:20:46

+0

CI加密庫使用$ this-> encrypt-> decode(var) – 2015-07-31 17:30:05