Ошибка при инклуде, хотя файл есть

Статус
В этой теме нельзя размещать новые ответы.

Sanchez

Новичок
Ошибка при инклуде, хотя файл есть

В коде:

require_once('../../prepare.inc');

Интерпретатор выдает ошибку:
Warning: require_once(prepare.inc) [function.require-once]: failed to open stream: No such file or directory in G:\server\alien\****\include\standart_classes\CustomActions\EditItemAction.class.php on line 3

Fatal error: require_once() [function.require]: Failed opening required 'prepare.inc' (include_path='.;C:\php5\pear') in G:\server\alien\****\include\standart_classes\CustomActions\EditItemAction.class.php on line 3

Файл 100% существует, к тому же, его правильно инклудит среда разработки (т.к. видно определение классов). Или это может быть связано с тем, что файл, который вызывает ошибку, сам инклудится в том prepare.inc ? Т.е. получает как бы кольцо, но раньше таких проблем не было..
 

SiMM

Новичок
Используйте абсолютные пути.
PHP:
require_once dirname(__FILE__).'/../../prepare.inc';
 

Фанат

oncle terrible
Команда форума
Или это может быть связано с тем, что файл, который вызывает ошибку, сам инклудится в том prepare.inc
если получается кольцо, то пхп так и пишет - ПОЛУЧАЕТСЯ КОЛЬЦО
а если он пишет No such file or directory, то выучить надо английский хотя бы в таком примитивном объеме трех слов

-~{}~ 20.08.07 09:17:

Sanchez
Файл 100% существует,
никто не сомневается, что файл существует.
просто путь к нему надо указывать тот, который есть, а не тот, которого нет.
дело не в файле. а в программисте. который путь указывает.

это может быть связано с тем, что файл, который вызывает ошибку, сам инклудится в том prepare.inc
поясни-ка эту глубокую мысль поподробнее.
у тебя есть файл, prepare.inc
в котором написано include EditItemAction.class.php
а в нем написано include prepare.inc?
 

Sanchez

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

По поводу существования файла - если бы я не был уверен, что указал путь правильно, я бы не писал сюда. Этот файл видит по указанному пути среда разработки - иначе бы она написала, что файл не найден и не подгрузила бы в Intellisence описания классов.

----------
поясни-ка эту глубокую мысль поподробнее.
у тебя есть файл, prepare.inc
в котором написано include EditItemAction.class.php
а в нем написано include prepare.inc?
----------
Да, но не include, а require_once, поэтому в принципе "кольца" не должно быть, я на всякий случай спросил.
 

Фанат

oncle terrible
Команда форума
ню-ню. если хватило ума придумать алгоритм с такими рекурсивными инклюдами, то я не удивлюсь вообще никаким проблемам. просто исходя из образа мышления аффтара

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

Фанат

oncle terrible
Команда форума
Андрейка
Ну как же?
Если я вижу из своего окна винный магазин, то все остальные должны тоже видеть. Ведь смотрят всев одну и ту же сторону - в окно!
 

Sanchez

Новичок
Инклюд я делал исключительно для Intellisence, т.к. иначе среда не распознает что этот файл был проинклуден в другом и не подгружает описания классов, а без интеллисенса работать тяжело. В окончательном варианте само собой это все убирается, но мне интересно ПОЧЕМУ в данном случае интерпретатор не может найти файл.
Ну собственно ничего нового я в этой теме и не узнал, кроме понтов некоторых товарищей)))
 

Фанат

oncle terrible
Команда форума
Sanchez
как это - не узнал? Тебе объяснили, например, пользу знания иностранных языков вообще, и что "failed to open stream" не означает "получает как бы кольцо" - в частности.

А то ты сам-то сообразить не догадался. Ни с понтами, ни без.
 

Sanchez

Новичок
Ой ладно, по существу не можете ответить (кроме Mr_Max, но к сожалению его советы я уже знал и пытался использовать сам), значит надо максимально опустить человека - железная логика)))
Модератору - просьба закрыть эту тему.
 

Фанат

oncle terrible
Команда форума
чувак.
ты задал идиотский вопрос.
и теперь еще обижаешься, что тебя "опустили"?
скромнее надо быть.

закрывать тему я не буду.
вдруг кто-нибудь еще захочет оттянуться.

-~{}~ 20.08.07 12:29:

очередной раз напишу пояснение для тех, кто на основании таких топиков делает вывод, что на пхпклубе "всех опускают".

в интернете полно лохов, которые полагают себя самыми умными, и очень мало действительно умных людей.
различие между ними очень простое.
умный человек, столкнувшись с загадочной ситуацией, которой, по его мнению, никак не может быть, делает две вещи:
1. 10 раз все проверяет и перепроверяет. придя на форум - ПЕРВЫМ ДЕЛОМ предоставляет эти результаты проверок. мол - убедитесь, я не из пальца все высосал. Поскольку сам ПОНИМАЮ, что ситуация дурацкая.
2. Делает все, что ему говорят на форуме и снова предоставляет результаты.

что делает лох?
тоже две вещи
1. Первым делом идет на форум, чтобы ему быстро решили его проблему. причем отвечающие должны сами догадаться по весьма куцому описанию обо всех нюансах, а так же о том, что автор пробовал, и какой получил результат.
2. Если ответ кажется ему глупым или "не по существу", то ответ отбрасывается, а начинаются рассуждения о том, какие все вокруг плохие и "с понтами". И, разумеется, все он читал и все знает.

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

Sokil.Dmytro

Новичок
опускают на зоне. что за базары внатуре. есть же красивый литературный язык. Правильно говорить "унизили применением анального секса"
 

Фанат

oncle terrible
Команда форума
я бы даже сказал, что echo вместо require_once
но товарищ же все знает и все пробовал сам
 

Sanchez

Новичок
Вот это уже более конструктивно.

Не надо судить об уровне знаний человека (лох или не лох) и его опыте по количеству сообщений. У меня возникла проблема, с которой я раньше не сталкивался - самому решить ее не получилось. Я думал может я перепутал уровни вложенности, проверил - правильно. Проблемы с регистром и правами доступа исключены, т.к. я работаю на винде.

Написал следующую строку в EditItemAction.class.php:

<?php

print realpath(dirname(__FILE__) . '/../../prepare.inc');

require_once('../../prepare.inc');

Результат - на картинках.





Как вы видите, по нужному пути файл существует. А ошибка все равно остается.
Я бы мог убрать этот инклуд, т.к. он не нужен реально для работы сайта, но как я говорил - мне он нужен в отладочных целях чтобы работал Intellisence, и просто интересно ОТКУДА берется эта ошибка.
 

Фанат

oncle terrible
Команда форума
Не надо судить об уровне знаний человека (лох или не лох) и его опыте по количеству сообщений.
правильно.
судить надо по содержанию.
что человек пишет - так по нему и судят. только так.
 

Sanchez

Новичок
А не может ошибка возникать из-за того, что пока prepare.inc инклудит EditItemAction.class.php, он заблокирован для чтения (т.к. выполняется), поэтому EditItemAction.class.php не может заинклудить prepare.inc ?
 

Фанат

oncle terrible
Команда форума
require_once('../../prepare.inc');
слушай, ты издеваешься, или как?
тебе раз 15 уже сказали использовать полный путь, но ты все равно упорно пишешь относительный.
это у тебя принцип такой, что ли?

-~{}~ 20.08.07 13:16:

сообщения об ошибках надо приводить полностью.
и ТЕКСТОМ, а не какие-то огрызки на картинках.

свой драгоценный сайт можешь затирать сколько угодно - никому он даром не нужен.
а вот ТЕКСТ сообщения об ошибке, надо приводить ПОЛНОСТЬЮ.
если тебе он ничем не помогает, это еще не значит, что он никому вообще не нужен
 

Sanchez

Новичок
Действительно с полным путем проинклудилось, спасибо. А почему он с относительным не хотел?
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху