en super resumen: si pongo un die dentro de un if la instruccion de abajo deja de funcionar AUN CUANDO ESTE IF nunca es accesado, si quito el die funciona.
Pongo el codigo para que entiendan mejor
Código PHP:
//defino variable
$INGRESADO= isset($_SESSION['ingresado']) ? $_SESSION['ingresado']: NULL;
//SI ESTA CON VARIABLE , CONTINUA sino MUERE
if ($INGRESADO != false){
cerrar_usuario();
log_info( "normal" , "WS_ACCESS"," acceso invalido no autorizado - sin sesion ","PELIGRO",1,1);
//el querido DIE!
die();
};
//SI TIENE SESSION Y LO LLAMAN SE REPRODUCE ESTO , NO VOY A PONER EL CODIGO, PERO ESTA ES UNA FUNCION EJEMPLO
function get_mp3() {
if(file_exists($file)){
$fileSize = filesize($file);
header("Accept-Ranges: bytes");
header("Content-Length: $fileSize");
header ("Content-Range: bytes 0-" .$fileSize - 1 . "/" . $fileSize . ";");
header("Content-Type: audio/mpeg");
header("Cache-Control: max-age=86400");
readfile($file);
die();
}
}
};
caso 1:
- existe variable de session
- llaman la funcion get_mp3
- COMENTO Y ELIMINO EL DIE DE LA FUNCION QUE COMPRUEBA, por lo cual el die no existe
resultado: funciona correctamente, mp3 suena y esta correcto.
caso 2:
- existe variable de session
- llaman la funcion get_mp3
- EXISTE EL DIE DE LA FUNCION QUE COMPRUEBA, por lo cual el die esta ahi
resultado: NO funciona correctamente, mp3 no suena
Como vieron el codigo ese die nunca es llamado,porque en los dos casos la session existe, ya hice pruebas de todos tipos, no es ninguna problema comun, la session siempre existe , ya la comprobe de mil formas. A mi lo unico que se me ocurre es un caracter tipo BOM, que por razones obvias no puedo ver.
Necesito saber porque si quito ese die funcion aunque cuando donde esta ese dia nunca sea ejecutado.
Ideas?ayuda :)