COM+PHP детали внутри.

Muzaffar

Новичок
COM+PHP детали внутри.

Я извеняюсь если повторяю тему но проблема не болщая.
Я пользуюсь:

Apache v1.3
PHP v4.3.5
PHP Expert Edition v3.2.1
БД: MS SQL SERVER 2000 (SP3).
ОС: MS SERVER 2003 Enterprise Edition (Без SP1).

Уменя есть готовый пхп скрипт. Он делает выборку и создает отчет.
когда я запускаю скрипт через свой Editor он все четко делает(открывает MS Excel).

Когда пытаюсь через iexplorer у себя на серваке не фига не получается. Ни каких коментариев и ошибок.
На клиентском тачке тоже самое.

Может что-то надо конфигурировать(windows).
Спасибо заранее и еще раз извеняюсь если вопрос повторяется.
 

Кром

Новичок
Очень смутное объяснение проблемы. Какой editor, какой скрипт? Непонятно.
 

slach

Новичок
вообще бредятина какая то написана

1) сервер под win32 ???
2) в Expert Editor'е, запускается php.exe который потом уже через COM вызывает excel, это СТРОГО win32 фича
3) через iexplorer - это ты типа выложил скрипт на хостинг по FTP и теперь его в браузере чтоли открываешь ? если, да, то бугага, идем чиать про http://phpfaq.ru/na_tanke и учимся различать Client side / Serve Side
 

Muzaffar

Новичок
Вот кусок скрипта.

<?php

# Создание COM объекта
$excel = new COM("excel.application") or die("Unable to instanciate Excel");

$excel ->SheetsInNewWorkBook = 1;
$excel ->WorkBooks->Add();

$sheet=$excel->Workbooks[1]->Sheets[1];
$sheet->activate;

$x=2;

$QGrID = mssql_query("Select distinct gr_pr_id from t_sale where datepart (mm, doc_date)='$month'");

while ($RGrID = mssql_fetch_row($QGrID))
{
$QCustID = mssql_query("Select count(distinct cust_id) from t_sale where datepart(mm, doc_date)='$month' and gr_pr_id='$RGrID[0]'");

while ($RCustID = mssql_fetch_row ($QCustID))
{
$QGrName = mssql_query("Select gr_pr_name from spr_gr_products where gr_pr_id='$RGrID[0]'");
$RGrName = mssql_fetch_row($QGrName);
$sheet->activate;
$sheet->cells[$x][1]->value="$RGrName[0]";
$sheet->cells[$x][1]->font->bold=1;
$x=$x+$RCustID[0];
}
}
$sheet->cells[$x][1]->value="Итого";
$sheet->cells[$x][1]->font->bold=1;

$excel->Visible = 1;

//освобождаем объект
$excel->Release();
$excel = null;

?>
этот скрипт создает Excel документ и открывает. Скрипт полноценна работает в PHP Expert Editor. Но когда через iexplorer хочу запустить этот скрипт (используя ссылку) он не реагирует и на сервере и на клиенте

-~{}~ 18.06.05 16:27:

Надо-же че вы молчите вы же спецы-перцы в этом сфере.
уменя все прога работает только вот

$excel->visible=1

через ie не как не раегирует. есть кто нибуть помочь. Буду очень благодарен!!!
 

slach

Новичок
читай ПУНКТ 3 в моем постинге

РАЗЛИЧАЙ клиентскую и серверную сторону
 

Muzaffar

Новичок
Прочитал но толком ничего не нашел!!!

Может подскажешь где еще прочитать.

У меня все нормально работает вот только он не открывает то есть не показывает визуально Excel.

Приложение Excel появляется в Task Manager е но не видно на экране. Может сдесь другая проблема...
 

Long

Новичок
Muzaffar, slach тебе уже показал твою проблему. а проблема в том, что ты до сих пор не понимаешь где работает пхп (и, соответственно, создается СОМ-объект) и где ты ожидаешь получать данные. задай себе вопрос - где твой скрипт запускает excel и постарайся на него правильно ответить.
 

Muzaffar

Новичок
Спасибо большое я понял. Я пользуюсь header ом что бы получить на клиентском тачке. Получилось :).
Вот скрипт:

header("Content-type: application/x-msexcel");
header("Content-Disposition: attachment; filename=DailyReport.xls");
header("Content-Description: PHP Generated XLS Data");

Всем еще раз Огромное спасибо вы мне очень помогли!!!
 
Сверху