У меня есть 3 файла: home, failed_attempt, login.
Файл home и failed_attempt относятся к файлу входа в систему.
Досадно, что они ошибаются, заявив, что файл входа не существует. home будет генерировать исключение, если я это сделаю, но failed_attempt не будет.
include_once("../StoredProcedure/connect.php"); 
include_once ( "../ без названия / sanitize_string.php");
и если я это сделаю:
  include_once("StoredProcedure/connect.php"); include_once("untitled/sanitize_string.php"); 
происходит противоположное, fail_attempt выдает исключение, но дома, привычно. Как это исправить..
Я говорю, чтобы включить, чтобы перейти на страницу, поставив это ../, и поэтому home.php не нужно идти на одну страницу, поэтому она выдает это исключение ..
Как я могу это сделать, так что оба файла принимают эти вложения как действительные .. возможно, не относительно того, где они размещены .. т.е. без этого ../
Структура каталога:
 PoliticalForum ->home.php ->StoredProcedure/connect.php ->untitled/sanitize_string.php ->And other irrelevant files 
        Вот три возможных решения. Во-вторых, это действительно просто обходные пути, которые используют абсолютные пути умным способом.
1: chdir в правильный каталог
 <?php // check if the 'StoredProcedure' folder exists in the current directory // while it doesn't exist in the current directory, move current // directory up one level. // // This while loop will keep moving up the directory tree until the // current directory contains the 'StoredProcedure' folder. // while (! file_exists('StoredProcedure') ) chdir('..'); include_once "StoredProcedure/connect.php"; // ... ?> 
Обратите внимание, что это будет работать, только если ваша папка StoredProcedure находится в самой верхней директории любых файлов, которые могут содержать файлы, которые она содержит.
2: Используйте абсолютные пути
Теперь, прежде чем вы скажете, что это не переносимо, на самом деле это зависит от того, как вы его реализуете. Вот пример, который работает с Apache:
 <?php include_once $_SERVER['DOCUMENT_ROOT'] . "/StoredProcedure/connect.php"; // ... ?> 
В качестве альтернативы, снова с apache, добавьте следующее в свой .htaccess в корневой каталог:
 php_value auto_prepend_file /path/to/example.php 
Тогда в example.php:
 <?php define('MY_DOC_ROOT', '/path/to/docroot'); ?> 
И, наконец, в ваших файлах:
 <?php include_once MY_DOC_ROOT . "/StoredProcedure/connect.php"; // ... ?> 
3: Установить PHP include_path
См. Руководство для директивы include_path . Если у вас нет доступа к php.ini, это можно установить в .htaccess, если вы используете Apache, а PHP не установлен как CGI, например:
 php_value include_path '/path/to/my/includes/folder:/path/to/another/includes/folder' 
  Такие вещи, как realpath() и __DIR__ являются вашими друзьями, когда дело доходит до создания путей в PHP. 
Realpath http://php.net/manual/en/function.realpath.php
Магические константы http://php.net/manual/en/language.constants.predefined.php
  Поскольку include и require – это языковые конструкции (а не функции), они не нуждаются в скобках.  Вообще говоря, вы должны include чтобы включить «шаблоны» (выходные файлы) и require включения файлов PHP, таких как классы. 
Таким образом, вы можете использовать что-то вроде:
 $sPath = realpath( __DIR__ . '../relative/path/here'); if($sPath) { require_once $sPath; } 
  (используйте dirname(__FILE__) вместо dirname(__FILE__) на PHP <5) 
  Стоит оценить путь, прежде чем пытаться потребовать файл, поскольку realpath() возвращает false, если файл не существует и пытается require false;  выдает ошибку PHP. 
В качестве альтернативы вы можете просто использовать абсолютные пути, такие как:
 require /home/www/mysite.com/htdocs/inc/somefile.php 
Для новичков это поможет понять. Используйте только следующее, основанное на вашем относительном пути:
 //include file directly from parent directory: include_once(dirname(__FILE__) . '/../connect.php'); 
ИЛИ
 //include file from parent's child directory: include_once(dirname(__FILE__) . '/../StoredProcedure/connect.php'); 
ИЛИ
 //include file from own child directory: include_once('StoredProcedure/connect.php'); 
ИЛИ
 //include sibling files from same directory: include_once('connect.php'); 
  Сделайте что-то вроде require(dirname(__FILE__) . '[RELATIVE PATH HERE]'); 
Другие ребята правильно ответили на ваш вопрос, однако я думал, что внес что-то еще: автозагрузчики.
Автозагрузчики позволяют определить функцию, которая будет автоматически включать определенные файлы при попытке использовать класс.
Документация здесь и может объяснить это лучше, чем я могу: http://php.net/manual/en/language.oop5.autoload.php
Поистине рекомендую использовать их, сэкономит вам время и станет лучшей практикой.