Ниже приведена моя проблема, если кто-нибудь может объяснить, почему происходит следующее и как это исправить; это было бы потрясающе!Confused over something with with includes + echo
Долг и недостаток моей проблемы в том, что я написал код (который полностью работает, когда в основном скрипте!), Но мне нужно поместить этот код в несколько сценариев. Поэтому я попытался сделать этот код в файле «include».
Когда файл включения выполнен, только «echo» TEST »; из '$ _GET [' ffd ']; переменная записывается на страницу HTML. Я очень смущен, почему это имеет значение, поскольку другие вещи должны быть записаны на страницу независимо от ... выражений «эха» ниже {_ _} из $ _GET ['ffd']; никогда не записываются на страницу HTML.
Я знаю, что файлы существуют, потому что, когда сценарий запускается в основном скрипте (без включений), он находит файлы и правильно размещает их на HTML-странице.
Это включает в себя основной сценарий, который я использовал. (При перемещении кода из основного сценария к включает в себя файл)
include("includes/forcedlfile.inc");
Содержимое перегонных включает в себя файл тождественны содержимое сценария PHP, показанном в нижней части (т.е. скопировать и вставить), когда бежал в основной скрипт PHP или включенный .inc файл.
Скрипт выполняется:
//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» появляющегося на экране, и только кнопка отправки формы ONE - когда у меня должно быть два.
Я удалил All-caps из вашего сообщения, но вы тоже можете это сделать в будущем. Его немного сложно определить, что содержится в файле «include», а что нет. Можете ли вы изменить свой вопрос, так что есть два блока кода, один для «основного сценария», а другой для «включенного файла»? –
Спасибо, я буду использовать ярлыки форума в будущем, однако zpr ответил и исправил мою проблему, поэтому я больше не буду тратить время на то, чтобы вы посмотрели на то, что уже было исправлено :) – Justice