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

StackOverflow https://stackoverflow.com/questions/1416638

  •  06-07-2019
  •  | 
  •  

Вопрос

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

require("../DataBase.class.php"); 

но когда я загружаю скрипт на свой веб-сайт, я получаю это предупреждение

Предупреждение:включить (../DataBase.class.php) [функция.включить]:не удалось открыть поток:Такого файла или каталога нет

Это было полезно?

Решение

Безопасному режиму не нравится "../".Поэтому вы всегда должны использовать что-то вроде

require_once realpath(dirname(__FILE__) . '/..') . '/file.php';

Другие советы

Вероятно, происходит то, что ваш параметр include_path в php.ini отличается на вашем сервере от вашей локальной установки PHP / Apache.Наряду с этим, имейте в виду, что ../ указывает не на текущий каталог, в котором находится файл, а на родительский каталог текущего каталога, в котором вы находитесь.Что я бы посоветовал, так это узнать полный путь к корню вашего документа, а затем включить ваши файлы следующим образом:

<?php

$full_path = "/var/www/htdocs"; // this should be your website's full path
require( $full_path . "/DataBase.class.php" );

?>

Вы ищете файл в родительском каталоге.Если вы хотите, чтобы он был в текущем каталоге, используйте:

require 'Database.class.php';

Возможно, на вашем локальном веб-сервере у вас есть копия в вашем родительском каталоге по какой-то причине, которая не существует на вашем удаленном сервере.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top