CodeIgniter $ this-> input-> get()不起作用

时间:2012-12-26 22:13:24

标签: php codeigniter

我不确定为什么这不起作用。我在配置文件中有allow_get_array = TRUE。这就是我要做的......

这是用户从电子邮件中点击的链接

http://www.site.com/confirm?code=f8c53b1578f7c05471d087f18b343af0c3a638

confirm.php控制器:

$code = $this->input->get('code');

也尝试了

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

有什么想法吗?

4 个答案:

答案 0 :(得分:8)

config.php更改以下内容:

$config['uri_protocol'] = 'AUTO';
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
$config['enable_query_strings'] = FALSE;

要:

$config['uri_protocol'] = 'REQUEST_URI';
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-?';
$config['enable_query_strings'] = TRUE;

您可以更改URI以使用http://www.site.com/confirm/code/f8c53b1578f7c05471d087f18b343af0c3a638之类的细分,而不是弄乱查询字符串。要访问代码段,您可以使用$this->uri->segment(3);。我个人更喜欢这种方式使用查询字符串。见URI Class

答案 1 :(得分:5)

我这样做了,无需更改配置文件即可运行:

//put some vars back into $_GET.
parse_str(substr(strrchr($_SERVER['REQUEST_URI'], "?"), 1), $_GET);

// grab values as you would from an ordinary $_GET superglobal array associative index.
$code = $_GET['code']; 

答案 2 :(得分:3)

使用此:

$code = isset($_REQUEST['code']) ? $_REQUEST['code'] : NULL;

修改

在PHP> = 7.0中,您可以这样做:

$code = $_REQUEST['code'] ?? NULL;

答案 3 :(得分:0)

你可以试试吗

http://www.site.com/confirm/?code=f8c53b1578f7c05471d087f18b343af0c3a638

而不是

http://www.site.com/confirm?code=f8c53b1578f7c05471d087f18b343af0c3a638

没有任何配置或者请编辑