如何将表单值以其他形式传递给下一页

时间:2013-11-21 04:59:19

标签: php forms

如何将表单值以其他形式传递给下一页?

我的代码在:

<form action="confirm.php" method="post">
First name: <input type="text" name="firstname"><br>
Last name: <input type="text" name="lastname"><br>
Email: <input type="text" name="email">
</form>

现在我想在confirm.php中添加一些带有此值的隐藏输入字段,我试过这段代码:

<form action="nextpage.php" method="post">

//some other input fields...

<input type="hidden" name="firstname" value="<?php $_POST['firstname']?>">
<input type="hidden" name="lastname" value="<?php $_POST['lastname']?>">
<input type="hidden" name="email" value="<?php $_POST['email']?>">
</form>

在其他两个页面中等等,在最后一页我想通过电子邮件发送所有这些字段,我尝试了PHP _SESSION,但没有运气,所以我认为这对我来说更容易!

还有别的我忘了告诉,在第二页(nextpage.php)动作表单变量我指的是使用这段代码的文件:

<?php
header('Location: dear-'.$_POST['firstname'].'.php');
?>

<html>
<form>
  <input type="hidden" name="firstname" value="<?php echo $_POST['firstname']?>">
  <input type="hidden" name="lastname" value="<?php echo $_POST['lastname']?>">
  <input type="hidden" name="email" value="<?php echo $_POST['email']?>">
</form>
</html>

在这种情况下,如何在下一页传递此值(名字,姓氏和电子邮件)?我使用它是因为我想生成一个像这样的网站www.site.com/dear-name.php

5 个答案:

答案 0 :(得分:2)

在confirm.php

中试试
<form action="nextpage.php" method="post">

//some other input fields...

<input type="hidden" name="firstname" value="<?php echo $_POST['firstname']?>">
<input type="hidden" name="lastname" value="<?php echo $_POST['lastname']?>">
<input type="hidden" name="email" value="<?php echo $_POST['email']?>">
</form>

答案 1 :(得分:1)

您忘了echo您的变量。

<input type="hidden" name="firstname" value="<?php echo $_POST['firstname']; ?>">

<强>更新

您有两种选择:

  1. 将您的数据存储到session并检索到另一个页面。
  2. 使用query string传递您的数据。

    header('Location: dear-'.$_POST['firstname'].'.php?firstname='.$_POST['firstname'].'&lastname='.$_POST['lastname'].'&email='.$_POST['email']);
    

答案 2 :(得分:0)

使用 echo

<input type="hidden" name="firstname" value="<?php echo $_POST['firstname']; ?>">
<input type="hidden" name="lastname" value="<?php echo $_POST['lastname']; ?>">
<input type="hidden" name="email" value="<?php echo $_POST['email']; ?>">

如果这仍然不起作用,isset()你的帖子变量:

if(isset($_POST['firstname'],$_POST['lastname'],$_POST['email'])) {
   $firstname = $_POST['firstname'];
   $lastname  = $_POST['lastname'];
   $email     = $_POST['email'];

   echo '<input type="hidden" name="firstname" value="$firstname">';
   echo '<input type="hidden" name="lastname" value="$lastname">';
   echo '<input type="hidden" name="email" value="$email">';
}

答案 3 :(得分:0)

在输入文本字段中,由于缺少echo,值为空。您需要添加echo才能在表单中打印值。这样它就可以发送到另一个页面了。

答案 4 :(得分:0)

第二个选项是您可以在每个页面的顶部使用session_start()。 并在会话中存储变量的值。

$_SESSION['name'] = "value_of_session"// in your case that is POST data

这可以在下一页中使用,您不需要包含hidden个字段。

最重要的是你必须写

<?php session_start()  ?> // in each(you've three) page.