<?php
session_start(); // must be before any other output
$search_term = '';
if (!empty($_SESSION['last_search_term']))
{
// Check for last search term and update the search_term var
// Escaped from @Eli's suggestion - Thanks!
$search_term = htmlspecialchars($_SESSION['last_search_term'], ENT_QUOTES);
}
?>
<form method="get" action="page.php">
<input type="text" name="query" value="<?php print $search_term; ?>" />
<input type="submit" value="Search" />
</form>
<?php
if (!empty($_GET['query']))
{
// Form submitted
// Any necessary search logic here
$_SESSION['last_search_term'] = $_GET['query'];
}
?>
Как указано в комментариях, session_start () должен быть помещен перед любым другим выводом, иначе вам будет выдана ошибка. Последний блок PHP может быть выше формы. Это зависит от вас и вашего конкретного рабочего процесса.