代码之家  ›  专栏  ›  技术社区  ›  rg88

URL在Zend Framework中的行为与预期不符

  •  0
  • rg88  · 技术社区  · 16 年前

    在控制器的init方法中调用以下类型的url时,我在两个不同的服务器上得到两个不同的结果:

    http://address.com/index/action/?start=2009-04-18&end=2009-04-21

    使命感

    echo$_GET['start'];

    然而,这是奇怪的部分,补充说

    之后,echo语句会使2009-04-18在两台服务器上按预期显示。

    仅供参考转储请求参数表明它们在一台服务器上可用,但在另一台服务器上不可用。。。除非调用exit();

    究竟是什么原因导致了这一切?我意识到这不是在ZF中构造URL的方式,但它是在这个特定项目中执行的方式。也许某种定制路线会有帮助?仍然无法解释退出();导致$\u GET变量显示的位。

    编辑:

    2 回复  |  直到 16 年前
        1
  •  1
  •   Kekoa    16 年前

    我的猜测是$_GET['start']实际上在两台服务器上都工作,问题是在这个语句之后没有任何东西出现问题,但是echo的输出仍然在输出缓冲区中。如果在回音之后执行flush(),应该能够看到输出,那么不管发生什么崩溃,afterwords都会崩溃,但您会看到日期。

    我不确定您对路由做了什么(没有足够的代码可以看到),但是您的查询字符串(后面的所有内容?)与您的路由完全不同。如果要使用路由,则需要使用ZF Quickstart页面上提供的.htaccess文件来启用mod_重写。

    我认为您需要创建自己的自定义路由器(不仅仅是一个路由),然后使用$\u GET参数路由到您想要的控制器,以及它需要的参数。默认路由器不会对查询字符串执行复杂的操作,至少上次我检查时不会。

        2
  •  1
  •   Steve    15 年前

    检查损坏服务器上的.htaccess文件。 http://framework.zend.com/manual/en/zend.controller.router.html