2015-03-16 6 views
0

Я загрузил свои файлы в свой экземпляр ядра Google и успешно смог подключиться к базе данных и вытащить данные. Тем не менее, я пытаюсь вытащить конкретные данные с помощью запроса GET, добавив переменные в URL. Я пытаюсь вызвать URL (с моим именем приложения, измененным здесь для обеспечения безопасности) http://MYAPP.appspot.com/getCategories?catId=1, и я использую запрос get, чтобы захватить идентификатор категории, который добавлен в конец. Я считаю, что проблема связана с моим файлом app.yaml, поскольку все продолжает дефолтировать мой улов все внизу. Однако, в моем локальном экземпляре это работает отлично. Как я могу изменить файл app.yaml, чтобы убедиться, что он запускает первый экземпляр /getCategories.php вместо index.php? Нужно ли писать регулярное выражение для учета добавляемых данных до конца?Php Get & Post с Google App Engine

#app.yaml 
application: MYAPP 
version: 1 
runtime: php 
api_version: 1 

handlers: 

- url: /getCategories.php 
    script: /getCategories.php 

- url: /.* 
    script: index.php 

ответ

2

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 
+0

Так как я не знаю, был ли catId с 1, 2 или любым другим числом, как создать обработчик, чтобы убедиться, что он ловит 'http://MYAPP.appspot.com//getCategories.php?catId = 1' независимо от последнего номера в конце? –

+1

'catId' - параметр URL. Этот обработчик обработает его. Таким образом, все запросы, поступающие на 'getCategories.php', будут обрабатываться скриптом. И вы можете получить значение 'catId'' $ _GET ["catId"] '. –

0

Я согласен с Nijin, но я хотел бы также добавить:

Хотя у вас есть только обработчик, чтобы соответствовать вашему индексу (улов всех -url: /.* с помощью сценария: index.php), все это будет ловить ВСЕ запросы на любую страницу и m в индексный файл (который хорош как резерв или может использоваться как ошибка catch). Тем не менее, Ниджин указал, что вам нужен маршрут для вашего сценария /getCategories.php, и это нормально, за исключением того, что вы будете думать, что вам нужно одно для каждой отдельной страницы, которую вы пишете. Лучшей идеей является создание обработчика url/script, который ловит набранный (или связанный) URL-адрес в адресной строке и сопоставляет его с файлом php на диске, который должен выполнять GAE. Уловка all (-url: /.*) должна идти LAST в app.yaml, чтобы вы ничего не пропустили, и перенаправляйте их обратно на индексную страницу, если они что-то вводят неправильно. Следовательно:

handlers: 
- url: /(.+\.php)$ 
    script: \1 

- url: /.* 
    script: index.php 

Надеюсь, что имеет смысл!

Cheers.