0

I have in header.php (which is the header of each page) a search form. After form submission I want to redirect users to page: site.com/search-$VALUE-100.

I've tried with:

$value = $_POST['value'];
if(isset($_POST['search']))
{
if(preg_match('/^[a-zA-Z0-9]$/', $value))
{
    header("Location: search-".$value."-100");
}
}

and HTML:

<form method="get">
<input type="text" name="value" value="search" onfocus="if (this.value==this.defaultValue) this.value = ''" onblur="if (this.value=='') this.value = this.defaultValue" />
<input type="submit" name="search" class="image" value="" />
</form>

Now code sent to:

page.php?value=a&search=
index.php?value=a&search=
user.php?value=a&search=
somepage.php?value=a&search=
4

4 に答える 4

2

GETメソッド notを使用してPOSTいるため、この値にアクセスするには、次を使用します$_GET

  $value = $_GET['value'];
  if(isset($_GET['search']))
  {
    if(preg_match('/^[a-zA-Z0-9]$/', $value))
    {
      header("Location:search-".$value."-100");
    }
  }
于 2013-09-10T07:47:05.653 に答える
1
$value = $_GET['value'];
if(isset($_GET['search'])){
    if(preg_match('/^[a-zA-Z0-9]$/', $value)){
        header("Location: /search-".$value."-100");
    }
}

これはそれを行う必要があります

于 2013-09-10T07:50:17.887 に答える
0

まず最初に、任意のページからのリクエストを処理するアクション (別名 php スクリプト) を宣言する必要があります。$_POST に値が必要な場合は、メソッドを POST として宣言する必要があります。

<form action="search.php" method="POST">

search.php よりもあなたのことをしてください:

$value = $_POST['value'];
if(isset($_POST['search']))
{
  if(preg_match('/^[a-zA-Z0-9]$/', $value))
  {
    header("Location: search-".$value."-100");
  }
}
于 2013-09-10T07:58:10.923 に答える
-1
header('Location: http://'.$_SERVER['HTTP_HOST'].'/search-'.$value.'-100');
于 2013-09-10T07:48:11.403 に答える