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

how to structure server side script with php

我正在尝试启动在线服务。用户填写表单提交然后转到另一个页面。在第二页,他们选择一项服务。他们从该页面转到第 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();
}
?>

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

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

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

没查好,不过可以看看思路。

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

现在你有几个解决方案:

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