Php Get & Post with Google App Engine


Php Get & Post with Google App Engine

我将文件上传到我的 Google App Engine 实例,并已成功连接到数据库并提取数据。 但是,我正在尝试通过将变量附加到 URL 来使用 GET 请求提取特定数据。 我正在尝试调用 URL(为了安全起见,我的应用程序名称在此处更改)http://MYAPP.appspot.com/getCategories?catId=1 并使用 get 请求来获取附加在末尾的类别 ID。 我相信问题出在我的 app.yaml 文件上,因为所有内容都默认为我的捕获都在底部。 但是,在我的本地实例上,它工作得很好。 如何更改我的 app.yaml 文件,以便确保它触发第一个实例/getCategories.php而不是索引.php? 我是否需要编写正则表达式来考虑附加到末尾的数据?

#app.yaml
application: MYAPP
version: 1
runtime: php
api_version: 1
handlers:
- url: /getCategories.php
  script: /getCategories.php
- url: /.*
  script: index.php

您要访问的URL是http://MYAPP.appspot.com/getCategories?catId=1 。但是没有处理程序用于getCategories.因此,它始终转到默认处理程序index.php

根据您的app.yaml,您的URL应该http://MYAPP.appspot.com//getCategories.php?catId=1

或者,如果您需要按原样 url,则应将 app.yaml 处理程序修改为

- url: /getCategories
  script: /getCategories.php

我同意Nijin的观点,但我还要补充:

虽然你只有一个处理程序来匹配你的索引(一个捕获所有 -url:/.* 与脚本:index.php),但这一切要做的就是捕获所有对任何页面的请求并将它们路由到索引文件(这是一个很好的回退或可以用作错误捕获)。也就是说,Nijin 表示你需要一个/getCategories.php 脚本的路由,这很好,除了你最终会认为你写的每一页都需要一个。更好的主意是创建一个 url/脚本处理程序,用于捕获地址栏中的类型化(或链接)url,并将其与 GAE 应提供的磁盘上的 php 文件匹配。捕获全部 (-url:/.*) 应该在 app.yaml 中排在最后,这样您就不会错过任何内容,如果他们键入的内容不正确,请将它们路由回索引页。因此:

handlers:
- url: /(.+'.php)$
  script: '1
- url: /.*
  script: index.php

希望这是有道理的!

干杯。