使用codeigniter我有问题在后端传递变量,如
http://localhost:4949/admin/delete_post/6/?action=delete
生成The URI you submitted has disallowed characters.
我知道这个问题可以从config.php $config['permitted_uri_chars']
得到纠正,但我怎么能排除过滤后端并允许这种结构并保持前端完整。
答案 0 :(得分:0)
答案 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