【问题标题】:how to structure server side script with php如何用php构建服务器端脚本
【发布时间】:2015-04-11 10:03:57
【问题描述】:

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

【问题讨论】:

  • 哇,这是一个令人印象深刻的缩进 :D 要么将其存储在数组中,要么保留查询字符串,然后使用 http_build_query 代替
  • 新缩进! .... 如果有更多变量,你会怎么做?获得更宽的屏幕?

标签: php forms server


【解决方案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】:

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

    【讨论】:

      【解决方案3】:

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

      现在你有几个解决方案:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-06
        • 1970-01-01
        • 2011-12-07
        相关资源
        最近更新 更多