【发布时间】:2013-07-11 08:03:30
【问题描述】:
我正在为 php 试用 GAE,但在 app.yaml 文件构建中迷失了方向。我可以理解谷歌教程中显示如何将所有 url 请求指向单个文件的部分
https://developers.google.com/appengine/docs/php/gettingstarted/helloworld
但这对我没有帮助。我将发布我设置的内容,文件结构在图片中。
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
<?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');
因此它加载启动会话并获取用户名和电子邮件进行一些字符串格式化,然后设置为会话变量,然后我检查以匹配条件并根据条件重定向到另一个脚本,该脚本进行更多验证和很快。制作很简单,我只是将其重定向到 login.php
登录.php
<?php
session_start();
echo $_SESSION['name'];
所以显示的输出应该是会话变量名,但我得到了这个
那么我做错了什么?我将使用登录页面从 SQL 数据库中提取用户数据,并根据值将用户重定向到不同的页面,这些页面将根据其设置显示不同的表单、表格和报告。
例如。来自 login.php
如果 userA 属于 Dept1
header('位置:/Dept1/main.php');
否则
header('位置:/Deptx/main.php');
所以我预计会有很多重定向,并且每个重定向都必须能够继承设置的会话变量。在普通 PHP 服务器上运行时,我能够做到这一点。 GAE 版本需要一些重新学习。我要提前感谢任何人花时间阅读直到听到。谢谢。
如果有人能就如何使用 app.yaml 以及如何将它与 w3school 中的演示示例一起使用做详细教程,那就太好了。
【问题讨论】:
标签: php google-app-engine redirect app.yaml