Tengo un problema con header location al trabajar con servidor local.
Donde he detectado el problema tengo el código siguiente. Sirve para que un usuario realice login
Código PHP:
Ver original<?php
namespace modules;
use controller, models;
class Login{
public function view(){
return (new controller\Template())->view('login', 'login');
}
public function login(){
':password'=> \
filter_input(\INPUT_POST
, 'login_password'));
if((new \models\LoginDb())->login($values)!==FALSE){
$_SESSION['user']=$values[':user'];
$location="home/";
}else{$location="login/";} //header('Location:'.ROOT_PATH.'/login');
header ('Location:'.\LOCATION_PATH
.$location); }
}
LOCATION_PATH tiene el siguiente valor
Introduzco un usuario y password que existen en la BD, por lo tanto los datos son enviados a login/login/, ahí los datos son comprobados y como existen, la variable $location="home/".
Entonces el header location realiza lo siguiente
El problema está en que el header location no redirige como espero, ya que hace esto otro en la barra de navegación
(quito el http:// para que se pueda ver la dirección completa)
Cita: localhost/framework/login/login/home/home/home/home/home/home/home/home/home/home/home/home/home/home/home/home/home/home/home/home/
apareciendo este otro mensaje de error
Cita: La página no está redirigiendo adecuadamente
Firefox ha detectado que el servidor está redirigiendo la solicitud a esta dirección de una manera en la que nunca terminará.
Este problema a veces está causado por desactivar o rechazar la recepción de cookies.
Pero no estoy utilizando cookies, porque no las he implementado en el sistema.
Así que el foco del problema está en que no me saca de la URL /localhost/framework/login/login/ sino que me mantiene ahí, sumando el LOCATION_PATH + $location a la URL actual.
Por más que lo pienso, no tiene sentido lo que hace, sé que estoy equivocándome en algo y no sé qué es :S
¿Alguien puede ayudarme?
Un saludo.