Перейти к контенту
  • 0

Проблемы IPB 2.2.2 с PHP v5.2.3


Mielofon

Вопрос

Код:

index1.php:

PHP:

 

<?php
//phpinfo();


echo '<p>1 Hello World</p>';
require_once( 'init.php' );
echo '<p>2 Hello World</p>';
require_once( '.\init.php' );
echo '<p>3 Hello World</p>';
?>

 

 

приводит к тому, что выводится:

 

Код:

1 Hello World

2 Hello World
ПРЕДУПРЕЖДЕНИЕ: [2] require_once(.\init.php) [function.require-once]: failed to open stream: No such file or directory (Строка: 8 файла C:\Inetpub\test\index1.php)

 

т.е. файл init.php есть в том же каталоге, что и index1.php, но вот обнаруживать его как require_once( '.\init.php' ); отказывается Sad

 

Тут фрагмент не моего кода (IPB форум), так что править его не стоит и вина явно в том, что я что то не так поставил настроил.

 

Если кто знает как решить эту проблему именно на IIS+PHP, то помогите плиз, а то я замаялся уж - на 4х форумах посвящённых PHP не помогли.

 

PS Apache и Linux просьба не предлагать. '.\' менял на './' и '.\\' - эффект тот же.

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

Нет не извращался чесно:D

Проще поднять апатч под винды и все такое.

Создать в апатче домен либо совпадающий с IP тачки. Либо любой другой если есть машина с DNS на ней потом прописать адрес сайта ;)

 

П.С.

require_once( '.\init.php' ); я просто не уверен что твой IIS понимает этот путь! поиграйся попробуй полный вида. С:\и т.д. Поставь слэш в другую сторону:) но при этом убрав точку! И вообще зачем тебе какието слеши если эти файлы в одной папке????

 

require_once( 'init.php' );

require( 'init.php' );

include

include_once

Изменено пользователем g-kat
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Нет не извращался чесно:D

Проще поднять апатч под винды и все такое.

Создать в апатче домен либо совпадающий с IP тачки. Либо любой другой если есть машина с DNS на ней потом прописать адрес сайта ;)

 

П.С.

require_once( '.\init.php' ); я просто не уверен что твой IIS понимает этот путь! поиграйся попробуй полный вида. С:\и т.д. Поставь слэш в другую сторону:) но при этом убрав точку! И вообще зачем тебе какието слеши если эти файлы в одной папке????

 

require_once( 'init.php' );

require( 'init.php' );

include

include_once

А я сразу сказал, что ни линух, ни апач не предлагать, потому что ASP ещё у нас..

Вертеть слэши и ставить их по два я пробовал - те же яйца.

 

Да и поставить слэш в другую сторону я просто не готов - это ж проблема в исходниках IPB. Ну поправлю я их, а дальше что? После обновления опять править?

 

Чудны дела твои господи:

require_once( 'c:\inetpub\test\init.php' );

require_once( 'c:/inetpub/test/init.php' );

require_once( '../../inetpub/test/init.php' );

require_once( './../../inetpub/test/init.php' );

прокатывают на ура..

 

require_once( '../test/init.php' );

ошибка

 

Так от какого каталога откладывается относительный путь то?

Не домашний каталог сайта и не каталог той html которую вызываем точно.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
от текущего. От того, в котором находится вызванный скрипт.
Ссылка на комментарий
Поделиться на других сайтах

  • 0
от текущего. От того, в котором находится вызванный скрипт.

Невыходит так.

 

Домашний каталог сайта test.s.ru: c:\inetpub\test\

Скрипт http://test.s.ru/index1.php вызывает init.php, который находится в том же каталоге находится в том же каталоге.

 

И вот:

 

require_once( 'init.php' );

require_once( 'c:\inetpub\test\init.php' );

require_once( 'c:/inetpub/test/init.php' );

require_once( '../../inetpub/test/init.php' );

require_once( './../../inetpub/test/init.php' );

 

срабатывают, а:

 

require_once( '.\init.php' );

require_once( '../test/init.php' );

 

Выходят с ошибкой. Хотя по идеи откладывается путь от c:\inetpub\test\, то 'c:/inetpub/test/../test/init.php' как раз и будет 'c:/inetpub/test/init.php'.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
require_once( '.\init.php' ); - это я вообще впервые в жизни вижу если честно!

ipb_2_2_2/upload/index.php 54я строчка - можете в любой момент глянуть. Только не спрашивайте здесь "что такое ipb" :-)

 

require_once( '../test/init.php' ); нахрен эти извраты?:D

Это чисто в рамках эксперимента.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
require_once( './init.php' );

Это у меня 54 строчка:D

Может у Вас билд не из клиент центра?;)

Нее. Всё правильно. Это я ошибся с направлением слэша. Но не работает ни ./ ни .\

 

 

 

Маразм крепчает :-(

 

Сайт http://s-test.sprut.ru домашняя папка c:\inetpub\test\

 

hemindex.php:

<?php
error_reporting(E_ALL);
$d = date("i:s");
echo $d."<br />";
echo '<p>1 Hello World</p>';
$t = 1;
require_once( './heminit.php' );
echo '<p>2 Hello World</p>';
$t = 2;
require_once( './heminit.php' );
echo '<p>3 Hello World</p>';
?>

 

heminit.php:

<?php
 echo "init$t ";
?>

 

результат:

03:29

1 Hello World

Warning: require_once(./heminit.php) [function.require-once]: failed to open stream: No such file or directory in C:\Inetpub\stest\hemindex.php on line 7

Fatal error: require_once() [function.require]: Failed opening required './heminit.php' (include_path='.\;C:\Inetpub\sapromat_test.sprut.ru\') in C:\Inetpub\stest\hemindex.php on line

 

Но те же 2 php файла помещённые в подкаталог h\ и получаем по http://s-test.sprut.ru/h/hemindex.php :

05:32

1 Hello World
init1

2 Hello World

3 Hello World

 

Мда..

Изменено пользователем Mielofon
Ссылка на комментарий
Поделиться на других сайтах

  • 0

 

hemindex.php:

<?php
error_reporting(E_ALL);
$d = date("i:s");
echo $d."<br />";
echo '<p>1 Hello World</p>';
$t = 1;
require_once( './heminit.php' );
echo '<p>2 Hello World</p>';
$t = 2;
require_once( './heminit.php' );
echo '<p>3 Hello World</p>';
?>

э

у вас же написано require_once - он позволяет только один раз загрузить поключаемый модуль, если пробуете второй раз его использовать, то выдает ошибку, пользуйте include(), или просто require()

Ссылка на комментарий
Поделиться на других сайтах

  • 0
э

у вас же написано require_once - он позволяет только один раз загрузить поключаемый модуль, если пробуете второй раз его использовать, то выдает ошибку, пользуйте include(), или просто require()

 

Проблема не в том, что require_once не выполняется раз. Проблема в том,что require_once не выполняется в раз.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.