Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/09/2013, 14:56
Avatar de guardarmicorreo
guardarmicorreo
 
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Problema con require_once

Tengo la siguiente disposición de carpetas y ficheros en el servidor.

httpdocs
  • index.php (require_once('views/html_public.php'))
  • callback.php (require_once('models/config.php') y require_once('models/clases.php'))
  • admin
    (carpeta)
    • adminapp.php (require_once ('html_admin.php'))
    • controller_admin.php (require_once ('../models/clases.php'))
    • html_admin.php (require_once('controller_admin.php'))
  • control
    (carpeta)
    • controller_public.php (require_once('models/clases.php'))
  • views
    (carpeta)
    • html_public.php (require_once('control/controller.php'))
  • models
    (carpeta)
    • clases.php (require_once('config.php') y require_once ('twitteroauth/twitteroauth.php') )
    • config.php
  • twitteroauth
    (carpeta)
    • oauth.php
    • twitteroauth.php

Entonces el problema está en que si un usuario entra en index.php y en el documento clases.php está establecido el require_once de twitteroauth.php así

Código PHP:
Ver original
  1. require_once('twitteroauth/twitteroauth.php');

El usuario no experimentará ningún problema, pero el admin tendrá el siguiente error en pantalla

Cita:
Warning: require_once(twitteroauth/twitteroauth.php): failed to open stream: No such file or directory in /var/www/vhosts/videosfav.com/httpdocs/models/clases.php on line 4 Fatal error: require_once(): Failed opening required 'twitteroauth/twitteroauth.php' (include_path='.:') in /var/www/vhosts/videosfav.com/httpdocs/models/clases.php on line 4
La línea 4 de clases.php es el require_once recién descrito a twitteroauth.


En cambio, si lo soluciono escribiendo en clases.php el siguiente require_once

Cita:
require_once('../twitteroauth/twitteroauth.php');
El admin no experimenta ningún problema pero el usuario sí.

Se que esto se debe a que los require_once del lado del usuario han ido escogiendo como directorio raíz la situación del index.php y que por eso el primer require_once no da problemas, pero para el admin sí.

¿Cómo puedo solucionar esto?
__________________
Ayúdame a hacerlo por mi mismo.