PHP $ _GET没有URL请求参数填充,从Web浏览器(PHP $_GET is not pop

2019-10-21 12:05发布

我遇到一个奇怪的问题,即$_GET (和$_REQUEST )变量是空的,即使正在传递的参数。

我的PHP代码:

echo $_SERVER['REQUEST_URI'];
echo print_r($_REQUEST);
echo print_r($_GET);

输出:

/service/getAllOrders?sortBy=date_created&sortDir=desc
Array()
Array()

我使用nginx的,并转发到index.php的所有请求。 我的配置如下:

server {
    listen       80;
    server_name  decaro.localhost;
    root       /Users/rweiss/Sites/decaro/LocalOrderWebsite;

   #access_log  /usr/local/etc/nginx/logs/default.access.log  main;

    location / {
        add_header Cache-Control "no-cache, no-store";
        include   /usr/local/etc/nginx/conf.d/php-fpm;
        try_files $uri $uri/ /index.php$args;
    }

    location /assets/ {
        allow all;
    }

    location = /info {
        allow   127.0.0.1;
        deny    all;
        rewrite (.*) /.info.php;
    }

    error_page  404     /404.html;
    error_page  403     /403.html;
}

为什么?

Answer 1:

解决的办法是只通过$ QUERY_STRING变量的Nginx:

try_files $uri $uri/ /index.php?$query_string;

感谢您所有的帮助。

瑞安



Answer 2:

试着打印出:

 echo $_SERVER['QUERY_STRING'];

这是插入到超级全球$ _GET除了在获取数据,我认为你应该打个电话使用这个链接脚本:

www.yourdomain.com/service/getAllOrders.php?sortBy=date_created&sortDir=desc 

注意.PHP ..

看看有什么是你查询检查$ _GET,字符串,请尝试使用打印

 echo print_r($_GET,1);


文章来源: PHP $_GET is not populating with URL query parameters, from web browser