我有两个页面page one和page_two,在page_one中,用户输入一些将插入数据库的信息,当他按下回车时,他应该被定向到page_two,并在此页面内有相同的信息,他在page_one中输入。问题是每次用户刷新page_two时,数据都会再次插入到数据库中。我试图通过使用标题到一个新的页面来解决这个问题,它工作,但在page_two中,在page_one中输入的信息丢失了。
page_one
<form action="page_one.php" method="post" name="info" >
<input name="userName" type="text" />
<input name="userEmail" type="text" />
<input name="userPass" type="text" />
<input name="submit" type="submit" />
</form>
<?php
include('db.php');
if(isset($_POST['Login']))
{
$user_name = $_POST['userName'];
$user_email = $_POST['userEmail'];
$password = $_POST['userPass'];
mysql_query("INSERT INTO users VALUES ('$user_name',' $user_email',' $password')");
header("Location:page_two.php.php");
exit;
}
?>
page_two
<?php
$user_name = $_POST['userName'];
$user_email = $_POST['userEmail'];
$password = $_POST['userPass'];
echo 'your user name: '.$user_name;
echo 'your email: '.$user_email;
echo 'your password: '.$password;
<input name="userName" type="hidden" value="<?php echo $user_name; ?>" />
<input name="userEmail" type="hidden" value="<?php echo$user_email; ?>" />
<input name="userPass" type="hidden" value="<?php echo $password; ?>" />
当我尝试这段代码时,它给了我来自page_two的错误信息:
notice undefined index userName
notice undefined index userEmail
notice undefined index userPass
通过url将变量传递给page_two
那么你的标题将是
header("Location:page_two.php.php?userName=user_name&userEmail=user_email&userPass=password");
现在使用$_GET在page_two
上捕获这些变量<?php
$user_name = $_GET ['userName'];
$user_email = $_GET ['userEmail'];
$password = $_GET ['userPass'];
echo 'your user name: '.$user_name;
echo 'your email: '.$user_email;
echo 'your password: '.$password;
您的方法是正确的,但是在page_2上,您不应从$_POST数组中检索值,而应从数据库中检索值,因为它们现在存在于数据库中。这将消除未定义索引问题。
在插入数据后使用header
重定向到某个安全页面。您可以使用插入行的id来获取page_2上的数据。
既然你正在构建一个多页面的web应用程序。我建议您必须使用SESSION来保存第一页的发布信息,然后为第二页使用SESSION变量。我希望下面的链接能帮到你。
http://www.html-form-guide.com/php-form/php-order-form.html在第二页,你应该包括一个Select语句,它将选择表中存储的所有值。
mysql_query("SELECT * FROM users ");