不使用$ _GET参数

在使用CodeIgniter工作,看来$ _GET默认情况下禁用。 我不知道这是为什么。

很多时候,我想建立非常长的搜索查询。 因此,举例来说,我有一个表单,允许您通过N个不同领域的搜索数据库。 在代码点火器,网址,以显示我的搜索结果将是:

http://mysite.com/field1/field2/field3/.../fieldN-1/fieldN

因此,一个示例URL会

http://mysite.com/shopping/toys/educational/age6-8/page1/sortbypriceinascendingorder/

我特别不喜欢这一点,因为:

1)如果我想在以后的时间,使得我们有一些像添加更多的搜索参数:

http://mysite.com/shopping/toys/education/age6-8/page1/sortbypriceinascendingorder/boys-only/in-stock

我不喜欢我加入“男孩只”和“股票”在URL的网页/ sortby段的结束。 这感觉不对。

2)如果一个人没有使用什么“玩具”部分和“教育”段? 然后,URL看起来那种笨拙

http://mysite.com/shopping/all%5Fproducts/all%5Fcategories/age6-8/page1/sortbypriceinascendingorder/

不更有意义使用$ _GET参数搜索,因为这样的顺序放置查询字符串参数(字段=值)没有关系? 而忽略查询字符串参数自动的意思是“不选”。

--------------解决方案-------------

你也可以使用不同的分隔符的搜索参数,如+因为许多系统一样)。 这些都传递给单个控制器的路线,在那里你可以explode()的要求。 举例http://http://mysite.com/shopping/toys+education+age8+etc

首先,你可以,如果你想始终启用$ _GET变量。

此外,您还可以使用像PARAMS ../shopping/type:toys/cat:education/age:6-8/sort:price_asc然后分析它们在控制器代码:

function shopping() {
$args = func_get_args();
foreach ($args AS $arg) {
list($filter_name, $filter_value) = explode(':', $arg, 2);
if ($filter_name == 'cat') {
// set category filter to $filter_value (education)
} elseif ($filter_name == 'type') {
// set type filter to toys
}
// etc etc
}
}

他们为什么这样做的原因是,它与控制器,函数和参数的呼叫干扰。

CI使用URI字符串告诉“方案”做什么。 有一种模式,则可以启用,使这个:

www.example.com/controller/method/parameter

这个:

www.example.com/?c=controller&m=methods&p=parameter1&yourgetitem=yourgetvalue

不漂亮,虽然,但你肯定可以做任何你想用CI; 它只是需要一些调整。

它可以同时使用查询字符串和段笨,这里是如何:

在config.php文件集:

  • $配置['uri_protocol'] =“PATH_INFO”;
  • $配置['enable_query_strings'] = TRUE;

在.htaccess使用/后的index.php,而不是一个? 您的CI的规则:(。*)重写规则^ $的index.php / $ 1 [L]

分类:php 时间:2012-01-01 人气:0
本文关键词: PHP,笨,得到
分享到:

相关文章

  • 笨 - URI路径,跳绳段 2012-01-01

    我想跳过与代码点火器的URI的一部分. 我有以下的网址 /about /info /admin/users /admin/pages /admin/pages/edit/123 不过,我想搜索的类时,即默认的配置行为,这样可以跳过管理员: /admin[class]/pages[function]/edit[var]/123[var] 不过,我想它是这样工作的: /admin[skip]/pages[class]/edit[function]/123[var] 不幸的是,我不能刚开始我的应用程序

  • PHP 5.3笨的Gmail SMTP超时 2012-01-01

    我用gmail的smtp从我写的用笨没有问题,直到最近的网络应用程序发送电子邮件. 这是我的代码片段: $config['protocol'] = 'smtp'; $config['smtp_host'] = $this->smtp_host; $config['smtp_port'] = $this->smtp_port; $config['smtp_user'] = $this->smtp_username; $config['smtp_pass'] = $this->smtp

  • 笨与饼干登录? 2012-01-02

    我用笨与会话登录表单. 我设置会话在配置文件到期7200. 但是,7200秒后,从服务器日志中删除. 我的解决方案,我在我的数据库中创建表(ci_session)和会话日志此表. 我想记住我登录(1周以上). 我如何 ?

  • 2笨控制器Querys上的一个景观 2012-01-02

    你怎么把从同一个控制器有两个不同的功能输出到同一个视图(页)? 例如,我有一个函数去了"文章"分区,那我想中的"搁置"的div使用其他功能. (使用HTML 5的命名此地) 我已经去尽可能使用在(视图)实际的数据库查询放在一边格,它仍然只显示第1条的功能. 我已经改变了数据$('结果')变量分离变量没什么区别. 我显示的工作我必须做的文章DIV待办事项列表,然后显示在一旁div的完成待办事项的标题. 我想我提出的这个解释得一塌糊涂. 你会从不同的控制器使用函数? 这

  • 扩展笨反应堆模型 2012-01-03

    如何延长笨反应堆(2.0.2)型号较旧版本的所有你所要做的就是创建MY_Model类库文件夹中,但它似乎并没有工作. --------------解决方案------------- 刚刚解决了这个问题,我不得不作出内部应用程序/核心MY_Model类

  • 自动加载['帮手'] =阵列('URL'); 我如何通过这个网址加载像帮手笨的方法 2012-01-03

    在这个时候,我想建立一个MVC框架. 一切都很好,但现在我想添加其他功能(自动加载类,如笨). 在我autoload.php为例,我有: $autoload['helpers'] = array('url'); 我如何可以通过该加载URL类? --------------解决方案------------- 漂亮的瘦身,但概念是类似下面. 你可以看一下CI的自动加载方式,在它的/system/core/Loader.php文件. foreach($autoload['helpers'] as $h

  • 访问与笨多维数组 2012-01-03

    好吧,在我笨项目我传递一个多维数组我的看法. 我遇到的问题是访问数组中的数据. 我使用的print_r和后续代码var_dump看到阵列,它是被正确传递给视图,但我有困难的时候访问其中的数据! 我收到此错误信息,"试图访​​问非对象的参数". 有什么建议么?! 这里是控制器:profile.php <?php class Profile extends CI_Controller { public function __construct(){ parent::__constru

  • 笨:如何做一个选择(不同的字段名)MySQL查询 2012-01-04

    我想检索所有唯一值的计数的字段中. 例如,SQL: SELECT count(distinct accessid) FROM (`accesslog`) WHERE record = '123' 我怎样才能做这样的查询笨里面? 我知道我可以用$this->db->query()写我自己的SQL查询,但我有一个我想使用其他要求$this->db->where()的. 如果我用->query()虽然我写了整个查询自己. --------------解决方案------------

  • 笨新闻/视图不起作用,页404的 2012-01-04

    目前我正在学习用我的方式笨,我需要一些帮助教程查看新闻的一部分. 它显示了一个404页. 我的网站是Tristans.tk. 点击新闻,然后在标题之一. 这里是我的代码: 这是我的模型: class News_model extends CI_Model{ public function __construct(){ $this->load->database(); } public function get_news($ID=FALSE){ if($ID===FALSE){ $query=$

  • 使用gettext多语言支持,笨,最好的做法? 2012-01-04

    我知道如何创建.po文件以及如何生成的.mo文件,然后使用他们的翻译在我的笨驱动的站点. 不过,我不太清楚如何从网站界面改变语言. 我要坚持笨的默认网址通话模式:www.domain.com/controllername/method/param1/param2. 调用服务器一样,这是一个没有脑子:www.domain.com/controllername?lang=en 这样做,对于使用默认的URL架构中的每个控制器,要求我在每一个控制器来实现相同的方法,只是为了打发郎参数传递给setloca

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.286 (s). 10 q(s)