通过CodeIgniter中的URL传递参数

时间:2013-04-03 20:04:18

标签: codeigniter url encryption urlencode urldecode

我遇到了关于从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');

// echo anchor('encryption / ret_back /'.$ encrypted_url,'click me');     }

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将此字符串传递给另一个函数,然后使用{{1}在URL中的字符串中解码然后解码文本。但是当我运行它时,有时会出现解码后的文本,有时却不会出现。

有人可以告诉我这个的原因和解决方案吗?

我想在'忘记密码'模块中使用它。

1 个答案:

答案 0 :(得分:0)

这取决于您如何创建链接以及如何从网址检索数据。

无论如何,这些是获取网址数据的简单示例:

  1. get from $_GET[] (http://site.com/?q=hello+world) 在这种情况下,您可以使用echo $this->input->get('q',true);

  2. 获得参数q
  3. get data from uri segments (http://site.com/id/230) 在这种情况下,您可以通过echo $this->uri->segment(2);

  4. 获取ID值

    然后,如果网址中的数据存在,则系统无法获得该数据,因此请确保在打开网址时数据位于您的网址中。