powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Cannot redeclare class OLE_PPS in /usr/share/php/OLE/PPS.php on line 221
20 сообщений из 20, страница 1 из 1
Cannot redeclare class OLE_PPS in /usr/share/php/OLE/PPS.php on line 221
    #38350842
Den_Kl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Использую пакет pear Spreadsheet_Excel_Reader. На денвере работает отлично, перенёс на хостинг, тоже всё работает. Затем пришлось переносить на новый хостинг, и этот пакет перестал работать. Выдаёт следующую ошибку.
PHP Fatal error: Cannot redeclare class OLE_PPS in /usr/share/php/OLE/PPS.php on line 221

кусок кода, где 221 строка такой

function _savePpsSetPnt(&$pps_array)
{
$pps_array[count($pps_array)] = &$this;
$this->No = count($pps_array) - 1;
$this->PrevPps = 0xFFFFFFFF;
$this->NextPps = 0xFFFFFFFF;
if (count($this->children) > 0) {
$this->DirPps = $this->children[0]->_savePpsSetPnt($pps_array); //221 строка
} else {
$this->DirPps = 0xFFFFFFFF;
}
return $this->No;
}

Есть у кого-нибудь предположения, с чем это может быть связано?
...
Рейтинг: 0 / 0
Cannot redeclare class OLE_PPS in /usr/share/php/OLE/PPS.php on line 221
    #38350862
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Den_Klс чем это может быть связано?Мож версия PHP выше стала?
...
Рейтинг: 0 / 0
Cannot redeclare class OLE_PPS in /usr/share/php/OLE/PPS.php on line 221
    #38350874
Den_Kl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Версия на Денвере PHP/5.3.13, на старом PHP 5.2, на новом хостинге PHP 5.3.
...
Рейтинг: 0 / 0
Cannot redeclare class OLE_PPS in /usr/share/php/OLE/PPS.php on line 221
    #38350877
Den_Kl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Перевёл на PHP 5.2 на хостинге, не помогло.
...
Рейтинг: 0 / 0
Cannot redeclare class OLE_PPS in /usr/share/php/OLE/PPS.php on line 221
    #38350922
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Den_KlЗдравствуйте!
Использую пакет pear Spreadsheet_Excel_Reader. На денвере работает отлично, перенёс на хостинг, тоже всё работает. Затем пришлось переносить на новый хостинг, и этот пакет перестал работать. Выдаёт следующую ошибку.
PHP Fatal error: Cannot redeclare class OLE_PPS in /usr/share/php/OLE/PPS.php on line 221

кусок кода, где 221 строка такой

function _savePpsSetPnt(&$pps_array)
{
$pps_array[count($pps_array)] = &$this;
$this->No = count($pps_array) - 1;
$this->PrevPps = 0xFFFFFFFF;
$this->NextPps = 0xFFFFFFFF;
if (count($this->children) > 0) {
$this->DirPps = $this->children[0]->_savePpsSetPnt($pps_array); //221 строка
} else {
$this->DirPps = 0xFFFFFFFF;
}
return $this->No;
}

Есть у кого-нибудь предположения, с чем это может быть связано?

А Вы уверены, что правильно строки посчитали? обычно (да и наверное всегда) cannot redeclare class указывает на закрывающую скобку определения класса.
А происходит такое при повторном импорте (если импорт дублируется). А вот больше ничего подсказать не могу, надо на месте разбираться.
...
Рейтинг: 0 / 0
Cannot redeclare class OLE_PPS in /usr/share/php/OLE/PPS.php on line 221
    #38352123
Den_Kl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так наверное, если бы была проблема в скобке, то и у меня локально не работало бы и на старом хостинге тоже.
Я прикрепил сам файл. Может в нём что-то можно увидеть?
...
Рейтинг: 0 / 0
Cannot redeclare class OLE_PPS in /usr/share/php/OLE/PPS.php on line 221
    #38352162
Den_Kl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ошибка где-то в другом месте (
Добавлял пустые строки в PPS.php файл, а ошибка всё равно в 221 строке.
Но если отключаю данный модуль, то ошибка пропадает, правда и пакет перестаёт работать. Ещё вопрос. Я никогда не настраивал сервера и не знаю какие должны быть модули. И путь какой-то другой /usr/share/php/OLE/PPS.php on line 221, а на самом деле строка подключения вот такая require_once 'Writer/OLE/PPS.php';
Может OLE должен работать? Как проверить, установлен ли он на сервере?
...
Рейтинг: 0 / 0
Cannot redeclare class OLE_PPS in /usr/share/php/OLE/PPS.php on line 221
    #38352200
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Den_KlЯ прикрепил сам файл. Может в нём что-то можно увидеть?
Код: php
1.
2.
3.
// | PHP Version 4                                                        |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2002 The PHP Group                                |  

Много воды утекло с тех пор, не все скрипты остались совместимы. Посвежее ничего нет?
...
Рейтинг: 0 / 0
Cannot redeclare class OLE_PPS in /usr/share/php/OLE/PPS.php on line 221
    #38353612
Den_Kl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за совет! Начал искать по новее и нашёл отличный пакет PHPExcel. Возможностей у него больше гораздо и он автономный.
Но вот беда ((( Он тоже не работает на этом хостинге. Это явно что-то с хостингом.
вот логи ошибки
"PHP Fatal error: Class 'PHPExcel' not found in /home/v/vobmenniru/public_html/admin/menu/actions/rate_action_export.php on line 11"

Начало файла rate_action_export.php
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<?include($_SERVER['DOCUMENT_ROOT']."/admin/autho.php");
include_once($_SERVER['DOCUMENT_ROOT']."/php/db/connect.php");
ini_set("max_execution_time",0);

include_once($_SERVER['DOCUMENT_ROOT']."/admin/module/Phpexcel.php");
if(!isset($_GET['id_town'])){$id_town=1;}else{$id_town=$_GET['id_town'];}
$export_query = "Select * from town where id=".$id_town;
$export_result = mysql_query($export_query);
$export_town = mysql_fetch_array($export_result);

$pExcel = new PHPExcel();  // 11 строка
$pExcel->setActiveSheetIndex(0);



Кусок файла Phpexcel.php
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
<?php
/**
 * PHPExcel
 *
 * Copyright (c) 2006 - 2012 PHPExcel
 ....................................
 * @version    1.7.8, 2012-10-12
 */

/** PHPExcel root directory */
if (!defined('PHPEXCEL_ROOT')) {
	define('PHPEXCEL_ROOT', dirname(__FILE__) . '/');
	require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
}


/**
 * PHPExcel
 *
 * @category   PHPExcel
 * @package    PHPExcel
 * @copyright  Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel)
 */
class PHPExcel
{



Вроде как всё предельно просто. Ничего лишнего.
Может всё таки что-то не так с путями? Я не знаю как сервер работает, но может как то там настроено что мои $_SERVER['DOCUMENT_ROOT']."/admin/module/Phpexcel.php" подобные пути обращения как раз и не работают?? Это возможно такое??
...
Рейтинг: 0 / 0
Cannot redeclare class OLE_PPS in /usr/share/php/OLE/PPS.php on line 221
    #38353624
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Den_Kl,

путь к файлу проверяли? физически он существует (начиная от корневого каталога)? А то путь странный... пользователь "v", а папка сайта на домен похожа, но не домен (без точки). Обычно по умолчанию папка именуется так же как и домен :)
...
Рейтинг: 0 / 0
Cannot redeclare class OLE_PPS in /usr/share/php/OLE/PPS.php on line 221
    #38353637
Den_Kl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот и я о том же, но это настройки сервера такие, я то прямые пути делаю. Вот кто бы подсказал, почему пути разные? И что на сервере выправить надо?
...
Рейтинг: 0 / 0
Cannot redeclare class OLE_PPS in /usr/share/php/OLE/PPS.php on line 221
    #38353640
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрА то путь странный... пользователь "v", а папка сайта на домен похожа, но не домен (без точки).Попадается такая система с разделением не так уж редко. Думаю, оно полезно когда на сервере количество пользователей исчисляется тысячами. Точка вроде как всегда выкидывается из имени пользователя (здесь юникс-пользователь vobmenniru ) чтобы избежать кучи проблем вроде префикса имени БД.
...
Рейтинг: 0 / 0
Cannot redeclare class OLE_PPS in /usr/share/php/OLE/PPS.php on line 221
    #38353641
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Den_KlВот кто бы подсказал, почему пути разные?Да вроде все верно с путями. Мож с правами чего и класс не грузится? Замените include_once на requre_once. Это вызовет фатальную ошибку при невозможности загрузить файл класса.
...
Рейтинг: 0 / 0
Cannot redeclare class OLE_PPS in /usr/share/php/OLE/PPS.php on line 221
    #38353647
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleПрограмёрА то путь странный... пользователь "v", а папка сайта на домен похожа, но не домен (без точки).Попадается такая система с разделением не так уж редко. Думаю, оно полезно когда на сервере количество пользователей исчисляется тысячами. Точка вроде как всегда выкидывается из имени пользователя (здесь юникс-пользователь vobmenniru ) чтобы избежать кучи проблем вроде префикса имени БД.
А... сорри, не знал. Все хостеры, с которыми работал, именовали пользователей типа "uX[X...]", "aX[X...]" и т.д. А потом шли папки сайтов (так как у одного юзера могло быть по 20-30 доменов).

А локально (на дэнвэре) с PHPExcel работает?
...
Рейтинг: 0 / 0
Cannot redeclare class OLE_PPS in /usr/share/php/OLE/PPS.php on line 221
    #38353661
Den_Kl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да работает.
...
Рейтинг: 0 / 0
Cannot redeclare class OLE_PPS in /usr/share/php/OLE/PPS.php on line 221
    #38353665
Den_Kl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkleЗамените include_once на requre_once. Это вызовет фатальную ошибку при невозможности загрузить файл класса.

УРА!! )
И что это значит? )

PHP Fatal error: require_once() [<a href='function.require'>function.require</a>]: Failed opening required '/home/v/vobmenniru/public_html/admin/module/Phpexcel.php' (include_path='.:/usr/share/php5:/usr/share/php') in /home/v/vobmenniru/public_html/admin/menu/actions/rate_action_export.php on line 5,
...
Рейтинг: 0 / 0
Cannot redeclare class OLE_PPS in /usr/share/php/OLE/PPS.php on line 221
    #38353679
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Den_KlИ что это значит? )Ну дык
Den_KlFailed opening required....Проверьте еще разок путь и имя файла включая регистр букв. Мож сивол какой затесался неведомый или буква попуталась (типа "e" латинская и "е" русская). Крайне редко, но все же бывают ошибки копипаста. Проверьте еще право на чтение файла для срипта/вебсервера и право входа в его папку.
...
Рейтинг: 0 / 0
Cannot redeclare class OLE_PPS in /usr/share/php/OLE/PPS.php on line 221
    #38353691
Den_Kl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle,
Вывел путь на экран $_SERVER['DOCUMENT_ROOT']."/admin/module/Phpexcel.php" получилось следующие "/home/v/vobmenniru/public_html/admin/module/Phpexcel.php" это нормально?
А про права Вы имели ввиду на папки 755, а на файлы 644? Если да, то так и есть.
...
Рейтинг: 0 / 0
Cannot redeclare class OLE_PPS in /usr/share/php/OLE/PPS.php on line 221
    #38353705
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Den_Klvkle,
Вывел путь на экран $_SERVER['DOCUMENT_ROOT']."/admin/module/Phpexcel.php" получилось следующие "/home/v/vobmenniru/public_html/admin/module/Phpexcel.php" это нормально?
А про права Вы имели ввиду на папки 755, а на файлы 644? Если да, то так и есть.

Права правильные. Если локально работает, значит и русских букв в названии нету (так как и локально не работало бы). Если с регистром букв не ошиблись, то должно работать (вот значение регистра зависит от настроек системы насколько помню)... Однако, можно попробовать создать пустой php файл и импортировать в него что угодно. Если это "что угодно" будет импортировано нормально, значит с хостером всё нормально и всё-таки где-то у Вас ошибка затесалась. Если же и там будет ошибка, значит желательно связаться с хостером (значит у него должна быть какая-то особенность, например с директориями что-то не так).
...
Рейтинг: 0 / 0
Cannot redeclare class OLE_PPS in /usr/share/php/OLE/PPS.php on line 221
    #38354055
Den_Kl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тему можно закрывать!
Нашёл я ошибку. )
В винде файлы с именами phpexcel.php и PHPExcel.php это один и тот же файл, т.е. имена файлом не зависят от регистра букв.
А вот в unix это будут 2 разных файла.
У меня в модуле файл PHPExcel.php, а я его инклюдил как Phpexcel.php.
Всем спасибо за помощь!
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Cannot redeclare class OLE_PPS in /usr/share/php/OLE/PPS.php on line 221
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]