Foros del Web » Programando para Internet » PHP »

[en un Hosting] define() no define?

Estas en el tema de [en un Hosting] define() no define? en el foro de PHP en Foros del Web. Hola chicos, estoy lidiando con un hosting de terror. Al cual decidi subir unos archivos los que funcionan perfectamente en Win: wamp y Linux. Este ...
  #1 (permalink)  
Antiguo 17/05/2012, 07:26
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Pregunta [en un Hosting] define() no define?

Hola chicos, estoy lidiando con un hosting de terror.
Al cual decidi subir unos archivos los que funcionan perfectamente en Win: wamp y Linux.

Este hosting tiene Windows (segun me dijieron).

El codigo es el siguiente:
Código PHP:
    define('ROOT_DIR',str_replace('\\\\''/'realpath(dirname(__FILE__))).'/'); #Get real path for root dir ---linux and windows
    
define('INCLUDE_DIR',ROOT_DIR.'include/'); //Change this if include is moved outside the web path.
    
define('PEAR_DIR',INCLUDE_DIR.'pear/');
    
define('SETUP_DIR',INCLUDE_DIR.'setup/'); 
Del problema nos damos cuenta aca:
Código PHP:
    $configfile='';
    if(
file_exists(ROOT_DIR.'ostconfig.php')) 
        
$configfile=ROOT_DIR.'ostconfig.php';
    elseif(
file_exists(INCLUDE_DIR.'settings.php')) 
        
$configfile=INCLUDE_DIR.'settings.php';
    elseif(
file_exists(INCLUDE_DIR.'ost-config.php'))      
   
$configfile=INCLUDE_DIR.'ost-config.php';
    elseif(
file_exists(ROOT_DIR.'include/'))
        
header('Location: '.ROOT_PATH.'setup/');

    if(!
$configfile || !file_exists($configfile)) die('<b>Error al cargar la configuraci&oacute;n. Ponte en contacto con el administrador.</b>'); 

En el cual me tira el die().
Al die le agrege $configfile, y este me lo muestra en blanco.
cambie los else if a:

Código PHP:
    $configfile='';
    if(
file_exists(ROOT_DIR.'ostconfig.php')) 
        
$configfile=ROOT_DIR.'ostconfig.php';
    elseif(
file_exists(INCLUDE_DIR.'settings.php')) 
        
$configfile=INCLUDE_DIR.'settings.php';
    elseif(
file_exists('include/ost-config.php'))
         
$configfile='include/ost-config.php';
    elseif(
file_exists(ROOT_DIR.'include/'))
        
header('Location: '.ROOT_PATH.'setup/');

    if(!
$configfile || !file_exists($configfile)) die('<b>Error al cargar la configuraci&oacute;n. Ponte en contacto con el administrador.</b>'); 
Y en ese caso $configfile me tira el resultado correcto, pero como todo el sistema de ticket esta echo basado en estos define, se me va a complicar.

si alguien se da una idea como solucionar este problema, se los agradecer e aqui el phpinfo()
__________________
Mono programando!
twitter.com/eguimariano
  #2 (permalink)  
Antiguo 17/05/2012, 07:39
 
Fecha de Ingreso: mayo-2012
Mensajes: 61
Antigüedad: 11 años, 11 meses
Puntos: 23
Respuesta: [en un Hosting] define() no define?

Ni te das una idea de lo entendible que quedaria el codigo si usases las llaves ({}) en los if :P

No entendi muy bien tu problema.. pero $configfile en algun momento tiene un booleano para que puedas validarlo asi: !$configfile ?

Saludos!
  #3 (permalink)  
Antiguo 17/05/2012, 07:40
Avatar de pablor21  
Fecha de Ingreso: noviembre-2008
Ubicación: Montevideo - Uruguay
Mensajes: 197
Antigüedad: 15 años, 5 meses
Puntos: 13
Respuesta: [en un Hosting] define() no define?

Hola, creo que el problema puede estar en realpath(dirname(__FILE__))), algunos servidores no permiten el uso de __FILE__ quizás debas usar $_SERVER['DOCUMENT_ROOT'].
Hechale un vistazo a http://php.net/manual/es/language.co...predefined.php
Luego cuèntame como te va.
__________________
Desarrolloador Freelance - http://www.mvdit.com.uy
  #4 (permalink)  
Antiguo 17/05/2012, 12:50
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: [en un Hosting] define() no define?

Cita:
Iniciado por pablor21 Ver Mensaje
Hola, creo que el problema puede estar en realpath(dirname(__FILE__))), algunos servidores no permiten el uso de __FILE__ quizás debas usar $_SERVER['DOCUMENT_ROOT'].
Hechale un vistazo a http://php.net/manual/es/language.co...predefined.php
Luego cuèntame como te va.
pablor21, no es el caso __FILE__ y document_root no esta dentro de la variable $_SEVER en el hosting.

el error viene por:

if(!defined('ROOT_PATH')) define('ROOT_PATH','./'); //root path. Damn directories


Si cambio './' por '' los archivos que llamen a este archivo dentro del mismo directorio, funcionan Bien.
Los archivos que esten dentro de una carpeta(sub directorio) le tengo que cambiar el valor a:
'../' para que tenga efecto.

Y continua. Ya que claramente el problema no es el define(), voy abrir un nuevo topic para charlar el tema.

Gracias a todos
__________________
Mono programando!
twitter.com/eguimariano

Etiquetas: define, hosting
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:35.