Если у вас есть что-то вроде:
<form action="this_page.php" method="post">
<input type="text" name="search" placeholder="Search..." value="">
<input type="submit" value="Go">
</form>
Вы можете установить значение поиска ввода с $_POST
массива (или $_GET
, если вы использовали метод GET).
<?php
// if data 'search' posted in POST method, make it safe in HTML then store it in $search. If 'search' data was not posted, fill it with an empty string ('')
$search = (isset($_POST['search'])) ? htmlentities($_POST['search']) : '';
?>
<form action="this_page.php" method="post">
<input type="text" name="search" placeholder="Search..." value="<?= $search ?>">
<input type="submit" value="Go">
</form>
Я должен объяснить вам, что короткие теги не возможно быть разобран PHP, если ваш файл php.ini содержит: short_open_tag = Off
Тогда вам придется использовать стандартный метод сделать это: <?php echo $search; ?>
скорее чем короткая: <?= $search ?>
Кстати, эта линия может быть немного запутанным для не опытных пользователей:
$search = (isset($_POST['search'])) ? htmlentities($_POST['search']) : '';
Вы можете заменить его:
if(isset($_POST['search']))
{
$search = htmlentities($_POST['search']);
}
else
{
$search = '';
}
Или даже:
$search = '';
if(isset($_POST['search']))
{
$search = htmlentities($_POST['search']);
}
Кстати, если вы хотите, чтобы иметь возможность не держать значение:
<?php
// if data 'search' posted in POST method, make it safe in HTML then store it in $search. If 'search' data was not posted, fill it with an empty string ('')
$search = (isset($_POST['search'])) ? htmlentities($_POST['search']) : '';
// if reset asked, then empty $search
$search = (isset($_POST['reset'])) ? '' : $search;
?>
<form action="" method="post">
<input type="text" name="search" placeholder="Search..." value="<?= $search ?>">
<input type="submit" value="Go"><?php if($search != '') echo '<input type="submit" name="reset" value="Reset">'; ?>
</form>
Вы также можете используйте флажок или что-то еще ... :)
Это относительно безопасно, но обратите внимание: если вы применяете указанный ввод к текстовым полям/текстовым полям (где пользовательский ввод поставляется), вам нужно будет сбежать от него и все, поскольку его можно легко использовать. – Darren