Php opendir () выдает предупреждение при использовании GET

У меня проблема с одним из моих приложений PHP. Я использую следующий блок кода для включения моих функций в приложение:

    // Opening the directory where the functions are located and reading the contents
if (is_dir(__FDIR__)){
if ($dh = opendir(__FDIR__)){
while (($file = readdir($dh)) !== false){

if ($file != "." && $file != "..") {

//include all files found in the functions directory
include_once(__FDIR__.$file);

}

}
closedir($dh);
}
}

это нормально работает, но как только я загружаю URL с параметрами $ _GET в URL, я получаю следующее предупреждение:

    Warning: readdir(): 11 is not a valid Directory resource in C:\xampp\htdocs\portcms\functions.php on line 6
Warning: closedir(): 11 is not a valid Directory resource in C:\xampp\htdocs\portcms\functions.php on line 16

странная вещь здесь в том, что параметры $ _GET не нацелены на приведенный выше код. они передаются в другой блок кода, чтобы выбрать, какой контент div должен быть загружен.
кроме того, в другом приложении, где я использую эту настройку, она работает отлично, без каких-либо предупреждений.

редактировать: нерабочий пример выглядит следующим образом:
в index.php у меня есть следующий код:

    <?php

//starting the session;
session_start();

//getting required files;
require_once('fileloc.php');                            //file locater
require_once(__CONFIG__);                       //config file;
require_once(__FUNCTIONS__);                //function loader-file;
require_once(__CDIR__."class.db.php");      //database class for database manipulation (replace with class-loader?);

//verifying the logged on user;
$ver = login($_SESSION['username'], $_SESSION['pass']);
if (!isset($ver) || $ver != 1) {

//could not verify user, destroying session and return to login screen;
session_destroy();
header('location: login.php');

}
//building the page;
require_once(__MDIR__. "header.php");
if ($ver == 1) {
require_once(__MDIR__."main.php");
}
echo __FDIR__.'overview.php';
require_once(__MDIR__. "footer.php");

?>

который включает в себя мои файлы конфигурации, а также мой файл определения (filelocater).
он также включает main.php, в котором есть следующий код:

    <div class="container">
<div class="bar">
<p>welcome: <b><?php echo $_SESSION['username']; ?> |  <a href="logout.php">logout</a></b></p>
</div>

<div class="nav">
<ul>
<li><a href="?mod=overview">overview</a></li>
<!--<li><a href="">settings*</a></li>-->
<li><a href="">pages</a></li>
<li><a href="">portfolio management</a></li>
<!--<li><a href="">themes*</a></li>
<li><a href="">users*</a></li>
<li><a href="">plugins*</a></li>-->
</ul>
</div>

<div class="main">
<?php
if (isset($_GET) && !empty($_GET['mod'])) {
clean_input($_GET['mod']);

include_once(__MDIR__.$mod.'.php');
}
?>
</div>
</div>

нет, если я вхожу в index.php загружается без? мод = обзор и все peacy. как только я нажимаю на ссылку обзора, чтобы загрузить «мод» обзора (который пока является пустым файлом, содержащим только слово «тест»), я получаю предупреждения.

чтобы убедиться, что не было проблем с моей константой, которую я обменял FDIR в functions.php для жестко закодированной строки пути к каталогу. это также не устраняет предупреждение.
Еще одна странная вещь заключается в том, что функции загружаются так, как должны, даже если появляется предупреждение. например, функция, которая проверяет, является ли логин действительным, загружается через эту функцию. и вроде бы грузится без проблем

надеюсь, я предоставил достаточно информации. в противном случае, дайте мне знать, чтобы я мог выложить больше кодекса.

Также обратите внимание, что я новичок в Stackoverflow, поэтому, возможно, не все сделал правильно. Однако я исследовал множество подобных проблем здесь и в остальной части Интернета, чтобы найти решение.

заранее спасибо

0

Решение

Я выяснил, в чем причина проблемы.
в моей папке функций у меня был скрипт с именем mainloader.php
это содержало некоторое вне объявления функции (которое я забыл удалить после переписывания вещи в функцию).

по общему признанию я только узнал, что это была проблема, в то время как я пытался решить другую проблему, где div не был загружен в его надлежащем месте, но в начале индексного документа. когда я удалил оставшийся код, div вернулся на место, и загрузчик функции прекратил выдавать ошибки.

спасибо, что заглянул в это все же!
— МистерП

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector