Foros del Web » Programando para Internet » PHP »

Problema con redireccion de pagina segun nivel de usuario

Estas en el tema de Problema con redireccion de pagina segun nivel de usuario en el foro de PHP en Foros del Web. Me podrian decir si en este codigo hay algo mal ya que al iniciar sesion sin importar que nivel tenga el usuario me lleva a ...
  #1 (permalink)  
Antiguo 01/08/2011, 18:55
 
Fecha de Ingreso: marzo-2011
Ubicación: San Jose, Costa Rica
Mensajes: 10
Antigüedad: 13 años, 1 mes
Puntos: 0
Pregunta Problema con redireccion de pagina segun nivel de usuario

Me podrian decir si en este codigo hay algo mal ya que al iniciar sesion sin importar que nivel tenga el usuario me lleva a la misma pagina (loggeduser.php)
Código PHP:
<?php session_start(); 
 
 
$user $_POST["user"];
 
$pass md5($_POST["pass"]);
 
//datos para establecer la conexion con la base de mysql.
 
require_once "db.php";
 
function 
quitar($mensaje)
{
    
$nopermitidos = array("'",'\\','<','>',"\"");
    
$mensaje str_replace($nopermitidos""$mensaje);
    return 
$mensaje;
}     
 
if(
trim($user) != "" && trim($pass) != "")
{
    
// Puedes utilizar la funcion para eliminar algun caracter en especifico
    //$usuario = strtolower(quitar($HTTP_POST_VARS["usuario"]));
    //$password = $HTTP_POST_VARS["password"];
 
    
$result mysql_query('SELECT level, pass, user FROM usuarios WHERE user=\''.$user.'\'');
     
$level0 "usuario";
     
$level1 "moderador";
     
$level2 "administrador";
    if(
$row mysql_fetch_array($result)){
     
     if(
$row["level"] == $level0){
     }if(
$row["pass"] == $pass){
         echo 
"<script languaje='javascript'>alert('Has sido logueado correctamente, Seras Redireccionado Enseguida.')</script>";
         echo 
"<script language='javascript'>location.href = 'loggeduser.php';</script>";
      }else{
        
        echo 
"<script languaje='javascript'>alert('Password Incorrecto.')</script>";
             echo 
'<SCRIPT LANGUAGE="javascript">location.href = "log.php";</SCRIPT>';
        
       }if(
$row["level"] == $level1){
        }if(
$row["pass"] == $pass){
         echo 
"<script languaje='javascript'>alert('Has sido logueado correctamente, Seras Redireccionado Enseguida.')</script>";
     echo 
"<script language='javascript'>location.href = 'loggedmod.php';</script>";
        }else{
        
        echo 
"<script languaje='javascript'>alert('Password Incorrecto.')</script>";
             echo 
'<SCRIPT LANGUAGE="javascript">location.href = "log.php";</SCRIPT>';
        
     }if(
$row["level"] == $level2){   
        if(
$row["pass"] == $pass){
                      
$_SESSION["k_username"] = $row['user'];
            
            echo 
"<script languaje='javascript'>alert('Has sido logueado correctamente, Seras Redireccionado Enseguida.')</script>";
            
            echo 
'<SCRIPT LANGUAGE="javascript">
            location.href = "loggedadmin.php";
            </SCRIPT>'
;
 
        }else{
            echo 
"<script languaje='javascript'>alert('Password Incorrecto.')</script>";
             echo 
'<SCRIPT LANGUAGE="javascript">location.href = "log.php";</SCRIPT>';
        }
    }}else{
        echo 
"<script languaje='javascript'>alert('Nombre de Usuario NO exite en la base de datos.')</script>";
         echo 
'<SCRIPT LANGUAGE="javascript">location.href = "log.php";</SCRIPT>';
    }
    
mysql_free_result($result);
}else{
    echo 
"<script languaje='javascript'>alert('Debe especificar un usuario y password')</script>";
}
mysql_close();
?>
<?php

$con 
mysql_connect("localhost""root""");
$bd  mysql_select_db("metalcr18local"$con);

if(isset(
$_POST['enviar']) && $_POST['enviar'] != "")
{
    
$user $_POST['user'];
    
$pass   md5($_POST['pass']);

    
$sql "SELECT * FROM usuarios WHERE user = '$user' AND pass = '$pass' ";

    
$result mysql_query($sql);
    if (
mysql_num_rows($result)==1){

       
$usuario_encontrado mysql_fetch_object($result);
          
setcookie("user"$usuario_encontrado->user time()+(3600), '/');
          
            }else{
           
        }
}
?>
a mi parecer el error lo tengo aqui
Código PHP:
$result mysql_query('SELECT level, pass, user FROM usuarios WHERE user=\''.$user.'\'');
     
$level0 "usuario";
     
$level1 "moderador";
     
$level2 "administrador";
    if(
$row mysql_fetch_array($result)){
     
     if(
$row["level"] == $level0){
     }if(
$row["pass"] == $pass){
         echo 
"<script languaje='javascript'>alert('Has sido logueado correctamente, Seras Redireccionado Enseguida.')</script>";
         echo 
"<script language='javascript'>location.href = 'loggeduser.php';</script>";
      }else{
        
        echo 
"<script languaje='javascript'>alert('Password Incorrecto.')</script>";
             echo 
'<SCRIPT LANGUAGE="javascript">location.href = "log.php";</SCRIPT>';
        
       }if(
$row["level"] == $level1){
        }if(
$row["pass"] == $pass){
         echo 
"<script languaje='javascript'>alert('Has sido logueado correctamente, Seras Redireccionado Enseguida.')</script>";
     echo 
"<script language='javascript'>location.href = 'loggedmod.php';</script>";
        }else{
        
        echo 
"<script languaje='javascript'>alert('Password Incorrecto.')</script>";
             echo 
'<SCRIPT LANGUAGE="javascript">location.href = "log.php";</SCRIPT>';
        
     }if(
$row["level"] == $level2){   
        if(
$row["pass"] == $pass){
                      
$_SESSION["k_username"] = $row['user'];
            
            echo 
"<script languaje='javascript'>alert('Has sido logueado correctamente, Seras Redireccionado Enseguida.')</script>";
            
            echo 
'<SCRIPT LANGUAGE="javascript">
            location.href = "loggedadmin.php";
            </SCRIPT>'
;
 
        }else{
            echo 
"<script languaje='javascript'>alert('Password Incorrecto.')</script>";
             echo 
'<SCRIPT LANGUAGE="javascript">location.href = "log.php";</SCRIPT>';
        }
    }}else{
        echo 
"<script languaje='javascript'>alert('Nombre de Usuario NO exite en la base de datos.')</script>";
         echo 
'<SCRIPT LANGUAGE="javascript">location.href = "log.php";</SCRIPT>';
    } 
pero no he encontrado la manera de hacerlo funcionar
  #2 (permalink)  
Antiguo 01/08/2011, 19:42
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: Problema con redireccion de pagina segun nivel de usuario

no revise muy bien pero lo mas seguro es que tienes mal cerradas las llaves.

osea estan en el sitio equivocado a mi parecer

por ejemplo

Código PHP:
if($row["level"] == $level0){
     }if(
$row["pass"] == $pass){
         echo 
"<script languaje='javascript'>alert('Has sido logueado correctamente, Seras Redireccionado Enseguida.')</script>";
         echo 
"<script language='javascript'>location.href = 'loggeduser.php';</script>";
      } 
ya aqui se ve que cierras de una vez

if($row["level"] == $level0){
}

entonces como $row["pass"] == $pass te envia de una vez a esa pagina
__________________
<?php echo "No te metas a lo hondo del Mar si no sabes nadar, primero aprende a nadar" ?>
...Error en linea: 1 o.O
  #3 (permalink)  
Antiguo 01/08/2011, 21:57
 
Fecha de Ingreso: marzo-2011
Ubicación: San Jose, Costa Rica
Mensajes: 10
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Problema con redireccion de pagina segun nivel de usuario

tenias razón johhan16 era un error en las llaves ya lo solucione y me quedo así el código

Código PHP:
<?php session_start(); 
 
 
$user $_POST["user"];
 
$pass md5($_POST["pass"]);
 
//datos para establecer la conexion con la base de mysql.
 
require_once "db.php";
 
function 
quitar($mensaje)
{
    
$nopermitidos = array("'",'\\','<','>',"\"");
    
$mensaje str_replace($nopermitidos""$mensaje);
    return 
$mensaje;
}     
 
if(
trim($user) !="" && trim($pass) !="")
          {
     
$result mysql_query('SELECT level, pass, user FROM usuarios WHERE user=\''.$user.'\'');
     
$level0 "usuario";
     
$level1 "moderador";
     
$level2 "administrador";
          
            
    if(
$row mysql_fetch_array($result)){     
        if(
$row["level"] == $level0){
    if(
$row["pass"] == $pass){
        echo 
"<script languaje='javascript'>alert('Has sido logueado correctamente, Seras Redireccionado Enseguida.')</script>";
         echo 
"<script language='javascript'>location.href = 'loggeduser.php';</script>";
    }
}else{
    if(
$row["level"] == $level1){
        if(
$row["pass"] == $pass){
            echo 
"<script languaje='javascript'>alert('Has sido logueado correctamente, Seras Redireccionado Enseguida.')</script>";
            echo 
"<script language='javascript'>location.href = 'loggedmod.php';</script>";
        }
    }else{
        if(
$row["level"] == $level2){
          if(
$row["pass"] == $pass){
            echo 
"<script languaje='javascript'>alert('Has sido logueado correctamente, Seras Redireccionado Enseguida.')</script>";
            echo 
"<script language='javascript'>location.href = 'loggedadmin.php';</script>";
          }  
        }else{
   echo 
"<script languaje='javascript'>alert('Debe especificar un usuario y password')</script>"
    }
}
}
}
}else{
    if(
$user == null|$pass == null){
        echo 
"<script languaje='javascript'>alert('Algun Campo Se encuentra vacido. Por favor confirme que a llenado los campos correctamente.')</script>";
         echo 
'<SCRIPT LANGUAGE="javascript">location.href = "log.php";</SCRIPT>';
    }
}


    
mysql_free_result($result);
mysql_close();
?>
ahora el problema que me da es que no me esta mostrando la alerta que tiene que dar cuando uno de los campos esta vació, solo me la muestra cuando están vacíos los 2 campos o solo el campo de usuario vació, pero si lleno el campo usuario y dejo el de contraseña vació no me muestra ningún error y se queda el la pagina de validación. esta muy raro eso no veo que pueda estar mal

Última edición por ejgj16; 01/08/2011 a las 21:59 Razón: errores de escritura
  #4 (permalink)  
Antiguo 01/08/2011, 22:03
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Problema con redireccion de pagina segun nivel de usuario

La comprobación está mal, no es |, es ||, además existe empty().
Intenta así:
Código PHP:
Ver original
  1. if(empty($user) || empty($pass)) { //...

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #5 (permalink)  
Antiguo 01/08/2011, 23:03
 
Fecha de Ingreso: marzo-2011
Ubicación: San Jose, Costa Rica
Mensajes: 10
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Problema con redireccion de pagina segun nivel de usuario

gracias por tu respuesta sourcegeek pero aun asi me siguió dando el mismo problema

despues de estudiar un poco el codigo lo cambie y quedo funcionando mejor. ya me da los mensajes de campos vacios pero me da el mismo mensaje cuando pongo un usuario que no esta en la Base de Datos, pero no importa eso no es importante

el nuevo codigo quedo asi

Código PHP:
<?php session_start(); 
 
 
$user $_POST["user"];
 
$pass md5($_POST["pass"]);
 
//datos para establecer la conexion con la base de mysql.
 
require_once "db.php";
 
function 
quitar($mensaje)
{
    
$nopermitidos = array("'",'\\','<','>',"\"");
    
$mensaje str_replace($nopermitidos""$mensaje);
    return 
$mensaje;
}     
 
     
$result mysql_query('SELECT level, pass, user FROM usuarios WHERE user=\''.$user.'\'');
     
$level0 "usuario";
     
$level1 "moderador";
     
$level2 "administrador";          
            
    if(
$row mysql_fetch_array($result)){
        if(
$row["user"] == $user) {
    if(
$row["level"] == $level0){
        If(
$row["pass"] == $pass){
            echo 
"<script languaje='javascript'>alert('Has sido logueado correctamente, Seras Redireccionado Enseguida.')</script>";
            echo 
"<script language='javascript'>location.href = 'loggeduser.php';</script>";
        }else{
            echo 
"<script languaje='javascript'>alert('Contraseña incorrecta.')</script>";
         echo 
"<script language='javascript'>location.href = 'log.php';</script>";
        }
        
     }else{        
        if(
$row["level"] == $level1){
            If(
$row["pass"] == $pass){
            echo 
"<script languaje='javascript'>alert('Has sido logueado correctamente, Seras Redireccionado Enseguida.')</script>";
            echo 
"<script language='javascript'>location.href = 'loggedmod.php';</script>";
        }else{
            echo 
"<script languaje='javascript'>alert('Contraseña incorrecta.')</script>";
         echo 
"<script language='javascript'>location.href = 'log.php';</script>";
        }
      
      }else{
           if(
$row["level"] == $level2){
            If(
$row["pass"] == $pass){
            echo 
"<script languaje='javascript'>alert('Has sido logueado correctamente, Seras Redireccionado Enseguida.')</script>";
            echo 
"<script language='javascript'>location.href = 'loggedadmin.php';</script>";
        }else{
            echo 
"<script languaje='javascript'>alert('Contraseña incorrecta.')</script>";
         echo 
"<script language='javascript'>location.href = 'log.php';</script>";
        }
        } 
        }
        }
}else{
    echo 
"<script languaje='javascript'>alert('Nombre de usuario no existe.')</script>";
         echo 
"<script language='javascript'>location.href = 'log.php';</script>";
     }

}else{
    echo 
"<script languaje='javascript'>alert('Algun campo se encuentra vacio.')</script>";
         echo 
"<script language='javascript'>location.href = 'log.php';</script>";
}
  
mysql_close();

?>

Etiquetas: elseif, niveles, redireccionar, 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 05:35.