Почему моя форма отправки не работает с Header: location?

У меня есть форма поиска, и если я использую ее так:

<form  method="post" action="search.php?go">
<input  type="text" name="name">
<input  type="submit" name="search" value="Search">
</form>

Оно работает.

Если я попытаюсь использовать это так, то это не так:

<?php
if ($_POST['submit'] == 'search') {
header("Location:search.php?go");

}

?>

<!DOCTYPE html>
<html>
<head>
</head>
<body>

<form  method="post" action="">
<input  type="text" name="name">
<input  type="submit" name="search" value="Search">
</form>

Мне нужны две формы (поиск и раскрывающееся меню) на моем сайте, и если я использую простое «действие» со страницами для вызова, то это не работает, поэтому я пытаюсь сделать это с помощью PHP.

Я нахожу только этот метод «Заголовок: местоположение» в сети, но он не работает для меня.

РЕДАКТИРОВАТЬ:
Я решил это по-другому без перенаправления, потому что я не мог заставить его работать даже с переменными сеанса.

-3

Решение

<?php
if (isset($_POST["search"]))
{
header("Location: search.php?go");
}
?>

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form  method="post" action="">
<input  type="text" name="name">
<input  type="submit" name="search" value="Search">
</form>
</body>
</html>

Пожалуйста, используйте этот код. Это работает..

1

Другие решения

Ваша форма неверна, она должна быть такой:

<form  method="post" action="">
<input type="text" name="name">
<input type="submit" name="submit" value="search">
</form>
0

Здесь есть две вещи не так:

  1. Вы выводите HTML перед отправкой заголовка. Это не сработает. Как только что-то будет выведено, будет слишком поздно перенаправить браузер.
  2. Вы не встраиваете PHP в <?php теги, так что вы просто увидите его вывод в виде текста.

Я бы попробовал это:

<?php
if ($_POST['submit'] == 'search') {
header("Location:search.php?go");
exit;
}
?>
<form  method="post" action="">
<input  type="text" name="name">
<input  type="submit" name="search" value="Search">
</form>
-1
По вопросам рекламы [email protected]