6

私はphp用のGAEを試していて、app.yamlファイルの構築に迷いました。すべてのURLリクエストを単一のファイルに向ける方法を示すGoogleチュートリアルの部分を理解できます

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にリダイレクトしています

login.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 のようなデモ例での使用方法に関する詳細なチュートリアルを誰かが実行できるとよいでしょう。

4

2 に答える 2

3

これが私のものです、それは役立つかもしれません。Pcode私のフォルダの1つにすぎません(フォルダを定義する必要があるかどうかはわかりませんが、とにかくそこに残しました):

application: theclearview1
version: 10
runtime: php
api_version: 1

handlers:
- url: /(.*\.(htm$|html$|css$|js$))
  static_files: \1
  upload: (.*\.(htm$|html$|css$|js$))
  application_readable: true

- url: /css
  static_dir: css

- url: /js
  static_dir: js

- url: /(.*\.(ico$|jpg$|png$|gif$))
  static_files: \1
  upload: (.*\.(ico$|jpg$|png$|gif$))
  application_readable: true

- url: /Pcode/(.+)
  script: Pcode/\1

- url: /(.+)
  script: \1

- url: /.*
  script: index.php

基本的に、次の行はなどの通常の php ホストと同様に実行されると思いますhostgatorgodaddy

handlers:
- url: /(.*\.(htm$|html$|css$|js$))
  static_files: \1

  upload: (.*\.(htm$|html$|css$|js$))
  application_readable: true

- url: /(.*\.(ico$|jpg$|png$|gif$))
  static_files: \1

  upload: (.*\.(ico$|jpg$|png$|gif$))
  application_readable: true

- url: /(.+)
  script: \1

- url: /.*
  script: index.php
于 2013-07-17T00:27:29.257 に答える