我的问题如下,如果有人可以帮助解释为什么会发生以下情况,以及如何解决它;这将是惊人的!
我的问题的长短是我已经编写了一些代码(在主脚本中完全有效!),但我需要将此代码放在多个脚本中。因此,我尝试将此代码放入“包含”文件中。
执行包含文件时,只有 'echo "TEST";' 从'$_GET['ffd'];' 变量被写入 HTML 页面。我对它的重要性感到非常困惑 - 因为其他内容应该写入页面,无论如何......'$_GET['ffd'];'的{ _ _ }下方的'echo'语句 永远不会写入 HTML 页面。
我知道这些文件存在,因为当脚本在主脚本(不包含包含)中运行时,它会找到文件并将表单正确放置在 HTML 页面上。
这是我一直在使用的主脚本中的包含。(当我将代码从主脚本移动到包含文件时)
include("includes/forcedlfile.inc");
当在主 PHP 脚本或包含的 .inc 文件中运行时,包含文件的内容与底部显示的 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>";
}
}
如果我将文件放在包含和主脚本中并提交表单(来自主脚本),我最终会在屏幕上出现两个“TEST”,并且只有一个表单提交按钮 - 当我应该有两个.