Foros del Web » Programando para Internet » PHP »

Error si fallo

Estas en el tema de Error si fallo en el foro de PHP en Foros del Web. Hola buenas, tengo un problema con una página que pretende ser un formulario de acceso a una serie de sitios. Está página contiene dos cajas ...
  #1 (permalink)  
Antiguo 02/01/2006, 04:57
Avatar de sir_bowen  
Fecha de Ingreso: junio-2005
Mensajes: 184
Antigüedad: 12 años, 6 meses
Puntos: 0
Pregunta Error si fallo

Hola buenas,

tengo un problema con una página que pretende ser un formulario de acceso a una serie de sitios. Está página contiene dos cajas de texto que recogen un nombre y una contraseña. Tengo una base de datos con la que se comparan los datos introducidos. Pretendo que si los datos introducidos son correctos, se cargue una página destino, y en caso contrario, que se cargue la misma devolviendo el error. Pues bien, si los datos que meto son los correctos se me carga la página sin ningún problema, pero si tanto el nombre como la contraseña no coinciden, el navegador me dice que no encuentra la página. El fichero se llama cfindex.php y si se escriben mal los datos, en la barra del navegador se lee el nombre del fichero correctamente, con la variable 'validate' pero muestra un error de "Página no encontrada"

El código del principio del fichero cfindex.php es este:

Código PHP:
session_start();    
    function 
xRequest($key,$stack,$def=''){
        return isset(
$stack[$key])?$stack[$key]:$def;
    }
    
$modo=xRequest('modo',$_REQUEST);
    
$error=xRequest('error',$_REQUEST);
    
$loged=xRequest('loged',$_SESSION);
    if(
$loged){
        
header('Location:cfindex.php');
    }    
    switch(
$modo){
        case 
'validate':
            
$plat=xRequest('plata',$_POST);
            
$pw=substr(xRequest('password',$_POST),0,15);
            
$conexion=mysql_connect('localhost','xxxxx','xxxxxx') or die("Conexión fallida");
            
mysql_select_db('cfv',$conexion) or die("Conexión a la base de datos fallida");
            
$resultado=mysql_query("SELECT password FROM plataformas WHERE plataforma='$plat'",$conexion);
            if(
mysql_num_rows($resultado)>0)
            {
                if(
mysql_result($resultado,0,0)==$pw){
                    
header('Location:../xxxx/index.php');
                }
                else
                {
                    
header('Location:'.$_SERVER['PHP_SELF'].'?error=Contraseña incorrecta<br>Por favor introduzca de nuevo los datos');
                }
            }
            else
            {
                
header('Location:'.$_SERVER['PHP_SELF'].'?error=Plataforma incorrecta<br>Por favor introduzca de nuevo los datos');
            }
        break;
        case 
'error':
            
$_SESSION['loged']=false;
            unset(
$_SESSION['loged']);
        break;
    } 
El código lo meto a principio de fichero, lógicamente. El substr de la cadena password lo hago porque unicamente cojo los primero 15 caracteres de la contraseña (cifrada con javascript). Luego ya viene el código html...

Pues eso, alguien tiene idea de donde puede estar el error?

Muchas gracias
  #2 (permalink)  
Antiguo 02/01/2006, 05:53
Avatar de sir_bowen  
Fecha de Ingreso: junio-2005
Mensajes: 184
Antigüedad: 12 años, 6 meses
Puntos: 0
Yastá resuelto

Vale, me acabo de dar cuenta del error. En lugar de mandar otra cabecera, simplemente se guarda la frase en la variable $error, en ambos ELSE.
Es decir, en lugar de poner:
Código PHP:
header('Location:'.$_SERVER['PHP_SELF'].'?error=Contraseña incorrecta<br>Por favor introduzca de nuevo los datos'); 
hay que escribir:
Código PHP:
$error="Contraseña incorrecta<br>Por favor introduzca de nuevo los datos"
Y lo mismo para el otro ELSE

Jeje... Perdon por las molestias

Saludos
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 10:18.