0

抱歉,如果这个问题已经被问过......

我需要将在form1中输入的数据通过URL发送到form2,form2从URL读取数据,填充form2的字段,提交,然后重定向到感谢页面。

我正在考虑通过 URL 中的 GET 发送信息。我不想让用户看到 form2,只需要 form1,如果成功则显示感谢页面。

我确实使用以下方法尝试过...

索引.php

<?php
session_start();
?>
<form method="POST" name="test" id="test" action="process.php">
<label for="fname">First name</label>
<input type="text" name="fname" id="fname" /><br />

<label for="lname">Last name</label>
<input type="text" name="lname" id="lname" /><br />

<label for="email">Email</label>
<input type="text" name="email" id="email" /><br />

<input type="submit" value="Submit" />
</form>

进程.php

<?php
session_start();

//Collect data set in the URL
if (isset($_POST['fname'])) { $fname = trim($_POST['fname']); }
if (isset($_POST['lname'])) { $lname = trim($_POST['lname']); }
if (isset($_POST['email'])) { $email = trim($_POST['email']); }

// Prepare web to lead link 
$url = 'success.php?fname='.$fname.'&lname='.$lname.'&email='.$email;

// GO!
$ch = curl_init($url);
curl_exec($ch);
curl_close($ch);
?>

成功.php

<?php
session_start();

//Collect data set in the URL
if (isset($_GET['fname'])) { $fname = trim($_GET['fname']); }
if (isset($_GET['lname'])) { $lname = trim($_GET['lname']); }
if (isset($_GET['email'])) { $email = trim($_GET['email']); }
?>
<!DOCTYPE html>
<html>
<head>
<title>Form test</title>
</head>
<body>
<form>
<label for="fname">First name</label>
<input type="text" name="fname" id="fname" value="<?php echo isset($fname); ?>" /><br />

<label for="lname">Last name</label>
<input type="text" name="lname" id="lname" value="<?php echo isset($lname); ?>" /><br />

<label for="email">Email</label>
<input type="text" name="email" id="email" value="<?php echo isset($email); ?>" />
</form>
</body>
</html>

index.php 为form1,process.php 收集数据并提交form2,success.php 为form2

有什么建议么?

4

2 回答 2

2

在 index.php 中提交的表单内容将使用 POST 方法传输到 process.php,在 process.php 中,它准备链接并使用 header()(而不是 curl)将用户重定向到 success.php,然后在success.php,表单输入字段是通过 using 预先填充的<?php if(isset($fname)) echo $var; ?>(您正在执行<?php echo isset($fname); ?>的操作将根据条件简单地输出 1 或 2)

更改后的代码应如下所示(经过测试)

进程.php

<?php
session_start();

//Collect data set in the URL
if (isset($_POST['fname'])) {   $fname = trim($_POST['fname']); }
if (isset($_POST['lname'])) {   $lname = trim($_POST['lname']); }
if (isset($_POST['email'])) {   $email = trim($_POST['email']); }

// Prepare web to lead link 
$url = 'success.php?fname='.$fname.'&lname='.$lname.'&email='.$email;

// GO!
header("Location: $url");
?>

成功.php

<?php
session_start();

//Collect data set in the URL
if (isset($_GET['fname'])) { $fname = trim($_GET['fname']); }
if (isset($_GET['lname'])) { $lname = trim($_GET['lname']); }
if (isset($_GET['email'])) { $email = trim($_GET['email']); }

?>
<!DOCTYPE html>
<html>
<head>
<title>Form test</title>
</head>
<body>
<form>
<h2> Submitted Form </h2>
<label for="fname">First name</label>
<input type="text" name="fname" id="fname" value="<?php if(isset($fname)) echo $fname; ?>" /><br />

<label for="lname">Last name</label>
<input type="text" name="lname" id="lname" value="<?php if(isset($lname)) echo $lname; ?>" /><br />

<label for="email">Email</label>
<input type="text" name="email" id="email" value="<?php if(isset($email)) echo $email; ?>" />
</form>
</body>
</html>

我希望这有帮助。祝你好运!

于 2013-06-25T16:56:13.840 回答
1

您可以使用 POST 发送数据,然后将其保存到 SESSION,因此可以从您的任何页面访问;用户仍然可以看到数据,但需要使用开发人员工具或 Firebug 进行更多工作。

于 2013-06-25T16:30:44.080 回答