Foros aprenderaprogramar.com

Aprender a programar => De todo un poco... => Mensaje iniciado por: foxternoster en 02 de Marzo 2012, 08:06

Título: Fatal error: Call to a member function cd() on a non-object in file.php notice
Publicado por: foxternoster en 02 de Marzo 2012, 08:06
Hola, tengo una web que venía funcionando normalmente y ayer sin haber hecho yo nada deja de funcionar y aparece este mensaje

Warning (2): strtotime() [function.strtotime]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CET/1.0/no DST' instead [CORE/cake/libs/cache.php, line 597]


Notice: Trying to get property of non-object in /var/www/vhosts/afrecho.net/httpdocs/micooking/cake/libs/cache/file.php on line 259

Fatal error: Call to a member function cd() on a non-object in /var/www/vhosts/afrecho.net/httpdocs/micooking/cake/libs/cache/file.php on line 259


Por favor si alguien le ha ocurrido lo mismo que me dé una ayuda
Título: Re:Fatal error: Call to a member function cd() on a non-object in... file.php
Publicado por: Alex Rodríguez en 03 de Marzo 2012, 13:09
Hola foxternoster, a ver si puedes entrar en la ruta /var/www/vhosts/afrecho.net/httpdocs/micooking/cake/libs/cache/file.php que es la que te señala el error y haces una copia del código entre la línea 250 y 270 para ver el fragmento de código donde supuestamente está el problema.
Título: Re:Fatal error: Call to a member function cd() on a non-object in... file.php
Publicado por: foxternoster en 05 de Marzo 2012, 07:54
El caso es que ahora no encuentro los números de línea
Título: Re:Fatal error: Call to a member function cd() on a non-object in... file.php
Publicado por: Alex Rodríguez en 06 de Marzo 2012, 07:57
Necesitas un editor que te muestre los números de línea. Si abres el archivo con el bloc de notas de windows no dispones de números de línea. Tienes que abrirlo con un editor más avanzado como Notepad++ ó Crimson.
Título: Re:Fatal error: Call to a member function cd() on a non-object in... file.php
Publicado por: foxternoster en 07 de Marzo 2012, 00:05
El caso es que uso notepad++ pero antes aparecían los númros de línea y ahora han dejado de aparecer
Título: Re:Fatal error: Call to a member function cd() on a non-object in... file.php
Publicado por: Alex Rodríguez en 08 de Marzo 2012, 07:59
Posiblemente se te haya desconfigurado. Comprueba lo siguiente. Entra en Notepad++ luego en Configurar luego en Preferencias luego pestaña opciones visuales y mira si está marcada la opción "Mostrar números de línea". Si no es así, márcala para que se te muestren.
Título: Re:Fatal error: Call to a member function cd() on a non-object in... file.php
Publicado por: foxternoster en 09 de Marzo 2012, 16:31
Código del archivo file.php de las líneas 250 a la 283:

/**
 * Get absolute file for a given key
 *
 * @param string $key The key
 * @return mixed Absolute cache file for the given key or false if erroneous
 * @access private
 */
   function _setKey($key) {
      $this->_File->Folder->cd($this->settings['path']);
      if ($key !== $this->_File->name) {
         $this->_File->name = $key;
         $this->_File->path = null;
      }
      if (!$this->_File->Folder->inPath($this->_File->pwd(), true)) {
         return false;
      }
   }

/**
 * Determine is cache directory is writable
 *
 * @return boolean
 * @access private
 */
   function __active() {
      if ($this->_init && !is_writable($this->settings['path'])) {
         $this->_init = false;
         trigger_error(sprintf(__('%s is not writable', true), $this->settings['path']), E_USER_WARNING);
         return false;
      }
      return true;
   }
}
Título: Re:Fatal error: Call to a member function cd() on a non-object in... file.php
Publicado por: Ogramar en 10 de Marzo 2012, 17:03
Hola foxternoster, en este archivo no es donde está el problema, aunque aparezca relacionado en los mensajes de error. Busca el archivo /httpdocs/myweb/app/config/core.php y dentro de él la zona donde aparece:

If you are on PHP 5.3 uncomment this line and correct your server timezone

Pega el código, creo que ahí sí veremos el problema.
Título: Re:Fatal error: Call to a member function cd() on a non-object in... file.php
Publicado por: foxternoster en 11 de Marzo 2012, 13:24
ok voy a mirarlo
Título: Re:Fatal error: Call to a member function cd() on a non-object in... file.php
Publicado por: foxternoster en 12 de Marzo 2012, 08:23
Ahí va:

/**
 * The classname and database used in CakePHP's
 * access control lists.
 */
   Configure::write('Acl.classname', 'DbAcl');
   Configure::write('Acl.database', 'default');

/**
 * If you are on PHP 5.3 uncomment this line and correct your server timezone
 * to fix the date & time related errors.
 */
    //date_default_timezone_set('UTC');   
/**
 *
 * Cache Engine Configuration
 * Default settings provided below
 *
 * File storage engine.
Título: Re:Fatal error: Call to a member function cd() on a non-object in... file.php
Publicado por: Ogramar en 13 de Marzo 2012, 00:05
Ahí tienes la solución. Tienes que cambiar lo que está comentado para que quede algo así:

/**
 * If you are on PHP 5.3 uncomment this line and correct your server timezone
 * to fix the date & time related errors.
 */
      date_default_timezone_set('Europe/Berlin');

      
Pruébalo y ya nos dices...