Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 分割背景处理_Php - Fatal编程技术网

Php 分割背景处理

Php 分割背景处理,php,Php,我不是PHP专家,所以请容忍我 如果我有一个页面(start.php),其中包含一个文本框和一个提交按钮,用户应该会看到 如何将服务器端指向后台的特定php文件(用户看不到),该文件包含进一步的说明。比如说, 以下是非常简化的示例,它们并不反映实际文件的复杂性。假设(process1.php)创建一个包含字符串“process1已使用”的会话,(process2.php)创建一个包含“process2已使用”的会话 现在,如果(start.php)中的文本框为空,则应使用“process1.ph

我不是PHP专家,所以请容忍我

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

如何将服务器端指向后台的特定php文件(用户看不到),该文件包含进一步的说明。比如说,

以下是非常简化的示例,它们并不反映实际文件的复杂性。假设(process1.php)创建一个包含字符串“process1已使用”的会话,(process2.php)创建一个包含“process2已使用”的会话

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

这样的想法可以用php来实现吗?应该用php来实现吗?如果可以,如何实现?如果没有,我应该怎么做?i、 e.将复杂的流程拆分为可能的多个文件,以使开发人员在将来的维护工作中更轻松


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

我认为您所说的是后期处理,而不是后台处理

您可以使用if-else-around include(提交后) 这是给你的一张假照片

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

}
if(){
$accessKey='1234';
if(){
包括进程1
}否则{
包括进程2
}
}

我建议您查看并搜索有关谷歌的更多教程

如果您真的想让php变得更简单、更易于维护,那么应该开始使用面向对象编程


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

最常用的方法是将您的输入元素放在表单元素中,表单元素的动作是一个.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设计使得未来的工作比传统样式的脚本更加模块化和可扩展

编辑


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

如果用户以某种方式发现“start.php”指向“process1.php”或“process2.php”,那么他/她将能够发现,他/她只需在浏览器地址栏中键入“process1.php”或“process2.php”。如何停止?在if-else语句中设置一个访问密钥,并在进程文件中检查该访问密钥。勾选编辑