Foros del Web » Programando para Internet » PHP »

Redirigir a la página de la que proviene el usuario pero quitando los parámetros

Estas en el tema de Redirigir a la página de la que proviene el usuario pero quitando los parámetros en el foro de PHP en Foros del Web. Buenas, el problema que tengo que resolver es el siguiente: en todas las páginas de mi web hay un div que te permite escribir el ...
  #1 (permalink)  
Antiguo 28/11/2010, 13:35
 
Fecha de Ingreso: febrero-2010
Mensajes: 23
Antigüedad: 14 años, 8 meses
Puntos: 0
Redirigir a la página de la que proviene el usuario pero quitando los parámetros

Buenas, el problema que tengo que resolver es el siguiente: en todas las páginas de mi web hay un div que te permite escribir el nombre de usuario y clave para poder logearte. Esos datos siempre se envían a una página php que valida los datos. Si el nombre de usuario está vacío, por ejemplo, esta página de validación ha de redirigir a la página de la que proviene con un parámetro. Sé que se hace con header("Location: paginaALaQueQuieroIr.php?parametro=valor"), lo que no sé es como conseguir la página de la que proviene (que ha de ser la paginaALaQueQuieroIr en el header) pero sin los parámetros que pudiera tener de antes).

Ya probé con $_SERVER['HTTP_REFERER'] pero no sirve porque puede pasar esto:

1. El usuario está en la página caracteristicas.php, escribe el nombre de usuario y contraseña y envía los datos.
2. El fichero validacionUsuario.php comprueba que el campo nombre de usuario está vacío y redirige de esta forma:
header("Location:". $_SERVER['HTTP_REFERER'] ."?error=1".
3. Entonces la URL que aparece es "caracteristicas.php?error=1". Esta página ve que le llega el parámetro error y muestra un mensaje de error.
4. Entonces el usuario vuelve a intentar logearse, vuelve a dejar el campo nombre de usario vacío y envía los datos de nuevo.
5. El fichero validacionUsuario ejecuta de nuevo el header("Location:". $_SERVER['HTTP_REFERER'] ."?error=1" y entonces la página que devuelve es caracteristicas.php?error=1?error=1.

Esto es lo que quiero solucionar! Como le digo al header que quite los parámetros que tuviera la página de la que proviene el usuario???
Espero haberme explicado bien.
Gracias de antemano.
Un saludo.
  #2 (permalink)  
Antiguo 28/11/2010, 15:14
 
Fecha de Ingreso: febrero-2010
Ubicación: cba
Mensajes: 203
Antigüedad: 14 años, 9 meses
Puntos: 16
Respuesta: Redirigir a la página de la que proviene el usuario pero quitando los pará

porque no haces la validacion del usuario en las mismas paginas, en lugar de hacerl en un archivo aparte? es una sugerencia nada mas, y a cada pagina le pones el header location que le corresponda


Código PHP:


if($_POST['submit']=='Ingresar')
{
    
    
    
    if(!
$_POST['username'] || !$_POST['password'])
        
$err[] = '* Error, debe completar todos los datos!';
    
    if(!
count($err))
    {
        
$_POST['username'] = mysql_real_escape_string($_POST['username']);
        
$_POST['password'] = mysql_real_escape_string($_POST['password']);
        
$_POST['rememberMe'] = (int)$_POST['rememberMe'];
        
        
// Escaping all input data

        
$row mysql_fetch_assoc(mysql_query("SELECT * FROM tz_members WHERE usr='{$_POST['username']}' AND pass='".($_POST['password'])."'"));

        if(
$row['usr'])
        {
            
// If everything is OK login
            
            
$_SESSION['usr']=$row['usr'];
            
$_SESSION['pass']=$row['pass'];
            
$_SESSION['id'] = $row['id'];
            
$_SESSION['email'] = $row['email'];
            
$_SESSION['nombre']=$row['nombre'];
            
$_SESSION['apellido'] = $row['apellido'];
            
$_SESSION['domicilio'] = $row['domicilio'];
            
$_SESSION['cp']=$row['cp'];
            
$_SESSION['tel'] = $row['tel'];
            
$_SESSION['localidad'] = $row['localidad'];
            
$_SESSION['rememberMe'] = $_POST['rememberMe'];
            
            
// Store some data in the session
            
            
setcookie('tzRemember',$_POST['rememberMe']);
        }
        else 
$err[]='* Error, Nombre de Usuario y Contraseña Invalidos!';
    }
if(
$err)
    
$_SESSION['msg']['login-err'] = implode('<br />',$err);
    
// Save the error messages in the session

    
header("Location: demo.php");
    exit; 
  #3 (permalink)  
Antiguo 28/11/2010, 16:34
 
Fecha de Ingreso: febrero-2010
Mensajes: 23
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Redirigir a la página de la que proviene el usuario pero quitando los pará

Bueno, sería una opción comprobar en cada página pero entonces no estaría reutilizando nada de código. Prefiero mandar los datos a un fichero y que este acceda a la base de datos y compruebe lo que toca a escribir (prácticamente) el mismo código en los muchísimos ficheros que tengo...
De todas formas, gracias por tu aportación ;)
  #4 (permalink)  
Antiguo 28/11/2010, 20:32
 
Fecha de Ingreso: febrero-2010
Ubicación: cba
Mensajes: 203
Antigüedad: 14 años, 9 meses
Puntos: 16
Respuesta: Redirigir a la página de la que proviene el usuario pero quitando los pará

de nada vicprepr, es lo unico que se me ocurrio, de la otra forma que tu quieres, no puedo ayudarte.
perdon
saludos

Etiquetas: redirigir, usuarios
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 09:52.