Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Не работает подключение своей библиотеки на PHP к index.php
Покинул форум
Сообщений всего: 34
Дата рег-ции: Март 2012
Помог: 0 раз(а)
Это тестовый пример на подключение библиотеки:
Имеется: основной файл index.php, он короткий, вот он (описание функции conc_with_spaces($str1,$str2)
закомментировано, потому что когда она находится в index.php в скрипте PHP, все работает):
<b>Fatal error</b>: Call to undefined function conc_with_spaces() in <b>C:\wamp\www\Test2\index.php</b> on line <b>31</b><br />
Она досрочно сакрывает скрипт PHP и дальнейшее (Fatal error) уже понятно.
ВОПРОС: откуда она берется? Ни в одном руководстве по подключению своих библиотек я этого не нашел.
Функция include() не должна помещать в текст PHP скрипта закрывающую скобку из файла библиотеки.
Все это реализовано на локальном сервере WAMPSERVER.
Кто может помочь, знает или хоть догадывается, почему это происходит, ответьте пожалуйста.
Спасибо, с уважением Михаил Щеглов.Отредактировано модератором: OrmaJever, 17 Марта, 2012 - 14:15:36 Код нужно хоть как то в теги обводить.
DelphinPRO
Отправлено: 17 Марта, 2012 - 03:47:03
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
при чем здесь С, если пишете на php? O_o
в файле с функцией код заключается также в <?php ?>
файл имеет раширение .php
include 'myresource.php';
----- Чем больше узнаю, тем больше я не знаю.
Las
Отправлено: 17 Марта, 2012 - 04:07:55
Новичок
Покинул форум
Сообщений всего: 34
Дата рег-ции: Март 2012
Помог: 0 раз(а)
Я все это пробовал:
и расширение .php в файле библиотеки;
И заключение текста библиотеки в скобки <?php...?>;
index файл имеет расширение index.php
include 'myresource.php'; include( 'myresource.php'); include "myresource.php"';
include ("myresource.php");
Все это перепробовано, но результат совершенно такой же.
Я теряюсь в догадках, нахожусь в полной растерянности. По всем руководствам с этим не должно быть проблем. Я грешу на настройки PHP5 в WAMPSERVERE.
Кроме того, у меня Win 7, может в ней надо что-то донастраивать.
Морорчусь уже дней 10, одна надежда - на форумы.
DelphinPRO
Отправлено: 17 Марта, 2012 - 04:13:11
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
чудеса
должно все работать ) возможно и правда дело в настройках сервера
идея попробовать другую сборку уместна? рекомендую open-server[dot]ru/
Las пишет:
Кроме того, у меня Win 7, может в ней надо что-то донастраивать.
Покинул форум
Сообщений всего: 34
Дата рег-ции: Март 2012
Помог: 0 раз(а)
Пробовал, но не справился с настройкой XAMPа. И потом, какая разница: в WAMPSERVERе
предусмотрены все настройки PHP (знать бы какие), там PHP5, я с ним работаю уже год - все было отлично, пока не дошло до этих долбаных экспериментов с библиотеками.
Хотя насчет опен сервера придется подумать. Не сдохнуть же из-за этих библиотек.
Без них нормальному программисту работать в рабочем режиме нереально, а работать надо,
и в хорошем темпе.
Потому что конструкции {? и ?} не являются PHP-кодом вовсе и выводятся в результирующий документ со всем, что внутри, как есть.
----- PostgreSQL DBA
Las
Отправлено: 17 Марта, 2012 - 14:09:30
Новичок
Покинул форум
Сообщений всего: 34
Дата рег-ции: Март 2012
Помог: 0 раз(а)
DelphinPRO пишет:
чудеса
должно все работать
Представьте себе, пробовал. Более того : в последней версии у меня так и было.
НО ВАШ СОВЕТ СРАБОТАЛ И ПОМОГ - ВСЕ ЗАРАБОТАЛО! Каким же вы спросите образом?
А через КОМПЬЮТЕРНО-ФОРУМНОЕ ШАМАНСТВО, НА КОТОРОЕ И БЫЛА МОЯ ПОСЛЕДНЯЯ НАДЕЖДА.
Перед тем, как прочитать Ваше сообщение, я стал готовить тест к закачке на сервер в поддомен своего сайта, чтобы проверить, виноват ли WAMPSERVER. Что менял - да что-то по мелочи, чисто на автомате - даже на рдостях и не вспомню.
Правда в письме о Вашем сообщении текст библиотеки выглядел иначе и странно, а именно: квадратные скобки с PHP стояли снаружи, до и после угловых открывающих и закрывющих скобок библиотеки.
Правда, отличается от кода, приведенного на этой странице? Но твердо веруя в силу шаманства, я попробовал. И заработало! Правда, перед картинками выдались эти неуместные [PHP][/PHP]. Тогда я их убрал, а тег <?php в библиотеке заменил на <?PHP - вдруг это повлиял регистр букв. Сработало. Тогда я опять вернул все на свои места и в
этом теге, как и было, написал <?php - оно точно так и было! НО РАБОТАЕТ, ЗАРАЗА, РАБОТАЕТ!
ТАКОВА СИЛА КОМПЬЮТЕРНОГО ШАМАНСТВА! СПАСИБО!
Количество сообщений не позволяет мне повысить Вам рейтинг, но все равно - спасибо, что не отступились и не посчитали меня за идиота. (Добавление)
И вообще, Мелкий, если Вы такой профи, может сможете объяснить мне ситуацию, изложенную в теме "скрипт PHP не работает в index.html"? Я так понял, уж кому, как не Вам! (http://php.su/forum/topic.php?forum=71&topic=4603)
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Las пишет:
может сможете объяснить мне ситуацию, изложенную в теме "скрипт PHP не работает в index.html"?
Не могу, т.к. когда я вижу 8-ую строку, рука тянется к лицу, как-то вот так: и закрывает обзор.
Ладно, если огромным усилием воли предположить, что я этого не вижу: php обрабатывает те файлы, которые ему передал веб-сервер. Если где-то php не исполняется, значит никто его не запустил.
----- PostgreSQL DBA
Las
Отправлено: 17 Марта, 2012 - 19:33:47
Новичок
Покинул форум
Сообщений всего: 34
Дата рег-ции: Март 2012
Помог: 0 раз(а)
Но 8-я строка скопирована из учебника по PHP с комментарием "так вставляются PHP скрипты в текст html. Выкинуть этот учебник? Или я что-то в нем не так понял?
Las
Отправлено: 19 Марта, 2012 - 00:56:19
Новичок
Покинул форум
Сообщений всего: 34
Дата рег-ции: Март 2012
Помог: 0 раз(а)
Я в шоке! Еще вчера все работало, а сегодня не подключается внешняя собственная библиотека, которая находится в одной папке с index.php
Выдается ошибка:
Warning: include(myresouce.php) [function.include]: failed to open stream: No such file or directory in C:\wamp\www\Test2\index.php on line 12
Warning: include() [function.include]: Failed opening 'myresouce.php' for inclusion (include_path='.;C:\php5\pear') in C:\wamp\www\Test2\index.php on line 12
Fatal error: Call to undefined function conc_with_spaces() in C:\wamp\www\Test2\index.php on line 25
Функция function conc_with_spaces() описана в этой библиотеке.
ЕЩЕ ВЧЕРА ВСЕ РАБОТАЛО!
У меня WAMPSERVER2 и я не знаю, как его настроить!
В каких файлах изменить какие пути или что-то еще...
OrmaJever
Отправлено: 19 Марта, 2012 - 01:22:56
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Las, ну дак напишите полный путь от корня файловой системы блин, привыкли к халяве и не понимаете простого.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Las
Отправлено: 19 Марта, 2012 - 01:32:34
Новичок
Покинул форум
Сообщений всего: 34
Дата рег-ции: Март 2012
Помог: 0 раз(а)
Корнем вообще-то считается сама папка www.
Ну, а мне писать полный путь в системе виндос от диска C:\wamp\www\Test2, но ведь вчера и так все работало! Попробую... (Добавление)
Попробовал, ответ:
Warning: include(C:\wamp\www\Test2\myresouce.php) [function.include]: failed to open stream: No such file or directory in C:\wamp\www\Test2\index.php on line 12
Warning: include() [function.include]: Failed opening 'C:\wamp\www\Test2\myresouce.php' for inclusion (include_path='.;C:\php5\pear') in C:\wamp\www\Test2\index.php on line 12
Fatal error: Call to undefined function conc_with_spaces() in C:\wamp\www\Test2\index.php on line 25
У меня же не удаленный сервер, а локальный wampserver2.
DelphinPRO
Отправлено: 19 Марта, 2012 - 01:51:31
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
Las пишет:
Корнем вообще-то считается сама папка www.
это корень сайта
корень файловой системы - другое
по теме - подозреваю, что вы пропустили букву в имени файла resource.php (Добавление)
Las пишет:
Ну, а мне писать полный путь в системе виндос от диска C:\wamp\www\Test2
Покинул форум
Сообщений всего: 34
Дата рег-ции: Март 2012
Помог: 0 раз(а)
сПАСИБО.
Почему вторая строка пустая?
Что означает _FILE_?
После dirname(__FILE__) нужна ;?
что копировать, цифры копировать?
Или вставить эти строки вместо функции include?
Что в итоге получится?
======================= (Добавление)
Скопировал, вставил. Ответ:
Parse error: parse error in C:\wamp\www\Test2\index.php on line 14
Строка 14: include dirname(__FILE__) . DIRECTORY_SEPARATOR . 'myresource.php';
================================ ====== (Добавление)
После простановки ";", т.е. dirname(__FILE__); БИБЛИОТЕКА ПОДКЛЮЧИЛАСЬ!
Т.е. как я понимаю dirname(__FILE__); выдает полный путь до текущей папки (у меня www),
верно? А Вы к нему присоединяете через DIRECTORY_SEPARATOR (что это такое?
Типа символ "/" - присоединяете мою библиотеку 'myresource.php'. Я верно понял?
ЭТО ОЧЕНЬ ВАЖНО !
Потому что в других папках внутри www лежат фотки и они не выдаются строкой
К ним что, тоже надо приконкатенировать dirname(__FILE__) . DIRECTORY_SEPARATOR ?
А то вместо фоток выдаются непонятные маленькие прямоугольнички.
А можно вместо dirname(__FILE__) использовать переменную, типа $fulldir=dirname(__FILE__).'/' и с ней работать?
Еще раз СПАСИБО!
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
__FILE__ "магическая" константа, содержит полное имя текущего файла.
(__DIR__ - путь до текущего файла, __FUNCTION__ - имя функции, __CLASS__ - имя класса, __METHOD__ - имя метода -- все эти константы есть в мануале)
DIRECTORY_SEPARATOR - разделитель директорий (/ или \ в зависимости от типа ОС)
абсолютный путь от корня файловой системы следует указывать при операциях с файлами. (подключение, удаление, копирование и т.п.)
в атрибутах SRC у картинок должны быть абсолютные URL от корня сайта. (у вас от www)
/images/pic1.jpg
Las пишет:
А можно вместо dirname(__FILE__) использовать переменную, типа $fulldir=dirname(__FILE__).'/' и с ней работать?
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.