Предполагая, что ваш www.example.com?q=word
указывает на индекс. php.
Предполагая также, что ваш more.php
содержит функции. Предполагая в качестве третьего, что ваш index.php
возвращает что-то отображаемое в браузере, даже если нет параметра GET
, то есть начального вызова страницы. При этом действительно простым решением будет запускать каждый запрос по индексу. php. Там вы можете обрабатывать каждый запрос, даже разные типы, на основе нового GET-параметра type
use use.
#index.php
require 'more.php';
// do something here to validate the parameters you use
switch($_GET('type')) {
case 'simple':
return simpleCall();
break;
case 'more':
return additionalInfo();
break;
}
function simpleCall() {
// do stuff here
// access $_GET for other paramters
}
#more.php
function complexCall() {
//do complex stuff here
}
Наконец, ваш HTML будет выглядеть примерно так
<button onclick="window.location.href = '/?type="more"&q=<?php echo "$trimmed"; ?>';">search for more results</button>
Пока вы не получите больше, чем эти два типа, оно будет загромождено вашим switch
заявлением.
По этой причине было бы неплохо подумать о различных решениях, таких как:
- с такой системой маршрутизации https://medium.com/the-andela-way/how-to-build-a-basic-server-side-routing-system-in-php-e52e613cf241
- с использованием асинхронных вызовов с вашего внешнего интерфейса с помощью JavaScript для вызова на другие PHP файлы на сервере, но остаются на той же странице в веб-интерфейсе. Это немедленно приведет к некоторому API. Но это, как правило, не самая лучшая идея.
- Пожалуйста, проверьте ваши параметры независимо от того,
POST
или GET
, прежде чем что-то делать с ними в остальной части кода. Пример словаря звучит очень похоже на запрос к базе данных, в которой, например, внедрение SQL очень важно, если данные, которые мы использовали, не проверено.
Надеюсь, это немного поможет .