Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: COM в сессиях

Сообщения:  [1-10] 

 
 автор: cheops   (31.03.2006 в 12:54)   письмо автору
 
   для: Добрый Дэн   (31.03.2006 в 10:34)
 

Тогда можно выполнять команды операционной системы при помощи system() или аналога, только для этого придётся перевести сервер из безопасного режима (если он в нём находится).

   
 
 автор: Добрый Дэн   (31.03.2006 в 10:34)   письмо автору
 
   для: cheops   (30.03.2006 в 21:40)
 

На отдельном сервере, к которому будет открыт доступ из инета. Сайт изначально будет закрыт паролем, так что лишних "куль хацкеров" должно быть меньше.

   
 
 автор: cheops   (30.03.2006 в 21:40)   письмо автору
 
   для: Добрый Дэн   (30.03.2006 в 15:14)
 

Выполнение команд OC вополне можно включить - где всё действо происходит на локальной машине или на серере с доступом из Интернет?

   
 
 автор: Добрый Дэн   (30.03.2006 в 15:14)   письмо автору
 
   для: Trianon   (30.03.2006 в 14:50)
 

По-моему это уже совсем шаманство, а вот идея с запуском скрипта вне веб-сервера мне нравится - может разрешить исполнять скрипту команды ОС и оттуда запускать скрипт и получать указатель на COM-объект? Или я глючу или это теоритически возможно.

   
 
 автор: Trianon   (30.03.2006 в 14:50)   письмо автору
 
   для: Добрый Дэн   (30.03.2006 в 14:35)
 

Время работы скрипта ограничено. Да и принимать он ничего не сможет.
Вот бредовая мысль от меня.
Запустить php-command-line процесс, который бы работал с COM-ом, а с PHP-apache-скриптами общался бы через очередь запросов, реализованную на файлах (тяжело и ненадежно) или на БД (еще тяжелее, но надежнее).
Его наверное даже службой можно было бы сделать. Но это уже фенечки.

   
 
 автор: Добрый Дэн   (30.03.2006 в 14:35)   письмо автору
 
   для: Trianon   (30.03.2006 в 14:02)
 

>А этот COM нельзя того... в $_SEEION поместить? сериализовав
>предварительно, конечно.

Там следующий прикол - при создании COM объекта в списке процессов появляется 1cv7.exe, который после загрузки странички (окончания выполнения php-скрипта) исчезает.
Уже возникли совсем бредовые мысли - сделать через фреймы - в одном фрейме создается COM-объект 1С и запускается бесконечный цикл, а из второго обращаемся к этому объекту...

   
 
 автор: cheops   (30.03.2006 в 14:09)   письмо автору
 
   для: Trianon   (30.03.2006 в 14:02)
 

Можно попробовать, но что-то мне подсказывает, что он здорово на расширение завязан и PHP-ный объект хранит лишь дискриптор внутреннего объекта...

   
 
 автор: Trianon   (30.03.2006 в 14:02)   письмо автору
 
   для: cheops   (30.03.2006 в 13:42)
 

А этот COM нельзя того... в $_SEEION поместить? сериализовав предварительно, конечно.

   
 
 автор: cheops   (30.03.2006 в 13:42)   письмо автору
 
   для: Добрый Дэн   (29.03.2006 в 19:37)
 

ASP я думаю тоже не сильно пособит - здесь ограничения протокола HTTP, каждое обращения клиента к серверу воспринимается как новое обращение - нет поддержки сессии на уровне протокола, поэтому сам сервер не может определить одного клиента от другого или был этот клиент на сервере или пришёл в первый раз - для него все клиенты пришли в первый раз, даже если это один клиент на сервере сидит.

   
 
 автор: Добрый Дэн   (29.03.2006 в 19:37)   письмо автору
 
 

Стоит следующая связка Apache1.3+PHP4.3+MySQL4 под Win2k3.
Работаем через COM с 1С. Так как база большая, то хотелось бы создавать COM-объект один раз за сессию и дальше просто к нему обращаться.
То, что сессионные переменные объектами быть не могут я в курсе.
Попробовал делать через глобальные переменные:

    session_start();
    if (!isset($_SESSION['res_init']))
    {
    $GLOBALS[v77]=new COM("v77.Application"); 
        $res_init=$GLOBALS[v77]->Initialize($GLOBALS[v77]->RMTrade, "/D\\\\malysh\\db0 /n**** /p****", ""); 
        echo "Объект создан. Ссылка на 1С=".$GLOBALS[v77]->RMTrade;
        echo "<br>Идентификатор сессии=".session_id();        
        if( !$res_init ) {
            echo "<b>жопа</b>"; 
            session_destroy();
            return 0;    
        }
        echo "<br><h2>Крута!!!!!</h2><br>";
        $_SESSION['res_init']=$res_init;
    }
    else
    {
        echo "Сессия уже создана. Ссылка на 1С=".$GLOBALS[v77]->RMTrade;
        echo "<br>Идентификатор сессии=".session_id();
    }



Тоже самое - при завершении работы скрипта объект COM уничтожается и разумеется при следующем обращении уже к нему обратится нельзя.
Вот собственно и вопрос - неужели данную задачу нельзя решить средствами PHP и придется разбираться с ASP ради этого?
Устроит любой вариант решения - или создавать объект в пределах сессии или глобальный - сайт будет под паролем для дилеров, там больше пары десятков посетителей в принципе не будет.

   

Сообщения:  [1-10] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования