在页面之间传递php变量

时间:2016-09-30 21:57:03

标签: php redirect web

我正在尝试将变量从表单传递到网站页面。以下是我要遵循的指南: https://www.jotform.com/help/213-Send-POST-Data-From-JotForm-Using-PHP-in-Custom-Thank-You-Page

以下是我的redirect.php页面上的代码:

   <?php
     $answers = $_POST;
      $url1 = "http://www.example.com/results";

      $var1 = "?user_email =".urlencode($answers[user_email]);
      $var2 = "&input_63 =".urlencode($answers[input_63]);
      $var3 = "&input_64 =".urlencode($answers[input_64]);
      $var4 = "&input_65 =".urlencode($answers[input_65]);
      $var5 = "&input_66 =".urlencode($answers[input_66]);
      $var6 = "&input_67 =".urlencode($answers[input_67]);
      $var7 = "&input_68 =".urlencode($answers[input_68]);
      $var8 = "&input_69 =".urlencode($answers[input_69]);
      $var9 = "&input_70 =".urlencode($answers[input_71]);
      $var10 = "&input_71 =".urlencode($answers[input_71]);
      $var11 = "&input_55 =".urlencode($answers[input_55]);
      $var12 = "&input_56 =".urlencode($answers[input_56]);
      $var13 = "&input_57 =".urlencode($answers[input_57]);
      $url2=$url1.$var1.$var2.$var3.$var4.$var5.$var6.$var7.$var8.$var9.$var10.$var11.$var12.$var13;
      header("location:$url2");
    ?>

变量在页面上显示为''。

我不知道该怎么做,非常感谢帮助。

3 个答案:

答案 0 :(得分:1)

如果您能够将输入名称更改为数组,则更简单。如果没有,那么您可以通过多种方式传递数据。使用会话:

session_start();
$_SESSION['answers'] = $_POST;
header("location: $url1");

然后在下一页:

session_start();
$answers = $_SESSION['answers'];
echo $answers['user_email'];

我不会这样做,但如果你坚持使用URL方法,那么这就容易多了:

$query = http_build_query($_POST);
header("location: $url1?$query");

http_build_query()将对URL进行编码并构建字符串。

答案 1 :(得分:0)

在php中将变量从表单传递到php页面非常简单

首先是你的表格

<form method="POST" action="page_to_send_data_to.php">
  <input type="" name="something" value=""></input>
  <input type="" name="somethingelse" value=""></input>
  <input type="submit"></input>
</form>

然后在您提交的页面

<?php 
if(!isset($_POST['something']) {
    $var1 = $_POST['something'];
    $var2 = $_POST['something'];
}
echo $var1.' '.$var2;
?>

答案 2 :(得分:0)

您的网址可能因空格而损坏,您没有将input_63设置为任何内容,因为您以空格结尾,您设置input_63_(使用下划线,空格转换为下划线通过php的解析逻辑),我打赌这不是你在以下脚本中寻找的东西。并且手动停止查询,对于绝大多数情况,您应该使用http_build_query。像

$url2=$url1.'?'.http_build_query(array('input63'=>$answers[input_63],'input_64'=>$answers[input_64]))