Autor Tema: Fatal error: Call to a member function cd() on a non-object in file.php notice  (Leído 13037 veces)

foxternoster

  • Sin experiencia
  • *
  • Mensajes: 42
    • Ver Perfil
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
« Última modificación: 03 de Diciembre 2020, 20:29 por César Krall »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
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.

foxternoster

  • Sin experiencia
  • *
  • Mensajes: 42
    • Ver Perfil
El caso es que ahora no encuentro los números de línea

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
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.

foxternoster

  • Sin experiencia
  • *
  • Mensajes: 42
    • Ver Perfil
El caso es que uso notepad++ pero antes aparecían los númros de línea y ahora han dejado de aparecer

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
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.

foxternoster

  • Sin experiencia
  • *
  • Mensajes: 42
    • Ver Perfil
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;
   }
}

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
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.

foxternoster

  • Sin experiencia
  • *
  • Mensajes: 42
    • Ver Perfil
ok voy a mirarlo

foxternoster

  • Sin experiencia
  • *
  • Mensajes: 42
    • Ver Perfil
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.

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
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...


 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".