Heim > Backend-Entwicklung > PHP-Tutorial > get参数为什么取不到"c"?

get参数为什么取不到"c"?

WBOY
Freigeben: 2016-06-06 20:12:25
Original
1094 Leute haben es durchsucht

url后附带参数"c"的时候,$_REQUEST怎么取不到值呢?

get参数为什么取不到

但是如果把参数换成其他名字,比如大写的"C",就能取到值了。

get参数为什么取不到

请问是怎么回事?

回复内容:

url后附带参数"c"的时候,$_REQUEST怎么取不到值呢?

get参数为什么取不到

但是如果把参数换成其他名字,比如大写的"C",就能取到值了。

get参数为什么取不到

请问是怎么回事?

用的是thinkPHP吗?thinkPHP默认会提取GET参数中的c作为controller的名并以此为调度。你可以在config文件里更换VAR_CONTROLLER的值来选择其他参数作为controller名,这样就不会妨碍c参数的传递了。

在thinkphp的框架中,请求分发部分需要解析m c a参数,解析后就从$_GET数组中删除了对应的参数
path\to\ThinkPHP\Library\Think\Think.class.php

<code>    /**
     * 应用程序初始化
     * @access public
     * @return void
     */
    static public function start() {
        ...
        // 运行应用
      App::run();
    }</code>
Nach dem Login kopieren

path\to\ThinkPHP\Library\Think\App.class.php

<code>    /**
     * 运行应用实例 入口文件使用的快捷方法
     * @access public
     * @return void
     */
    static public function run() {
        ...
        App::init();
        ...
    }</code>
Nach dem Login kopieren
<code>    /**
     * 应用程序初始化
     * @access public
     * @return void
     */
    static public function init() {
        ...
        // URL调度
        Dispatcher::dispatch();
        ...</code>
Nach dem Login kopieren

path\to\ThinkPHP\Library\Think\Dispatcher.class.php

<code>    /**
     * URL映射到控制器
     * @access public
     * @return void
     */
    static public function dispatch() {
        ...
        // 获取模块名称
        define('MODULE_NAME', defined('BIND_MODULE')? BIND_MODULE : self::getModule($varModule));
        ...
        // 获取控制器的命名空间(路径)
        define('CONTROLLER_PATH',   self::getSpace($varAddon,$urlCase));
        // 获取控制器和操作名
        define('CONTROLLER_NAME',   defined('BIND_CONTROLLER')? BIND_CONTROLLER : self::getController($varController,$urlCase));
        define('ACTION_NAME',       defined('BIND_ACTION')? BIND_ACTION : self::getAction($varAction,$urlCase));
        ...</code>
Nach dem Login kopieren
<code>    /**
     * 获得实际的控制器名称
     */
    static private function getController($var,$urlCase) {
        ...
        $controller = (!empty($_GET[$var])? $_GET[$var]:C('DEFAULT_CONTROLLER'));
        unset($_GET[$var]);
        ...
    }</code>
Nach dem Login kopieren

获取模块和操作方法的代码类似.

其实本来也不应该直接从$_GET中取数据,因为如果使用pathinfo的URL模式或者rewrite的URL模式的时候这些参数都不在$_GET中

你的截图里怎么是post?

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage