如何将表单值传递到其他表单的下一页?
我在中有这个代码
<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>
在其他2页中,以及在我想通过电子邮件发送所有这些字段的最后一页中,我尝试了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
在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>
您忘记了echo
您的变量。
<input type="hidden" name="firstname" value="<?php echo $_POST['firstname']; ?>">
更新:
你有两个选择:
- 将数据存储到
session
,然后检索到另一个页面 使用
query string
传递数据。header('Location: dear-'.$_POST['firstname'].'.php?firstname='.$_POST['firstname'].'&lastname='.$_POST['lastname'].'&email='.$_POST['email']);
使用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">';
}
在输入文本字段中,由于缺少echo
,值为空。你需要添加echo
来打印表单中的值。这样它就可以发送到另一个页面。
第二个选项是可以在每个页面的顶部使用session_start()
。并将变量的值存储在会话中。
$_SESSION['name'] = "value_of_session"// in your case that is POST data
这可以在下一页中使用,您不需要包括hidden
字段。
最重要的是你必须写
<?php session_start() ?> // in each(you've three) page.