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

0

У меня проблема с одним из моих 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 не нацелены на вышеуказанный код. они передаются в другой блок кода, чтобы выбрать, какой контент должен быть загружен. кроме того, в другом приложении, где я использую эту настройку, он отлично работает, не бросая никаких предупреждений.

edit: пример нерабочего процесса выглядит следующим образом: в 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, загружается без? mod = обзор, и все это peacy. как только я нажимаю ссылку обзора, чтобы загрузить обзор "mod" (который теперь является пустым файлом, содержащим только слово "тест"), я получаю предупреждения.

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

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

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

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

  • 0
    Вы должны привести нерабочий пример (с $ _GET) и значение, которое вы найдете в своей переменной, при небольшой отладке.
  • 0
    может быть, вы можете получить ответ здесь stackoverflow.com/questions/4572241/…
Показать ещё 1 комментарий
Теги:
warnings
readdir
opendir
dir

1 ответ

0

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

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

спасибо за то, что посмотрел на него! - MisterP

Ещё вопросы

Сообщество Overcoder
Наверх
Меню