$_POST с маршрутизатором klein.php: как передать $_POST в представление?

Рыбалка в неизведанных водах, я дал klein.php маршрутизации вращения и не могу на всю жизнь узнать, как передать $_POST из HTML-формы в другое представление.

Пример:

index.php

<?php
//START ROUTING
require 'klein.php';
require 'autoload.php';

respond('/', function ($request, $response) {
    $response->render('homepage.php', array(
        'meta_title' => 'My Homepage'
    ));
});
respond('/[:name]', function ($request, $response) {
    $response->render('siteinfo.php', array(
        'meta_title' => 'My Details Page'
        ));
});

Теперь у меня есть форма на homepage.php, где я делаю следующее:

<form method="post">
    <input type="text" name="url">
    <button type="submit">Submit</button>
</form>

siteinfo.php захватывает все, что передано после URL (т.е. example.com/product123 -> product123), и отображает информацию об этом в представлении "siteinfo.php". Пока что это прекрасно работает с приведенным выше кодом, если он введен вручную в адресную строку, так как я могу получить доступ к [:name] как $request->name на siteinfo.php.

Всякий раз, когда я запускаю поиск в форме, я хотел бы передать $_POST из представления homepage.php в index.php как [:name] без $_GET! Любая идея, как это работает с klein.php или где я должен начать искать ответы?

Я также пытался передать значение param(), но это все равно не работает с формой. Я также попытался добавить action=index.php/siteinfo.php/homepage.php в качестве действия формы, но по-прежнему не люблю...

Любая помощь очень ценится...

1 ответ

Это было бы хорошим местом для начала. что ты уже испробовал?

respond('POST', '/', function ($request, $response) {

    $request->validate('url')->notNull();

    $response->url= $request->url;

    $response->render('homepage.php');
});
Другие вопросы по тегам