Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 表单提交后重定向到其他页面_Php_Html_Forms - Fatal编程技术网

Php 表单提交后重定向到其他页面

Php 表单提交后重定向到其他页面,php,html,forms,Php,Html,Forms,我在header.php(每个页面的页眉)中有一个搜索表单。 提交表单后,我想将用户重定向到页面:site.com/search-$VALUE-100 我试过: $value = $_POST['value']; if(isset($_POST['search'])) { if(preg_match('/^[a-zA-Z0-9]$/', $value)) { header("Location: search-".$value."-100"); } } 和HTML: <form m

我在
header.php
(每个页面的页眉)中有一个搜索表单。 提交表单后,我想将用户重定向到页面:
site.com/search-$VALUE-100

我试过:

$value = $_POST['value'];
if(isset($_POST['search']))
{
if(preg_match('/^[a-zA-Z0-9]$/', $value))
{
    header("Location: search-".$value."-100");
}
}
和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>

您使用的是
GET
方法而不是
POST
,因此要访问此值,请使用
$\u GET

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

这应该可以做到

首先,您必须声明操作a.k.a.php脚本,该脚本将处理来自任何页面的请求,如果您希望在$\u POST中有值,则必须将方法声明为POST:

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

除了使用
$\u GET
,您可能希望在正则表达式中加入
+
,以便能够搜索长度超过一个字母的内容:
if(preg_match('/^[a-zA-Z0-9]+$/',$value))
如果您所在的页面将处理该过程,则不必这样做。但是,如果您只想在一个地方处理操作,并从不同的页面调用它,而不是我建议的,那么这将是一个很好的实践。如果你这样做的话,你就可以把代码放在一个地方,在任何你需要的地方调用它。
header('Location: http://'.$_SERVER['HTTP_HOST'].'/search-'.$value.'-100');
$value = $_GET['value'];
if(isset($_GET['search'])){
    if(preg_match('/^[a-zA-Z0-9]$/', $value)){
        header("Location: /search-".$value."-100");
    }
}
<form action="search.php" method="POST">
$value = $_POST['value'];
if(isset($_POST['search']))
{
  if(preg_match('/^[a-zA-Z0-9]$/', $value))
  {
    header("Location: search-".$value."-100");
  }
}