我有一个搜索表单,如果我这样使用它:
<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来做。
我在网上只找到这种"标题:位置"的方法,但它对我不起作用
编辑:我在没有重定向的情况下用另一种方式解决了这个问题,因为即使使用会话变量,我也无法使其工作。
<?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>
请使用此代码。这很管用。。
您的表单是错误的,应该是这样的:
<form method="post" action="">
<input type="text" name="name">
<input type="submit" name="submit" value="search">
</form>
这里有两个错误:
- 在发送标头之前,您正在输出HTML。那行不通。一旦输出了任何内容,就太晚了,无法重定向浏览器
- 您没有在
<?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>