【问题标题】:$_GET request is returning undefined$_GET 请求返回未定义
【发布时间】:2017-06-09 22:51:37
【问题描述】:

我有一个 Angular 项目正在尝试连接到谷歌日历,这样我可以提交预订,它们会自动添加到 gmail 日历。这是有效的,但不是在正确的情况下。这是我遵循的example 使其工作。

我有一个 Angular 项目,登录时会检查 Web 应用程序是否有权使用日历。返回时,它使用 GET 将令牌保存到会话中,但是当使用 redirectUrl 返回时,我的 $_GET 未定义。即使参数是 in URL。我相信这归结为角度路由。

登录时我检查$_SESSION['token'] 是否已设置,如果没有通过javascript 重定向。 $authUrl = $this->client->createAuthUrl(); 然后是 location.href = $authUrl 以在 javascript 中重定向。这工作正常,用户接受许可并重定向回下一页,即www.example.co.uk/index/dashboard?code=4%2F5NgsMp8JepEmXVgR8pez0fQdk_jTPonsuExdV8&authuser=0&session_state=2dfb836cfc217135f907c7e6c0d9c526983b6f..9103&prompt=none

但是当我尝试$_GET['code'] 时,这是未定义的,这意味着无法运行设置令牌的方法:

if (isset($_GET['code'])) { 
         $this->client->authenticate($_GET['code']);
         error_log("tou can access");
         $_SESSION['token'] = $this->client->getAccessToken();
         $redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']; 
         header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));

     }

print_r($_GET); 字段:

Array ()

.htacces 规则:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase 
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*) /index.php/#/$1
</IfModule>

更新 这个错误是因为我从一个没有被设置为标题的 ajax 请求中加载了一个单独的 php。一旦我将GET 请求重新定位到与标头匹配的文件中,它就起作用了。

【问题讨论】:

  • 什么是print_r($_GET);
  • @abracadaver 数组\n(\n)\n,
  • 看到页面是dashboard 而不是dashboard.php,你有一些 URL 重写 (.htaccess) 或其他可能会剥离这些。
  • @abracadaver 我有一个 htaccess。这是&lt;IfModule mod_rewrite.c&gt; RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*) /index.php/#/$1 &lt;/IfModule&gt;
  • 最佳猜测:# 表示一个片段并且不发送到服务器。供客户使用。

标签: javascript php angularjs


【解决方案1】:

您需要在重写中包含查询字符串标志...

https://httpd.apache.org/docs/current/rewrite/flags.html#flag_qsa

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase 
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*) /index.php/$1 [QSA]
</IfModule>

【讨论】:

    猜你喜欢
    • 2018-08-09
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-04
    相关资源
    最近更新 更多