拆分后台处理

时间:2011-04-18 17:44:27

标签: php

我不是PHP专家,所以请耐心等待。

如果我有一个页面(start.php),其中包含用户应该看到的文本框和提交按钮。

如何将服务器端指向后台(用户未看到)的特定php文件,其中包含更多说明。例如,

以下是非常简化的示例,它们并不反映实际文件的复杂性。让我们说(process1.php)创建一个包含字符串“process 1 was used”的会话,并且(process2.php)创建一个包含“使用过程2”的会话。

现在,如果(start.php)中的文本框为空,则应使用“process1.php”文件,如果(start.php)中的文本框已填满,则应使用“process2.php”文件。然后每个应该转到用户应该看到的“finish.php”页面,该页面将回显由用户在屏幕上的“process1.php”或“process2.php”创建的会话内容。见。

这样的想法可以用php完成,如果用php完成这样的事情,如果是的话,怎么样?如果不是,我该怎么做呢?即,将复杂的流程拆分为可能的多个文件,以便将来作为开发人员更容易进行维护,以便进行维护?

请注意,用户不应直接访问或查看process1.php或process2.php。

3 个答案:

答案 0 :(得分:1)

我认为你所说的是后期处理而不是后台处理。

你可以使用if else around include(提交后) 这是一个伪你的

if(<form submitted>){
$accessKey = '1234';
    if(<text box empty>){
    include process1
    }else {
    include process2
    }

}

答案 1 :(得分:1)

我建议您查看http://php.net/manual/en/language.oop5.php并在google上搜索更多教程。

如果你真的想在php中使事情更容易和更易于维护,你应该开始使用面向对象的编程。

然后,您可以让一个类分发您的所有请求,另一个类来处理它们,第三个类来呈现结果;)

答案 2 :(得分:1)

最常见的方法是将输入元素放在表单元素中,该表单元素将单个.php文件作为其操作。 <form action="process.php">。您很可能希望在那里完成处理逻辑:

if(strlen($_GET['inputname']))
{
    include('process1.php');
}
else
{
    include('process2.php');
}

现在,已经说过,使用OO概念,有很多更好的方法来实现它。例如:

form.php的:

class MyForm
{
    private $_val;
    public __construct()
    {
        $this->_val = null;
    }

    public function process()
    {
        $this->_val = isset($_GET['txtfield']) ? $_GET['txtfield'] : null;
        if(strlen($this->_val) > 0)
        {
            $this->processEmpty();
        }
        else
        {
            $this->processText();
        }
    }

    public function processEmpty()
    {
        // do your processing if text field is empty here
    }

    public function processText()
    {
        // do your processing with input here
    }
}

然后你的process.php文件看起来像这样:

require_once('myform.php');
$f = new MyForm();
$f->process();

我很可能在构建系统之前开始审核OO概念。遵循OO设计使得很多对于未来的工作而言比传统样式脚本更加模块化和可扩展。

修改

免责声明:上面的代码只是一个示例 - 我实际上没有尝试运行它,所以它可能根本不起作用;)