Tengo un problema cuando quiero redirigir con header("location
En mi servidor de prueba (localhost) funciona perfecto, pero en la ubicación remota se queda la página en blanco y no hace nada. Probé subir un archivo que solamente tuviera header("location:www.google.com") y funciona perfecto, así que el error está en el script; pero no puedo encontrarlo.
Ya leí toda la documentación en estos foros, y no encuentro que nadie haya tenido un problema similar. Les copio parte del código, a ver si pueden ver algo raro
¿Hay alguna configuración en el php.ini que se deba realizar? Más allá de que no pueda modificar la configuración del php remoto, sabiendo que es quizás puede encontrar una forma de salvar el error.
El sistema usa templates, con TemplatePower, pero el resto de las páginas me funciona bien; así que no viene por ahí.
Otra cosa que probé es poner a mano la url de destino en el navegador, y también funciona.
Código PHP:
<?php
global $db;
$tpl = new TemplatePower( TEMPLATES."examenes.tpl" );
$tpl->prepare();
$tpl->assign( "TITULO", "Exámenes Online" );
$p = $_GET['p'];
switch($p){
default:
session_write_close ();
header("location:$PHP_SELF?s=examenes&p=login");
exit;
break;
case login:
session_start();
$tpl->assign( "SUBTITULO", "Ingreso" );
$tpl->assign( "TEXTO", "Por favor, ingrese el nombre de usuario y la contraseña para continuar.");
$tpl->newBlock( "login" );
if ($_POST['logon']==1){
if ($_POST['usuario']=="") $msg = "Debe completar el nombre de usuario";
elseif ($_POST['password']=="") $msg = "Debe completar la contraseña";
else{
$usuario = trim(strtolower($_POST['usuario']));
$password = trim(strtolower($_POST['password']));
$nivel= ingreso($usuario, $password);
switch($nivel){
case 0: $msg ="Usuario no existente"; break;
case 1: $msg ="La contraseña es incorrecta"; break;
default: $_SESSION['nivel'] = $nivel;
session_write_close ();
header("location:$PHP_SELF?s=examenes&p=i");
exit;
break;
}
}
$tpl->assign( "NIVEL", $msg );
}
break;