Foros del Web » Programando para Internet » PHP »

un if que ha dejado de funcionar, me lo podeis echar un ojo?

Estas en el tema de un if que ha dejado de funcionar, me lo podeis echar un ojo? en el foro de PHP en Foros del Web. Hola a tod@s! tengo un if que lleva funcionando bastante tiempo y de golpe y porrazo ha dejado de funcionar. Es muy simple...pero yo que ...
  #1 (permalink)  
Antiguo 16/11/2010, 09:41
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 16 años, 5 meses
Puntos: 16
un if que ha dejado de funcionar, me lo podeis echar un ojo?

Hola a tod@s!
tengo un if que lleva funcionando bastante tiempo y de golpe y porrazo ha dejado de funcionar. Es muy simple...pero yo que sé... a veces funciona, a veces no.
os cuento:
tengo una variable $r que trae todo el contenido del template, este if mira que $r tenga información, si no que salte error

Código:
if(!$r) {
					$this->_displayHtml404Error();
                } else {
                    echo $r;
                }
* he probado a darle la vuelta al if (if r, pinto r, else error )
* he probado con empty
* a contar el numero de caracteres y que sea 0
* $r ==""
y siempre entra en la función que genera error excepto:
* si comento $this->_displayHtml404Error();
* si pongo un var_dump de $r antes del if
* si cambio el contenido del if por echo "entra en el if" y echo "entra en el else", ...vamos, cuando pongo chivatos funciona y cuando los quito, llegando a esto siempre con el mismo valor en $r


llevo mucho tiempo ya dandole vueltas y no hay manera, a ver si me haceis el favor de iluminarme.
muchas gracias de antemano. un saludo
  #2 (permalink)  
Antiguo 16/11/2010, 09:53
Avatar de angelAparicio  
Fecha de Ingreso: julio-2009
Ubicación: Sevilla
Mensajes: 307
Antigüedad: 14 años, 9 meses
Puntos: 22
Respuesta: un if que ha dejado de funcionar, me lo podeis echar un ojo?

Sin saber como se define $r puede ser complicado. ¿Has probado con isset($r) ?
__________________
Mis webs:
- Programador Web Autónomo
- Conciertos en Sevilla
  #3 (permalink)  
Antiguo 16/11/2010, 10:07
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 16 años, 5 meses
Puntos: 16
Respuesta: un if que ha dejado de funcionar, me lo podeis echar un ojo?

Gracias por tu tiempo.

Es dificil de explicar sin meter lineas código a punta pala.
el último tramo de código es este:

Código:
 $r = $this->_fetchTemplate($tplFile . '.html');
 if (! $r) {
                    $rpos = strrpos($tplFile, '-');
                    if ($rpos) {
                        $tplFile = substr($tplFile, 0, $rpos) . '.'
                        . substr($tplFile, $rpos + 1);
                        $r = $this->_fetchTemplate($tplFile);
                    }
                } 
		if(! $r) {
			$this->_displayHtml404Error();
                } else {
                    echo $r;
                }
_fetchTemplate extrae el código de la plantilla html
el primer if que está planteado de la misma manera funciona perfectamente.

isset me dice si la variable está definida, aun que ya de perdidos al rio voy a ver :P
gracias. Ahora te cuento
  #4 (permalink)  
Antiguo 16/11/2010, 10:13
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 16 años, 5 meses
Puntos: 16
Respuesta: un if que ha dejado de funcionar, me lo podeis echar un ojo?

joe, funciona!!!, voy a comprobar que se comporte como debe en otros casos, me dejas dando palmas con las orejas XDD
  #5 (permalink)  
Antiguo 16/11/2010, 10:20
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 16 años, 5 meses
Puntos: 16
Respuesta: un if que ha dejado de funcionar, me lo podeis echar un ojo?

pues va a ser que no, si meto una url que no existe no me entra a la pantalla de error ¬¬"
  #6 (permalink)  
Antiguo 16/11/2010, 10:23
Avatar de angelAparicio  
Fecha de Ingreso: julio-2009
Ubicación: Sevilla
Mensajes: 307
Antigüedad: 14 años, 9 meses
Puntos: 22
Respuesta: un if que ha dejado de funcionar, me lo podeis echar un ojo?

¿Y probando con
if ( isset($r) && !empty($r) ) {
echo $r;
} else {
$this->_displayHtml404Error();
}


O algo similar. Si antes siempre te daba el error y ahora no te lo da nunca, trata de combinar las condiciones que estás usando
__________________
Mis webs:
- Programador Web Autónomo
- Conciertos en Sevilla
  #7 (permalink)  
Antiguo 16/11/2010, 10:28
Avatar de dual3nigma
Colaborador
 
Fecha de Ingreso: febrero-2010
Ubicación: Ciudad de México
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 122
Respuesta: un if que ha dejado de funcionar, me lo podeis echar un ojo?

Que te pone el var_dump() ??
  #8 (permalink)  
Antiguo 16/11/2010, 10:40
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 16 años, 5 meses
Puntos: 16
Respuesta: un if que ha dejado de funcionar, me lo podeis echar un ojo?

Se me tiene que estar escapando algo
if ( isset($r) && !empty($r) ) $r existe y no está vacia, pero no entra.... cuando encuentre solución ya la postearé, voy a seguri probando.
Gracias de todos modos :)
  #9 (permalink)  
Antiguo 16/11/2010, 10:44
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 16 años, 5 meses
Puntos: 16
Respuesta: un if que ha dejado de funcionar, me lo podeis echar un ojo?

el var dump me enseña todo el template
string(9297) "<!DOCTYPE html PUBLIC .....
  #10 (permalink)  
Antiguo 16/11/2010, 12:58
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 16 años, 5 meses
Puntos: 16
Respuesta: un if que ha dejado de funcionar, me lo podeis echar un ojo?

bueno, lo he solucionado con algo que no tiene nada que ver XDD
a este template llegaba a través de una redirección, ha sido poner exit; debajo del header location y todo ha vuelto a funcionar como antes.

vaya tela ¬¬"

Muchas gracias. y un saludo :)
  #11 (permalink)  
Antiguo 17/11/2010, 05:00
Avatar de angelAparicio  
Fecha de Ingreso: julio-2009
Ubicación: Sevilla
Mensajes: 307
Antigüedad: 14 años, 9 meses
Puntos: 22
Respuesta: un if que ha dejado de funcionar, me lo podeis echar un ojo?

Cuando pensamos que algo falla y por más que lo revisamos está todo bien el problema suele estar en otro lado (generalmente donde se definen las variables)

No falla.
__________________
Mis webs:
- Programador Web Autónomo
- Conciertos en Sevilla

Etiquetas: Ninguno
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 14:12.