Позволяет сначала получить запрос, который нам нужно использовать для получения аргументов запроса.
$request =& $_SERVER['REQUEST_METHOD'] === 'POST' ? $_POST : $_GET;
Вероятно, было бы неплохо проверить, установлен ли он, если нет - просто оставьте это поле пустым.
$name = $request['name'] ?? ''; # PHP 7+
$name = isset($request['name']) ? $request['name'] : ''; # PHP 5.6 >
Затем вы можете сделать свою маршрутизацию
# switch: endswitch; for readability
switch(($route = $_SERVER['REQUEST_URI'])):
case '/kontack': ?>
<form method="POST" action="/kontakt">
<input type='text' value='<?= $name; ?>' name='name' />
....
<?php break;
endswitch;
После этого имя будет непрерывно вставляться обратно в поле value
. Однако, если вы посетите новую страницу, а затем вернетесь - она исчезнет. Если вы хотите, чтобы он оставался всегда, на любом маршруте, вы можете использовать сеансы.
session_start();
# We want to use the request name before we use the session in-case the user
# Used a different name to what we previously knew
$name = $request['name'] ?? $_SESSION['name'] ?? ''; # PHP 7
$name = isset($request['name']) ? $request['name'] : isset($_SESSION['name']) ? $_SESSION['name'] : ''; # PHP 5.6 >
# Update what we know
$_SESSION['name'] = $name;
Примечание: Я показал примеры PHP 5.6> и PHP 7. Вам нужно использовать только одну версию в зависимости от используемой версии PHP.