Перейти к контенту
  • 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 не выполняется в раз.

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

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

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

Гость
Ответить на вопрос...

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

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

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

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

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

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

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

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