从前一页获取post数据


getting post data from previous page

我有两个页面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 ");