我正在尝试GAE for php并迷失在app.yaml文件构造中.我可以理解谷歌教程中的部分,该部分显示了如何将所有网址请求指向单个文件
但它对我的情况没有帮助.我将发布我已设置的内容,文件结构在图片中.
的app.yaml
application: xxx
version: 1
runtime: php
api_version: 1
threadsafe: true
handlers:
- url: /stylesheets
static_dir: stylesheets
- url: /images
static_dir: images
- url: /scripts
static_dir: scripts
- url: /favicon.ico
static_files: favicon.ico
upload: favicon.ico
- url: /
script: main.php
login: required
auth_fail_action: redirect
- url: /main
script: main.php
login: required
auth_fail_action: redirect
所以我的xxx.appspot.com或xxx.appsport.com/main的目标网页是main.php.它工作正常.
main.php
session_start();
date_default_timezone_set('America/Los_Angeles');
require_once 'google/appengine/api/users/UserService.php';
use google\appengine\api\users\User;
use google\appengine\api\users\UserService;
$user = UserService::getCurrentUser();
$name= $user->getNickname();
$name = explode(".",$name);
$name[0]= ucfirst($name[0]);
$name[1]= ucfirst($name[1]);
$name = $name[0]." ".$name[1];
$_SESSION['name']=$name;
$_SESSION['email']= getenv('USER_EMAIL');
header('Location: login.php');
所以它加载启动一个会话并获取用户名和电子邮件做一些字符串格式,然后设置为Session变量,然后我检查匹配条件,并根据条件重定向到另一个脚本,进行更多的验证等等.简单来说,我只是将它重定向到login.php
的login.php
session_start();
echo $_SESSION['name'];
因此显示的输出应该是会话变量名称,而是我得到它
那我做错了什么?我将使用登录页面从SQL数据库中提取用户数据,并根据该值将用户重定向到不同的页面,这些页面将根据其设置显示不同的表单,表格和报表.
例如.来自login.php
if userA belongs to Dept1
header(‘Location: /Dept1/main.php’);
Else
header(‘Location: /Deptx/main.php’);
所以我希望有很多重定向,每个重定向必须能够继承所设置的会话变量.我能够在普通的PHP服务器上运行时这样做. GAE版本需要一些重新学习.我想提前感谢任何一个人只是花时间阅读,直到听到.谢谢.
如果有人可以做一个关于如何使用app.yaml的详细教程以及它如何与w3school中的演示示例一起使用,那将是很好的.