如何用php构建服务器端脚本

时间:2015-04-11 10:03:57

标签: php forms server

我正在尝试启动在线服务。用户填写表单提交,然后转到另一页。在第二页,他们选择一项服务。从那个页面,他们转到第3页。我想在3页中这样做,以鼓励用户完成序列(他们已经按时间顺序投入第2页)。

我怎样才能更好地将数据从第1页发送到第3页? 到目前为止,我只是将数据从第1页发送到服务器端php脚本,将该数据发送到第2页,然后重复该过程,直到第3页。是否有更合适的方法来实现此目的?

表单提交的代码是

<?php
$varRedirect = "order.php";

if(isset($_POST["submit"]) )
{

  $var1 = $_POST["element_1"];
    $var2 = $_POST["element_1"];
      $var3 = $_POST["element_1"];
        $var4 = $_POST["element_1"];
          $var5 = $_POST["element_1"];
            $var6 = $_POST["element_1"];
              $var7 = $_POST["element_1"];
                $var8 = $_POST["element_1"];
                  $var9 = $_POST["element_1"];
}

/* begin switch logic */


redirect($varRedirect."?var1=".$var1."&var2=".$var2."&var3=".$var3."&var4=".$var4."&var5=".$var5."&var6=".$var6."&var7=".$var7."&var8=".$var8."&var9=".$var9);
/* functions */
function redirect($url, $statusCode = 303)
{
header('location: ' .$url, true, $statusCode);
die();
}
?>

3 个答案:

答案 0 :(得分:1)

推荐使用会话。在那里,您可以通过页面存储用户的数据。 http://php.net/manual/en/features.sessions.php

答案 1 :(得分:1)

如果您更喜欢重定向,则可以使用http_build_query

简化流程
$params = $_POST;
unset($params['submit']); // exclude 'submit' if you don't need it
$query = http_build_query($parms); 
redirect($varRedirect."?$query);

检查不好,但你可以看到这个想法。

答案 2 :(得分:1)

哇!除非这是一个搜索表单,否则不要使用get so send表单!在页面之间使用POST发送数据!

现在你的解决方案很少:

  1. 简单易用的解决方案是使用JavaScript(例如一些jQuery插件)并创建一个包含3个表单的页面。然后通过javascript验证并在页面上显示表单,并将数据存储在javascript变量中。在最终表格上将其发送到数据库。
  2. 序列化表单的数据,并将表单的数据存储在用户的会话中。通过这种方式,您将获得每页上的数据。在最后一个表单上,只需使用收集的数据并清除会话。
  3. 序列化表单的数据并存储在cookie中。
  4. 如果需要对表单进行完全控制和统计,可以在每个表单提交后将数据插入数据库。第一个表单提交将从数据库返回唯一ID。然后,您可以使用GET REDIRECT并在网址后附加?some_id=332,并使用?some_id=332将每个下一个表单提交到数据库。这样,您不需要在表单之间传递数据。您可以通过?some_id=332始终从数据库中获取它。此外,用户可以这样进行刷新,下一个/上一页编辑。您只需要检查网址中是否提供了?some_id=332,如果是,则从数据库加载数据。