Работа на локальном хосте, но сервер возвращает «Не удалось открыть поток: нет такого файла или каталога» - PullRequest
0 голосов
/ 21 сентября 2010

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

Предупреждение: include (/var/chroot/home/content/16/5976816/html/inc/header.php) [function.include]: не удалось открыть поток: Нет такого файла или каталога в /home/content/16/5976816/html/vtr/test/index.php в строке 49

Это скрипт, который я использую:

<?php

    // Include the header:
    include($_SERVER['DOCUMENT_ROOT'] . '/inc/header.php');

    ?>

    <div id="contents">
        <div id="content">

            <?php
            // Define our array of allowed $_GET values
            $pass = array('intro','about','vincent-tran','philip-roggeveen','estate-planning','criminal-case','personal-injuries','bankruptcy','inmigration','deportation','family-law','litigation','corporations-and-llcs', 'payments','consultation','request-callback','contact-us');
            // If the page is allowed, include it:
            if (in_array($_GET['id'], $pass)) {
                include ($_SERVER['DOCUMENT_ROOT'] . '/inc/' . $_GET['id'] . '.php');
            }
            // If there is no $_GET['id'] defined, then serve the homepage:
            elseif (!isset($_GET['id'])) {
                include ($_SERVER['DOCUMENT_ROOT'] . '/inc/intro.php');
            }
            // If the page is not allowed, send them to an error page:
            else {
                // This send the 404 header
                header("HTTP/1.0 404 Not Found");
                // This includes the error page
                include ($_SERVER['DOCUMENT_ROOT'] . '/inc/error.php');
            }
            ?>

        </div>
    </div>
    <!-- end OutsideWrap-->

    <?php
    // Include the footer:
    include($_SERVER['DOCUMENT_ROOT'] . '/inc/footer.php');
    ?>

Ответы [ 3 ]

0 голосов
/ 21 сентября 2010
 if (strpos($system_folder, '/') === FALSE)
{
    if (function_exists('realpath') AND @realpath(dirname(__FILE__)) !== FALSE)
    {
        $system_folder = realpath(dirname(__FILE__)).'/'.$system_folder;
    }
}
else
{
    // Swap directory separators to Unix style for consistency
    $system_folder = str_replace("\\", "/", $system_folder); 
}

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

просто замените $ system_folder на имя папки вашего сайта, как если бы это было в htdocs / somewebapp

$systemfolder = "somewebapp";
0 голосов
/ 21 сентября 2010

Спасибо вам, ребята, за вашу помощь, я не использовал правильный путь.

<?php

            // Define our array of allowed $_GET values
            $pass = array('intro','about','vincent-tran','philip-roggeveen','estate-planning','criminal-case','personal-injuries','bankruptcy','inmigration','deportation','family-law','litigation','corporations-and-llcs', 'payments','consultation','request-callback','contact-us');
            // If the page is allowed, include it:
            if (in_array($_GET['id'], $pass)) {
                include ($_SERVER['DOCUMENT_ROOT'] . '/vtr/today/inc/' . $_GET['id'] . '.php');
            }
            // If there is no $_GET['id'] defined, then serve the homepage:
            elseif (!isset($_GET['id'])) {
                include ($_SERVER['DOCUMENT_ROOT'] . '/vtr/today/inc/intro.php');
            }
            // If the page is not allowed, send them to an error page:
            else {
                // This send the 404 header
                header("HTTP/1.0 404 Not Found");
                // This includes the error page
                include ($_SERVER['DOCUMENT_ROOT'] . '/vtr/today/inc/error.php');
            }
            ?>

Теперь работает просто отлично.

0 голосов
/ 21 сентября 2010

Ошибка показывает, что файл, который вы хотите включить, не найден.

Убедитесь, что:

  • вы указываете правильный путь
  • каталог имеет права доступа, chmod на 755

Вы можете проверить разрешенный путь, повторив его:

echo $_SERVER['DOCUMENT_ROOT'] . '/inc/header.php';

И, насколько я помню, вам не нужно / после $_SERVER['DOCUMENT_ROOT']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...