我知道之前已经提出并回答过,但我想知道以下哪一项是在表单提交上实施重定向的最佳方式。
我在网页的标题部分中有PHP提交代码。这很好,但是当提交表单时,页面返回到同一页面。如果我放一个
header("Location: page2.php");
在提交代码下面,页面立即重定向到此页面(正如预期的那样 - 代码在页面加载后立即运行,因此它甚至不会创建表单,它将继续运行)。
现在,我
1 /将数据提交的代码放在PHP函数中(与重定向代码一起),然后在提交表单时调用此函数。这样,函数在输入数据之后才会运行,并且不必重新加载同一页面,只是立即重定向到另一页面。
2 /而不是上面的函数,在标题中使用if
语句来测试其中一个数据。这样,在填写表单并按下提交按钮之前,将忽略提交代码。据我所知,缺点是必须调用相同的页面才能返回运行标题中的代码,然后可以提交数据并运行重定向代码。
3 /完全不同的东西!
这是form.php:
标题中的代码if (isset($_POST['email'])){
$user = $_POST['email'];
$_SESSION['email'] = $user;
$title = $_POST['title'];
$first_name = $_POST['first_name'];
$surname = $_POST['surname'];
$phone_number = $_POST['phone'];
$email_address = $_POST['email'];
$house = $_POST['add1'];
$street = $_POST['add2'];
$town = $_POST['add3'];
$city = $_POST['add4'];
$postcode = $_POST['add5'];
$query = "INSERT INTO `first_page_data`(`title`, `first_name`, `surname`, `phone_number`, `email_address`, `house`, `street`, `town`, `city`, `postcode`) VALUES ('$title','$first_name','$surname','$phone_number','$email_address','$house','$street','$town','$city','$postcode')";
$result = mysql_query($query, $first_data);
header("Location: newproperty2.php");
}
?>
这可以在重定向到的页面上运行,还是必须在带有表单的页面上运行?
答案 0 :(得分:3)
您可以使用action
属性执行此操作,请查看以下代码...
<form action="newproperty2.php" method="post">
Name: <input type="text" name="first_name"><br/>
SURNAME: <input type="text" name="surname"><br/>
Phone: <input type="text" name="phone"><br/>
E-mail: <input type="text" name="email"><br/>
title: <input type="text" name="title"><br/>
<input type="submit">
</form>
此处页面会在按下提交按钮后定向到welcome.php,此外,您还可以使用$ _POST ['name']和$ _POST ['email']访问name
和email
]。
然后将上面的PHP代码放在newproperty2.php(另一个文件)中。你不需要包含header()。在那段代码中还添加了我在这里没写过的其他变量。