Автор Тема: мистика с include  (Прочитано 5060 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Foshvad

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
мистика с include
« : 13 Августа 2002, 18:22:38 »
Наверняка это как-то объясняется, но я ума не приложу как!


1. Создаем файл index.php в котором пишем следующее:


<?
  
chdir(\'./index\');
  include(a.php\');
?>


2. создаем в этой же папке файл a.php в котором пишем: это файл a.php
3. создаем в этой же папке директорию index в которую помещаем файл a.php в котором пишем: это файл index/a.php

теперь запускаем index.php

видим:

это файл index/a.body

[color=ff0000]Внимание фокус![/color]

удаляем файл a.php из папки index и еще раз запускаем index.php

видим:

это файл a.body  !!!

скрипт index.php не менялся, chdir во второй раз никто не трогал, а PHP нашел другой include с тем же именем и благополучно вставил его.

Что же это такое?! Неужели так и надо?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
мистика с include
« Ответ #1 : 13 Августа 2002, 18:35:36 »
У тебя в include_path точка стоит? Вот скрипт и ищет файл a.php в каталоге в котором текущий скрипт находится
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Foshvad

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
мистика с include
« Ответ #2 : 13 Августа 2002, 18:41:43 »
Во-первых если убрать ./ абсолютно ничего не поменяется (проверял - под виндами так точно)
А во вторых все равно выходит, что скприт ищем include в двух папках....

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
мистика с include
« Ответ #3 : 13 Августа 2002, 18:47:05 »
Цитировать
Во-первых если убрать ./ абсолютно ничего не поменяется (проверял - под виндами так точно)
А во вторых все равно выходит, что скприт ищем include в двух папках....
Еще раз прочитай что я написал. Особенно обрати внимание на слово include_path Это - переменная в PHP которая в php.ini у тебя установлена.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Foshvad

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
мистика с include
« Ответ #4 : 13 Августа 2002, 18:50:32 »
у меня эта переменная в php.ini закомментирована (как и была по умолчанию)

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
мистика с include
« Ответ #5 : 13 Августа 2002, 18:58:16 »
echo ini_get("include_path");
что выводит?
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Foshvad

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
мистика с include
« Ответ #6 : 13 Августа 2002, 19:07:39 »
.;c:\\php4\\pear
:)

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
мистика с include
« Ответ #7 : 13 Августа 2002, 19:10:15 »
.;c:\\php4\\pear
вот про точку (которая самая первая) я тебе и говорил
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Foshvad

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
мистика с include
« Ответ #8 : 13 Августа 2002, 19:16:37 »
Хм... ну дык и что?
Разве команда incude запрашивает не конкретный файл из конкретной директории?

Точке ведь, вроде, означает просто текущею директорию

Оффлайн OBOLTUS

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 102
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
мистика с include
« Ответ #9 : 13 Августа 2002, 19:33:32 »
абсолютный путь укажи и не мучайся, или настройки меняй:)
PHP - Probably Hopeless Pont

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
мистика с include
« Ответ #10 : 13 Августа 2002, 22:51:48 »
Foshvad
Если путь абсолютный то PHP просто подключает файл. Если относительный, то PHP ищет файл относительно  путей прописанных в include_path в указаном порядке

Цитировать
Разве команда incude запрашивает не конкретный файл из конкретной директории?
угу. А если файл не существует то используется список из include_path
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Foshvad

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
мистика с include
« Ответ #11 : 14 Августа 2002, 07:42:09 »
Цитировать
угу. А если файл не существует то используется список из include_path


Век живи - век учись....

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28