发送到php mailto页面后,我如何将表单数据传递到下一个表单页面? 我的网站上有几个表格,我需要网站访问者进行顺序提交。 “ Form1”将用户数据发送到(PHP Mailto)表单邮件。 邮件的表单的标题(位置)然后指示...

问题描述 投票:0回答:1

我需要一个PHP解决方案来预先填充Form2与以前提交的Form1的数据。

我想要一个滑动的替代方法,可以通过URL传递数据。

形式1:

<form id="form1" action="formMailer.php" method="post"> Name:&nbsp;<input type="text" id="userName" name="userName" value=""> Email:&nbsp;<input type="email" id="userEmail" name="userEmail" value=""> <input type="submit" id="submitButton" name="submitButton" value="Submit">

PHP表单邮件:

<?php $name = $_POST['userName']; $email = $_POST['userEmail']; $message = "\r\nYour Name: " .$name . "\r\nYour Email: " .$email; $subject ="Subject of email"; $mailto = "[email protected]"; $separator = md5(uniqid(time())); $eol = "\r\n"; $headers = "From: ".$name." <".$email.">" . $eol; $headers .= "MIME-Version: 1.0" . $eol; $headers .= "Content-Type: multipart/mixed;". $eol. " boundary=\"" . $separator . "\"" . $eol; $headers .= "This is a MIME encoded message." . $eol . $eol; $body = "--" . $separator . $eol; $body .= "Content-Type: text/plain; charset=\"iso-8859-1\"" . $eol; $body .= "Content-Transfer-Encoding: 8bit" . $eol . $eol; $body .= $message . $eol; mail($mailto, $subject, $body, $headers); header('location: /formFolder/form2.php'); ?>

形式2:

<form id="form2" action="nextAction" method="post">
   Name:&nbsp;<input type="text" id="userName" name="userName" value="">
   Email:&nbsp;<input type="email" id="userEmail" name="userEmail" value="">
   Other Data:&nbsp;<input type="text" id="other_userData" name="other_userData" value="">
<input type="submit" id="submitButton" name="submitButton" value="Submit">
我尝试了一些php“ get”和“ echo”脚本,但是似乎数据在邮件和第二个表单之间丢失了。

使用
header('location: /formFolder/form2.php');

丢失数据。您需要一种方法来持久请求之间的数据。

1。修改
formMailer.php
使用会话

<?php session_start(); // Start the session $name = $_POST['userName']; $email = $_POST['userEmail']; // Store data in session variables $_SESSION['userName'] = $name; $_SESSION['userEmail'] = $email; $message = "\r\nYour Name: " . $name . "\r\nYour Email: " . $email; $subject = "Subject of email"; $mailto = "[email protected]"; $separator = md5(uniqid(time())); $eol = "\r\n"; $headers = "From: " . $name . " <" . $email . ">" . $eol; $headers .= "MIME-Version: 1.0" . $eol; $headers .= "Content-Type: multipart/mixed;" . $eol . " boundary=\"" . $separator . "\"" . $eol; $headers .= "This is a MIME encoded message." . $eol . $eol; $body = "--" . $separator . $eol; $body .= "Content-Type: text/plain; charset=\"iso-8859-1\"" . $eol; $body .= "Content-Transfer-Encoding: 8bit" . $eol . $eol; $body .= $message . $eol; mail($mailto, $subject, $body, $headers); header('location: /formFolder/form2.php'); ?>
php forms post get echo
1个回答
0
投票
2。修改

form2.php

使用会话数据检索和填充表单

<?php session_start(); // Start the session $userName = isset($_SESSION['userName']) ? $_SESSION['userName'] : ''; $userEmail = isset($_SESSION['userEmail']) ? $_SESSION['userEmail'] : ''; // Optionally, clear the session data after using it if you don't need it later // unset($_SESSION['userName']); // unset($_SESSION['userEmail']); ?> <form id="form2" action="nextAction" method="post"> Name:&nbsp;<input type="text" id="userName" name="userName" value="<?php echo htmlspecialchars($userName); ?>"> Email:&nbsp;<input type="email" id="userEmail" name="userEmail" value="<?php echo htmlspecialchars($userEmail); ?>"> Other Data:&nbsp;<input type="text" id="other_userData" name="other_userData" value=""> <input type="submit" id="submitButton" name="submitButton" value="Submit"> </form>

最重要的考虑因素:

课程依靠cookie或url参数来跟踪用户。确保您的网站配置为安全处理会议。

add add更强大的错误处理您的代码,例如在访问它们之前检查$ _ post变量。 sessions有一个默认的到期时间。您可以在PHP设置中进行配置。
提交Form2后,您可以取消设置或破坏会话,因此用户无法重新加载Form2并查看数据。
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.