Cannot redeclare class. хотя инклюдил 1 раз

Тема в разделе "PHP", создана пользователем phillip, 26 апр 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    Опять у меня заглючило именно на денвере. на хостинге вся эта хрупкая системка работает исправно. Вот на что сетует денвер:
    Код:
    Fatal error: Cannot redeclare class wp_poster in W:\home\localhost\www\work\poster\classes\wp_poster.php on line 11
    При этом на 11 строке у меня находится начало класса
    Код:
    class wp_poster {
    ....
    Использую я этот класс из другого файла, следующим образом:
    Код:
    require ('classes/wp_poster.php');  
    		require ('classes/ixr_client.php'); 
    		$poster = wp_poster::getInstance(); 
    		$blog = new wp_blog( $site['siteurl']."/xmlrpc.php", $site['sitelogin'], $site['sitepassword'], 0);  
    		$post = new wp_post();
    		$post->set_title($title); 
    		$post->set_description($content);
    		$post->set_post_status('publish'); 
    		$post->set_mt_excerpt ($content); 
    		$post->set_wp_slug ($slug);
    		$poster->post($blog, $post); 
    Как видно, инклюдю я require ('classes/wp_poster.php'); лишь единожды. больше нигде не инклюдю. Почему жалуется что пытаюсь redeclare- хз(

    1. пхпинфо хостинга, где ранее скрипт работал исправно
    Перейти по ссылке
    2.пхпинфо денвера
    Перейти по ссылке

    Что делать :nezn:
     
  2. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    Заменить require ('classes/wp_poster.php');
    на
    if(!class_exists('wp_poster')) require ('classes/wp_poster.php');

    Хотя по идее, если получаешь ошибку, значит класс уже подгружен и require вообще не нужен.
     
    phillip нравится это.
  3. Kaimi

    Kaimi

    Регистр.:
    28 окт 2007
    Сообщения:
    257
    Симпатии:
    253
    Код:
    Заменить require ('classes/wp_poster.php');
    на
    if(!class_exists('wp_poster')) require ('classes/wp_poster.php');
    
    Проще require_once написать
     
    phillip нравится это.
  4. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    Конечно проще.
    Только, не всегда подходит.
     
  5. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    Мне подошло :) И у меня опять выскакивает ошибка :( уже после этой. Опять же на хостинге- не жаловалось, работало все как часы. Вот ошибка. Может быть поможете еще раз))

    Код:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
    UPDATE `content` SET `posted`='Y' WHERE `id`=
    Счас полазил по скрипту- подобные вылазят не только когда делаю UPDATE бд, но и когда скрипт пытается добавить запись в бд. Хотя в одном месте даже ошибки не показывает. Просто не добавляет в бд строку и все тут.

    upd: опа.... походу нашел ошибку свою. сам затупил. спать пора. если завтра не справлюсь- придется снова сюда вернуться))
     
  6. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    На хостинге просто отключен вывод ошибок, поэтому и ничего не видел.
    По вопросу - у тебя запрос оборван.
     
Статус темы:
Закрыта.