codeigniter允许url中的字符

时间:2013-03-24 08:54:26

标签: url codeigniter-2

使用codeigniter我有问题在后端传递变量,如

http://localhost:4949/admin/delete_post/6/?action=delete

生成The URI you submitted has disallowed characters.

我知道这个问题可以从config.php $config['permitted_uri_chars']得到纠正,但我怎么能排除过滤后端并允许这种结构并保持前端完整。

2 个答案:

答案 0 :(得分:0)

与&符号(&)

一起使用
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_+&-';

它可以解决您的问题。

详细说明是here

答案 1 :(得分:0)

Codeigniter中不需要这种格式化。虽然可以启用查询字符串,但在我看来使用它们会违背codeigniters处理事物的方式。您可以通过uri从视图中传递变量。

http://yourdomain_baseurl/controller/controller_function/var1/var2/var3

我建议做以下事情:

在这样的网址中发送变量:

http://yourdomain_baseurl/admin/post_action/id/action

在“管理员”控制器中,您可以创建以下内容:

function post_action($id, $action){

    switch ($action) {
        case "delete":
            //do something here with your post with id $id
            break;
        case "update":
            //do something here with your post with id $id
            break;
        case "create":
            //do something here with your post with id $id
            break;
    }

}

或者如果你想为每个Post动作创建一个单独的函数:

http://yourdomain_baseurl/admin/post_delete/id
http://yourdomain_baseurl/admin/post_edit/id

使用管理控制器中的以下功能

function post_delete($id){
    //Delete Archive the post with $id here!
}

function post_edit($id){
    //edit the post with $id here!
}

由于大多数用户输入来自表单,您可以使用$ _POST数据获取用户输入。有一个有用的课程可以帮助你:

 $this->input->post('some_data');

我建议阅读codeigniter附带的文档并阅读以下内容:

URL的 http://ellislab.com/codeigniter/user-guide/general/urls.html

网址 http://ellislab.com/codeigniter/user-guide/general/routing.html