[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: И как это понимать?
alex12060
Ну вот, сегодня начал работать над своим сайтом, тут немного поизучал шаблоны проектирования еще раз,решил играться с MVC

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

Решил вытащить инклуд на главную и протестировать напрямую, и нашел ошибку, но она нестандартная...

Вижу на экране:


Warning: include(1) [function.include]: failed to open stream: No such file or directory in /usr/local/www/apache22/data/test.ru/www/index.php on line 11

Warning: include() [function.include]: Failed opening '1' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /usr/local/www/apache22/data/test.ru/www/index.php on line 11

Меня моментом смутила строка: include(1)

Ну решил проверить свой код:


<?php

header("Content-type: text/html; charset=utf-8");
define('access', true);

require_once('class/db.class.php');
include(HOSTROOT.'/model/templates.php');

$db = db::getConnect();
$dir = new Template_N;

include(HOSTROOT.tmpDir.'/header.inc.php') or die('lala');
?>



Да думаю, понаписал, ага.
Проверил путь, передаваемый инклуду. он показал:

/usr/local/www/apache22/data/test.ru/www/templates/header.inc.php

Ну, все правильно, но почему он думает, что я хочу предложить ему подключить 1??

Помогите, люди добрые :)



Спустя 6 минут, 52 секунды (25.05.2011 - 20:36) Renden написал(а):
alex12060
А чему равны дефайны HOSTROOT и tmpDir мб ты слеш забыл ну типа:

include(HOSTROOT.'/'.tmpDir.'/header.inc.php') or die('lala');

Не?)

И ты пробывал указать относительный путь ну например:

include(tmpDir.'/header.inc.php') or die('lala');

Или где у тя этот файл лежит?

Спустя 7 минут, 27 секунд (25.05.2011 - 20:44) T1grOK написал(а):
А если левый слеш убрать.

Спустя 12 минут, 25 секунд (25.05.2011 - 20:56) ZSH написал(а):
(include HOSTROOT.'/'.tmpDir.'/header.inc.php') or die('lala');


Спустя 3 минуты, 36 секунд (25.05.2011 - 21:00) alex12060 написал(а):
ZSH

Красава, помогло. Объясни мне ,в чем дело?

Спустя 4 минуты, 23 секунды (25.05.2011 - 21:04) alex12060 написал(а):
Тьфу, точно, я забыл про то, что это языковая конструкция ohmy.gif

Всем спасибо, ZSH тебе побольше чем другим smile.gif

Спустя 1 минута, 33 секунды (25.05.2011 - 21:06) ZSH написал(а):
выражение: (tmpDir.'/header.inc.php') === true, потому что внутри есть конкатенация
получается: include (true) тоесть include (1);
одна из причин не использовать скобки в include

Спустя 11 часов, 9 минут, 55 секунд (26.05.2011 - 08:16) linker написал(а):
Это не причина, есть веская причина вообще не писать or die() после инклуда. Твоё равносильно
(include(HOSTROOT.'/'.tmpDir.'/header.inc.php')) or die('lala');
и скобки тут не причём, а причём исключительно логическая ошибка, убери в твоём примере скобки и получим тоже самое
include HOSTROOT.'/'.tmpDir.'/header.inc.php' or die();
Поэтому не нужны тут никакие die(), а наличие проверять file_exists().
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.