Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.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文件执行HTML表单操作?_Php_Html_Forms_Post_Include - Fatal编程技术网

使用根目录外的php文件执行HTML表单操作?

使用根目录外的php文件执行HTML表单操作?,php,html,forms,post,include,Php,Html,Forms,Post,Include,我想知道,有几个文件我保存在根目录之外的另一个目录中,我正在尝试使用HTML表单将信息发布到根目录之外的php文件中 可能吗?如果是,如何制作代理脚本。。。web目录中的某些内容,但它所做的只是包含适当的“受保护”文件: DOCROOT/form_handler.php <?php include "../secret/form_handler.php"; 是的,这是可能的。该目录应作为单独的站点托管,然后您可以将文件的绝对URL作为表单操作提供。该文件必须可从web访问。 如果“根目录

我想知道,有几个文件我保存在根目录之外的另一个目录中,我正在尝试使用HTML表单将信息发布到根目录之外的php文件中


可能吗?如果是,如何制作代理脚本。。。web目录中的某些内容,但它所做的只是包含适当的“受保护”文件:

DOCROOT/form_handler.php

<?php
include "../secret/form_handler.php";

是的,这是可能的。该目录应作为单独的站点托管,然后您可以将文件的绝对URL作为表单操作提供。该文件必须可从web访问。
如果“根目录之外”指的是DocumentRoot之外,那么这是不可能的


DocumentRoot中可以有一个基本控制器,它包含或分派操作

在我的网站上,我的每个表单都以以下代码开头:

<form action="action" method="post">
    <input type="hidden" name="i-action" value="do-whatever" />

我使用了
stru\u replace
,以确保黑客无法进入不同的目录。

这不是他的要求。此外,“是的,这是可能的”是最糟糕的回答。当问题包括“这可能吗?”时,如果它在文档根目录中,但不在公共html中,该文件必须从web调用,因此如果可以调用它,例如f.e./onedirunderdocumentroot/form.php,则可以使用它。通常,public_html是document_root,因此它下面的所有内容都可以访问。但我如何使用html表单发布到该文档?@Kalcoder:您需要创建一个从
public_html
目录可见的文件,并将表单发布到该目录。要获得webroot之外的文件以执行,唯一的方法是从webroot内部的文件中包含该文件。-或者可以使用一些奇特的Web服务器配置。好的一点@Leigh,这可以通过mod_重写实现(替换可以是文件系统路径)。如果你感兴趣,你应该提交它作为一个答案:-)我需要能够将信息从一个HTML表单post传递到一个php文件,该文件位于与public_HTML相同级别的文件夹中,因此本质上,发布不到public_HTML中的php文件,这是可能的吗?那么mod_rewrite可能是唯一的解决方案,如上所述,从php文件夹中php文件的表单操作映射notphp文件
<form action="action" method="post">
    <input type="hidden" name="i-action" value="do-whatever" />
if (!empty($_POST['i-action']))
{
    $action = str_replace('.', '', $_POST['i-action']);
    $action = str_replace('/', '', $action);
    if (file_exists("../secret/directory/structure/$action".'.php'))
        require_once("../secret/directory/structure/$action".'.php');
}