Php 对发生在includes&x2B;回声

Php 对发生在includes&x2B;回声,php,include,echo,Php,Include,Echo,我的问题如下,如果有人能帮助解释为什么会发生以下情况,以及如何解决它;那太棒了 我的问题是,我已经编写了一些代码(在主脚本中完全可以工作!),但我需要将这些代码放在多个脚本中。因此,我尝试将此代码生成一个“include”文件 执行include文件时,只有“echo”测试从“$_GET['ffd'];”变量被写入HTML页面。我很困惑为什么它很重要-因为其他的东西应该写在页面上不管。。。“$\u GET['ffd'];”的{uuu}下面的'echo'语句从未写入HTML页面 我知道文件是存在的

我的问题如下,如果有人能帮助解释为什么会发生以下情况,以及如何解决它;那太棒了

我的问题是,我已经编写了一些代码(在主脚本中完全可以工作!),但我需要将这些代码放在多个脚本中。因此,我尝试将此代码生成一个“include”文件

执行include文件时,只有“echo”测试从“$_GET['ffd'];”变量被写入HTML页面。我很困惑为什么它很重要-因为其他的东西应该写在页面上不管。。。“$\u GET['ffd'];”的{uuu}下面的'echo'语句从未写入HTML页面

我知道文件是存在的,因为当脚本在主脚本中运行时(不包括),它会找到文件并正确地将表单放置在HTML页面上

这是我一直在使用的主脚本中包含的内容。(当我将代码从主脚本移动到includes文件时)

在主PHP脚本或include.inc文件中运行时,includes文件的内容与底部显示的PHP脚本的内容相同(即复制和粘贴)

正在执行的脚本:

    //THE BIT THAT ALWAYS ECHO's TO THE HTML PAGE
if(isset($_GET['ffd']))
{
    echo "TEST";

            //OTHER THINGS NOT RELEVANT HERE
}

    //CODE THAT SHOULD BE EXECUTED REGARDLESS OF BEING WITHIN THE MAIN BODY OF THE SCRIPT OR WITHIN AN INCLUDES FILE
$homeworkid_dir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'homeworktasks' . DIRECTORY_SEPARATOR . $chosenhomework;
if (file_exists($homeworkid_dir))
{
    echo "<b>Download Homework Attachments: </b>";
    $attachmentno = 0;
    $contents = array_diff(scandir($homeworkid_dir, 1), array('..', '.', '.htaccess'));
    foreach($contents as $file)
    {
        $attachmentno = $attachmentno + 1;
        $file_dir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'homeworktasks' . DIRECTORY_SEPARATOR . $chosenhomework . DIRECTORY_SEPARATOR . $file;
        $btn = explode(DIRECTORY_SEPARATOR, $file_dir);
        $btn = end($btn);
        $dllink = end($fsh);

    //ONLY WRITTEN TO PAGE WHEN WITHIN THE ORIGINAL SCRIPT, NOT 'INCLUDE' FILE
        echo "<form action='".$dllink."?tsk=".$homeworkid."&ffd=y' method='post'>
        Attachment ".$attachmentno.":
        <input type='hidden' name='dldir' value='".$file_dir."'>
        <input type='hidden' name='homeworkid' value='".$homeworkid."'>
        <input type='submit' value='Click Here To Download: ".$btn."'>
        </form>";
    }
}
//始终回显到HTML页面的位
如果(isset($_GET['ffd']))
{
回声“测试”;
//其他与此无关的事情
}
//应执行的代码,无论其位于脚本主体内还是包含文件内
$homeworkind\u dir=dirname(\uuu文件\uuu)。目录“”分隔符家庭作业。目录分隔符$选择作业;
如果(文件_存在($homeworkind_dir))
{
echo“下载作业附件:”;
$attachmentno=0;
$contents=array_diff(scandir($homeworkind_dir,1),array(“..”,“.”,“.htaccess”);
foreach($file形式的内容)
{
$attachmentno=$attachmentno+1;
$file\u dir=dirname(\uu file\uuu)。目录分隔符。'homeworkstasks'。目录分隔符。$ChosenHome.DIRECTORY\u SEPARATOR.$file;
$btn=explode(目录分隔符,$file\u目录);
$btn=结束($btn);
$dllink=end($fsh);
//仅在原始脚本中写入页面,而不是“包含”文件
回声“
附件“$attachmentno.”
";
}
}

如果我将文件放在包含主脚本中并提交表单(从主脚本),我最终会在屏幕上出现两组“测试”,并且只有一个表单提交按钮-当时,我应该有两个

这可能是因为
目录名(\uu文件\uuuuu)
正在返回当前文件的目录,该目录现在位于
/includes
,因此无法找到该文件


您可以使用
dirname(dirname(\uuu FILE\uuu))
获取父目录。

我已经编辑了您文章中的所有大写字母,但您以后也可以这样做。确定“include”文件中的哪些内容有点难,哪些内容不是。你能编辑你的问题,这样就有两个代码块,一个用于“主脚本”,另一个用于“包含文件”?谢谢你,我以后会使用论坛粗体标记,但是zpr已经回答并修复了我的问题,所以我不会再浪费你的时间让你看一些已经修复的东西:)
    //THE BIT THAT ALWAYS ECHO's TO THE HTML PAGE
if(isset($_GET['ffd']))
{
    echo "TEST";

            //OTHER THINGS NOT RELEVANT HERE
}

    //CODE THAT SHOULD BE EXECUTED REGARDLESS OF BEING WITHIN THE MAIN BODY OF THE SCRIPT OR WITHIN AN INCLUDES FILE
$homeworkid_dir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'homeworktasks' . DIRECTORY_SEPARATOR . $chosenhomework;
if (file_exists($homeworkid_dir))
{
    echo "<b>Download Homework Attachments: </b>";
    $attachmentno = 0;
    $contents = array_diff(scandir($homeworkid_dir, 1), array('..', '.', '.htaccess'));
    foreach($contents as $file)
    {
        $attachmentno = $attachmentno + 1;
        $file_dir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'homeworktasks' . DIRECTORY_SEPARATOR . $chosenhomework . DIRECTORY_SEPARATOR . $file;
        $btn = explode(DIRECTORY_SEPARATOR, $file_dir);
        $btn = end($btn);
        $dllink = end($fsh);

    //ONLY WRITTEN TO PAGE WHEN WITHIN THE ORIGINAL SCRIPT, NOT 'INCLUDE' FILE
        echo "<form action='".$dllink."?tsk=".$homeworkid."&ffd=y' method='post'>
        Attachment ".$attachmentno.":
        <input type='hidden' name='dldir' value='".$file_dir."'>
        <input type='hidden' name='homeworkid' value='".$homeworkid."'>
        <input type='submit' value='Click Here To Download: ".$btn."'>
        </form>";
    }
}