在哪里检查GET / POST参数? (MVC)

时间:2011-07-18 10:49:29

标签: php security model-view-controller

我的网站布局:

的index.php:   - 前控制器   - 包括header.php   - 包括template.php   - 包括footer.php

前端控制器检查URL,并决定要包含哪个模板,或者是否为操作,执行错误检查并转发到视图。 我有一个搜索表单,它发布输入数据(使用GET方法)。前端控制器获取它,调用“action_search.php”,如果有错误则暂停,然后包含“search_template.php”,这显示搜索结果。到目前为止,控制器检查GET参数(它们是存在的,转义等)并重定向到视图,但有人通过浏览器直接调用该视图?脚本将死于“未知的GET参数”,因此必须在视图中再次完成。但它伤害了MVC。然后怎么做?

3 个答案:

答案 0 :(得分:1)

使用mod_rewrite通过index.php强制执行所有操作,然后按照您希望的方式通过index.php处理每个请求,并且它可以决定要做什么。

答案 1 :(得分:1)

您的MVC应该以不允许用户直接通过浏览器访问您的视图的方式进行设置。使用.htaccess重写规则将所有请求重定向到前端控制器。

答案 2 :(得分:1)

除了使用mod_rewrite / .htaccess“隐藏”页面之外,您可以只在不是http文档根目录的子目录的目录中直接访问php页面。