На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА
Прежде чем задать вопрос, зайдите в раздел FAQ, возможно там уже есть ответ на него.
Если вы хотите вставить код в сообщение, то пожалуйста выделяйте его тегом [code=dfp] ... [/сode].
Для этого используйте кнопку [code=dfp] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Delphi for PHP.
Модераторы: ViktorXP, vicis
  
> MainMenu , Ругается на скрипт qx
    Здравствуйте ViktorXP!

    У меня такая проблема.
    Создал простенький сайт (3 страницы).
    Закачал на хост.
    Установил доступ к библиотеке VCL (через изменение php.ini, как вы писали выше).
    но не работает, вернее работает, но не меню.

    У меня на главной станице стоит MainMenu, так вот,
    получаю ошибку:

    Строка: 164
    Символ: 5
    Ошибка: 'qx' is undefined
    Код: 0


    Ругается на скрипт qx.js ???

    Подскажите, пожалуйста, как её исправить,
    если это возможно.

    Эта тема была разделена из темы "Delphi for PHP"
    Сообщение отредактировано: goodwin -
      посмотри на тело сгенериной хтмлки. на присутствия этого файла в заголовке. если он там есть то попробуй загрузить файл по тому уршу что там записан. в большей степени что браузер не может его грузануть. илиже если хостинг бесплатный то убедись что к файлу лишнего не прикрепляют (убил бы хостеров за это)
        Хостинг платный.

        А пишет в html следующий код:

        ExpandedWrap disabled
          <script type="text/javascript" src="vcl-bin/js/common.js"></script>
          <title>index</title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
          <script type="text/javascript" src="vcl-bin/qooxdoo/framework/script/qx.js"></script>
          <script type="text/javascript">
            qx.log.Logger.ROOT_LOGGER.setMinLevel(qx.log.Logger.LEVEL_FATAL);
            qx.manager.object.AliasManager.getInstance().add("static", "vcl-bin/qooxdoo/framework/resource/static/");
            qx.manager.object.AliasManager.getInstance().add("widget", "vcl-bin/qooxdoo/framework/resource/widget/windows/");
            qx.manager.object.AliasManager.getInstance().add("icon", "vcl-bin/qooxdoo/framework/resource/icon/VistaInspirate/");
          </script>


        Не пойму, к какой библиотеке идет обращение?

        Я VCL закачал полностью.
        Тогда почему не находит скрипт?
        На локальном компьтере работает без проблем.

        Может быть надо прописать пути где-то ещё?
        Сообщение отредактировано: ViktorXP -
          пути прописываются в php.ini
          может не так как нужно записал пути.
          попробуй загрузить файл
          {имя твоего хоста}/vcl-bin/qooxdoo/framework/script/qx.js
          если файл не загрузится значит гдето не так настроенно

          Добавлено
          и бери код в спец скобки, а то не удобочетаемо.
            vcl-bin - нет такой библиотеки на хосте.
            есть бибилиотека vcl - в ней скрипт {vcl/qooxdoo/framework/script/qx.js}

            Почему скрипт не определен? Как его определить?

            Помогите,пожалуйста!
            Сообщение отредактировано: goodwin -
              Ошибка в настройках. Только где?

              Запустил Delphi for PHP 2.0.
              Загрузил сайт, тот, что в варианте Delphi for PHP 1.0 работал без
              проблем на локальном компьютере, но стал выдавать ошибку
              при работе на хостинге - 'qx' is undefined.

              Далее сменил браузер для тестирования на Оперу.

              И вижу - сайт грузится, но меню - НЕ выводится на экран.

              И выдается следующая ошибка:

              Цитата
              Unit1
              http://localhost:3570/unit1.php?restore_session=1&DBGSESSID=1@clienthost:7869
              Inline script thread
              Error:
              name: ReferenceError
              message: Statement on line 2: Reference to undefined variable: qx
              Backtrace:
              Line 2 of inline#5 script in http://localhost:3570/unit1.php?restore_session=1&DBGSESSID=1@clienthost:7869
              var d = qx.ui.core.ClientDocument.getInstance();


              Т.е. получается ошибка в обоих версиях одинакова.
              Только в Delphi for PHP 1.0 эта ошибка не появлялась
              при тестировании на локальном компьтере, а вылезла
              только при запуске сайта на хостинге,
              а для Delphi for Php 2.0 эта ошибка появляется уже на
              локальном компьтере в других (Mozilla, Opera) отличных
              от IE браузерах.

              У какого есть какие мысли?
              Можно решить эту проблему?
              Сообщение отредактировано: ViktorXP -
                Цитата goodwin @
                Запустил Delphi for PHP 2.0.
                Загрузил сайт, тот, что в варианте Delphi for PHP 1.0 работал без
                проблем на локальном компьютере, но стал выдавать ошибку
                при работе на хостинге - 'qx' is undefined.


                непонятно под каким Delphi for PHP проект
                если писал проект под 1, то под 2 возможно будут проблемы
                нужно будет затачивать

                если под 1 работает
                а при переносе на провайдера не работает
                то браузер тут не при чём
                это настройки на провайдере

                я бы поставил себе на локальную машину отдельно от Delphi for PHP
                серверный софт
                Apache и php

                перенёс бы на него сайт и проверил работает или нет
                если нет то настраиваеш
                смотриш разницу
                между настройуами этого софта в Delphi for PHP и в поставленном тобой
                после этого уже разбираешся что там не так на провайдере

                ну и phpinfo() сравни


                но прежде всего проверь где то здесь проблема
                vcl-bin/qooxdoo/framework/script/qx.js
                т.к. у меня путь такой
                vcl/qooxdoo/framework/script/qx.js

                кстати, при такой адресации эта папка должна находится в папке с файлами проекта
                а не в корне сайта

                а где у тебя она ?
                  Здравствуйте!

                  Мне кажется, что библиотека vcl-bin - это что-то виртуалное, а не физическое.
                  У меня на локальном хосте стоит Денвер и все тестируемые приложения
                  работают нормально (но опять же, Денвер нужен только когда стоит задача
                  сделать тест на базе данных, а так собственных средств у Delphi for Php
                  достаточно, чтобы выполнить несложный тест без подключения к базам данных).

                  Так вот, когда приложение-сайт (а это форма на которой стоит всего лишь
                  MainMenu) тестируем в оболочке Delphi for Php 1.0, все работает нормально
                  во всех браузерах, стоит перенести приложение на хостинг, возникает
                  ошибка - 'qx' is undefined и меню браузер(-ы) не отображают.

                  И опять же данное приложение, а оно как я написал выше простейшее - форма и
                  MainMenu на форме, запускаем на ЛОКАЛЬНОМ компьютере в среде Delphi for php 2.0,
                  то ошибка в IE не возникает, а в других браузерах появляется.

                  Какой напрашавается вывод, в чем причина?
                  Не знаю, у меня в голове не укладывается, то ли это браузеры,
                  то ли это настойки. Насторйки чего? php?
                    Цитата goodwin @
                    Мне кажется, что библиотека vcl-bin - это что-то виртуалное, а не физическое.
                    У меня на локальном хосте стоит Денвер и все тестируемые приложения
                    работают нормально (но опять же, Денвер нужен только когда стоит задача
                    сделать тест на базе данных, а так собственных средств у Delphi for Php
                    достаточно, чтобы выполнить несложный тест без подключения к базам данных).


                    Для того что бы разрабатывать нормальные web приложения и иметь минимум проблем нужно:
                    1. Симитировать площадку провайдера
                    т.е. убрать Денвер(или просто не использовать для проверки) и настроить у себя на компьютере самостоятельно
                    Apache и php
                    (Денвер для ленивых, а ленивый платит дважды)
                    2. Запустить ваш проект на своей машине НЕ ПОД DELPHI FOR PHP
                    и не под Denver
                    а под самостоятельно настроенным сервером

                    после того как всё заработает в таком варианте
                    на провайдер переносится мухой и без проблем

                    разбираться же почему не работает на провайдере
                    не проверив на своей машине без средств разработки
                    будет долго и неэффективно
                    к примеру
                    нашего провайдера пришлось заставить
                    включить дополнительные библиотеки, которые у него были не подключены
                    что бы проект заработал
                    хотя на другом провайдере они были подключены

                    в любом случае браузер здесь не причём
                    т.к. в том случае когда сайт работает нормально
                    и в случае когда не работает
                    конфигурация браузера не меняется

                    думаю есть простое, но кривое решение
                    отсюда видно
                    Цитата

                    <title>index</title>
                    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
                    <script type="text/javascript" src="vcl-bin/qooxdoo/framework/script/qx.js"></script>
                    <script type="text/javascript">

                    что на провайдере должен быть такой путь
                    vcl-bin/qooxdoo/framework/script/qx.js
                    ну так надо сделать что бы он там был
                    переименовав vcl в vcl-bin
                    при этом папка vcl должна лежать внутри папки с этим файлом

                    возможно этого хватит
                      vicis сказал все что я хотел сказать (хотя я врятли так популярно бы описал ситуину). (самому мне было некогда. в офис перешол работать, а там с 8 утра и до 4 вечера. и нета нету почти, да и времени совсем )
                      Сообщение отредактировано: ViktorXP -
                        Здравствуйте, vicis и ViktorXP!

                        Я переименовал vcl в vcl-bin, а затем куда бы не перемещал папку vcl,
                        выдается ошибка:
                        Цитата
                        Warning: require_once(vcl/vcl.inc.php) [function.require-once]: failed to open stream: No such file or directory in /home/xxx/public_html/index.php on line 3

                        Fatal error: require_once() [function.require]: Failed opening required 'vcl/vcl.inc.php' (include_path='.:/home/xxx/pear/:/home/xxx/pear/smarty') in /home/xxx/public_html/index.php on line 3


                        т.е. нигде её не видно.

                        Как быть? Где все-таки она должна находиться?

                        "при этом папка vcl должна лежать внутри папки с этим файлом" - это как?

                        Добавлено
                        По разному переносил библиотеку vcl,
                        последний вариант:

                        vcl находится в папке 'pear-bin',
                        а её дубль под именем vcl-bin находится в папке 'pear'

                        соответствующее дополнение к файлу php.ini :

                        Цитата
                        include_path = ".:/home/asiasun/pear-bin/:/home/asiasun/pear-bin/smarty:/home/asiasun/pear/:/home/asiasun/pear/smarty"

                        Результат: библиотеку vcl находит, а vcl-bin - нет.
                        Но пути работают, значит всетаки дело не в этом?!

                        М.б. я все же прав, и библиотека vcl-bin не существует?

                        Ведь ошибка идет на строку 164 (сгенерированный код файла index.php) :

                        ExpandedWrap disabled
                                    <script type="text/javascript">
                          164:    var d = qx.ui.core.ClientDocument.getInstance();
                                    d.setOverflow("scrollY");
                                    d.setBackgroundColor(null);
                                    </script>

                        м.б. дело всё в других ресурсах или подключениях,
                        которые я не сделал?
                          Цитата goodwin @
                          Warning: require_once(vcl/vcl.inc.php) [function.require-once]: failed to open stream: No such file or directory in /home/xxx/public_html/index.php on line 3

                          надо смотреть эту строку

                          Цитата goodwin @
                          Fatal error: require_once() [function.require]: Failed opening required 'vcl/vcl.inc.php' (include_path='.:/home/xxx/pear/:/home/xxx/pear/smarty') in /home/xxx/public_html/index.php on line 3

                          судя по всему там подключается файл из пути vcl/ и т.д.
                          но ты же переименовал vcl в vcl-bin
                          естественно проблема

                          совет
                          не нужно менять никакие php.ini
                          пока не разобрался с сообщениями об ошибках

                          как я понимаю скрипты java-script у тебя ссылаются на путь vcl-bin
                          а файлы библиотек php на путь vcl
                          как бы не переименовал будет неправильно
                          или в коде поменять надо или разнести по папкам
                          создать две vcl и vcl-bin

                          но это уже шаманство
                          что то ты не так сделал


                          сделай так
                          верни на провайдере все переменные php.ini обратно, которые менял (если менял)
                          далее
                          1. новый проект - поставь кнопку и опиши на неё событие какое нибудь (т.е. сделай самый простой проект)
                          2. проверь в DelphiForPHP
                          3. перенеси на провайдера
                          проверь работает или нет
                          как переносить:
                          - tools->deployment wizard - в нужную папку
                          - эту папку на провайдер, например в папку test
                          - далее проверяеш что в папке test лежит папка vcl (после deployment она там есть)
                          запускаем http://tram-pam-pam/test/page1.php (или как там файл называется)
                          проверяем работу кнопки

                          если работает, то
                          добавляеш на форму меню
                          и делаеш всё как и раньше
                          но не кидай всё в туже папку для чистоты эксперимента
                          сделай папку test1
                          и в неё всё закинь
                          пока не важно что папка vcl дублируется в обеих папках проектов
                          тебе же важно что бы заработало

                          если что то не работает в каком то из вариантов
                          тогда уже смотиш проблему
                          ищещ в чёи разница между проектами и настройками серверов

                          как смотреть проблему:
                          для начала делаеш файл php
                          назови его phpinfo.php
                          положи и на провайдера и в проект на своей машине
                          содержимое файла
                          ExpandedWrap disabled
                            <?php
                            phpinfo();
                            ?>

                          запусти этот файл на хосте и на своей машине
                          сравни подключенные библиотеки и переменные
                            У меня прежний вопрос:

                            Почему в браузере IE программа напмсанная на Delphi for PHP 2.0 при выводе на экран
                            компаненты MainMenu(другие не проверял) НЕ имеет никаких ошибок,
                            стоит только запустить эту же программу в таких браузерах как Mazilla или
                            Opera, то компанент MainMenu не выводится, а выводится ошибка:

                            Цитата
                            Unit1
                            http://localhost:3570/unit1.php?restore_session=1&DBGSESSID=1@clienthost:7869
                            Inline script thread
                            Error:
                            name: ReferenceError
                            message: Statement on line 2: Reference to undefined variable: qx
                            Backtrace:
                            Line 2 of inline#5 script in http://localhost:3570/unit1.php?restore_session=1&DBGSESSID=1@clienthost:7869
                            var d = qx.ui.core.ClientDocument.getInstance();


                            В чем проблема? почему в одном браузере работает, а в других нет?
                            Можно эту проблему решить?

                            Причем, на форме ничего, кроме Mainmenu нет, и само меню пустое!
                            Сообщение отредактировано: ViktorXP -
                              Цитата goodwin @
                              Почему в браузере IE программа напмсанная на Delphi for PHP 2.0 при выводе на экран
                              компаненты MainMenu(другие не проверял) НЕ имеет никаких ошибок,
                              стоит только запустить эту же программу в таких браузерах как Mazilla или
                              Opera, то компанент MainMenu не выводится, а выводится ошибка:


                              разработчик говорит, что должно работать
                              хотя есть сообщения что у кого то не работает

                              http://forums.delphi-php.net/vcl4php/1131-support-opera-browser.html

                              поищи ещё на этом форуме

                              а родные примеры из Delphi for PHP 2.0 работают (с меню)?
                              оперу запускаеш из под Delphi for PHP 2.0 ?

                              а с другой стороны
                              этих браузеров ничтожно мало
                              http://www.exler.ru/blog/item/1662/
                              я бы проигнорировал 8-)
                              хотя это конечно не спортивно
                              Сообщение отредактировано: vicis -
                                Я бы давно отказался от этой затеи, но я вижу одну и ту же ошибку:

                                программа на Delphi for php 1.0 работает без проблем во всех браузерах
                                при тестировании на локальном компьютере, но стоит перенести её на хостинг
                                - вывод не работает - появляется ошибка,
                                абсолютно та же что и в версии 2.0 при тестировании этой же программы
                                на локальном компьтере в отличных от IE браузерах.

                                Т.е. ошибка имеет место в обоих версиях, но проявляется в разных
                                вроде бы ситуациях.

                                М.б. всё дело в настройках?
                                Сообщение отредактировано: goodwin -
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0414 ]   [ 16 queries used ]   [ Generated: 23.04.24, 19:01 GMT ]