Foros del Web » Programando para Internet » PHP »

Redireccionar en funcion de usuario HTML, PHP

Estas en el tema de Redireccionar en funcion de usuario HTML, PHP en el foro de PHP en Foros del Web. Hola me estreno por aqui con un problema con PHP. Os cuento tengo un login basico de Usuario y contraseña, compruebo que ese usuario existe, ...
  #1 (permalink)  
Antiguo 12/05/2011, 12:30
 
Fecha de Ingreso: mayo-2011
Mensajes: 64
Antigüedad: 11 años, 6 meses
Puntos: 8
Redireccionar en funcion de usuario HTML, PHP

Hola me estreno por aqui con un problema con PHP.
Os cuento tengo un login basico de Usuario y contraseña, compruebo que ese usuario existe, hasta hay no hay problema, pero una vez que compruebo que ese usuario existe, el problema aparece cuando quiero redireccionar al usuario segun el tipo de usuario que sea, puede ser Admin o Jugador .

Código:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>

<form name="formularioinicio" action="validacion.php" method="post">
Nombre: <input type="text" name="nick" value="" /> <br />
Password: <input type="password" name="pass" value="" /> <br />
<input type="submit" name="envio" value="Entrar"  />
</form>


</form>
</body>
</html>
Código:
<?php

	@session_start();
	function conectar()
	{
		if(!($link=mysql_connect("localhost","root")))
		{
			echo "Error en la conexion al servidor";
			exit();
		}
		if (!mysql_select_db("proyecto",$link)) 
   		{ 
      		echo "Error seleccionando la base de datos."; 
      		exit(); 
   		} 
		return $link;
	}
	$usuario=$_POST['nick'];
	
	if((!isset($usuario)) || (empty($usuario)))
	{
		header("Location:index1.php");
	}
	else
	{
		$link=conectar(); 
		$pwd=$_POST['pass'];
		$comprobar=mysql_query("select * from usuarios where nick='$usuario' and passw='$pwd'", $link); 
//En este punto compruebo que el usuario que he introducido existe.
		$num=mysql_num_rows($comprobar);
//Me aseguro que tiene una query.		
		if ($num<=0)
		{
			header("Location:registro.php");//Si el usuario no existe lo redirecciono 1 pagina de registro, hasta este punto funciona.
		}
		else
		{

			$tipousuario=mysql_query("select tipo from usuarios where nick='$usuario'", $link);
//Realizo la consulta donde segun el usuario sale el tipo de usuario, puede ser Admin o Jugador
			$_SESSION['user']=$usuario;

			echo "Usuario tipo<br>";
			echo $tipousuario;
			//En funcion del tipo de usuario lo llevo a una pagina u otra y es lo que no consigo.
			//No consigo accder al contenido de la variable para saber el tipo de usuario que es!!!
			if($tipousuario == 'Admin')
			{
				header("Location:admin.php");
			}
			elseif($tipousuario == 'Jugador')
			{
				header("Location:prueba.php");
			}
		}
	}
	mysql_free_result($comprobar);
	mysql_free_result($tipousuario);
	mysql_close($link);	
?>
Espero que me entendais el codigo y me entendais lo que quiero hacer y si veis alguna cagada soy bastante novato perdonarmelo.

Saludos!
  #2 (permalink)  
Antiguo 12/05/2011, 12:32
Avatar de leo_nqn  
Fecha de Ingreso: abril-2010
Ubicación: Neuquen
Mensajes: 461
Antigüedad: 12 años, 7 meses
Puntos: 24
Respuesta: Redireccionar en funcion de usuario HTML, PHP

cuando comprobas que el usuario existe creo que lo mejor seria que en ese mismo lugar compruebes que tipo de usuario es... de ahi redireccionas! saludos..
__________________

Blog: http://leonardonqn.blogspot.com
Twitter:@Leo_FFerreyra
  #3 (permalink)  
Antiguo 12/05/2011, 12:49
 
Fecha de Ingreso: mayo-2011
Mensajes: 64
Antigüedad: 11 años, 6 meses
Puntos: 8
Respuesta: Redireccionar en funcion de usuario HTML, PHP

Código PHP:
//Solo compruebo que el usuario no este vacio, se que tambien debo controlar la contraseña
if((!isset($usuario)) || (empty($usuario)))
    {
        
header("Location:index1.php");
    }
    else
    {
//Si no lo esta, conecto recogo la contraseña y compruebo que ese usuario existe.
        
$link=conectar(); 
        
$pwd=$_POST['pass'];
        
$comprobar=mysql_query("select * from usuarios where nick='$usuario' and passw='$pwd'"$link); 
//La manera de comprobarlo es que guardando el numero de columnas, si son mayor que 0 existe.
        
$num=mysql_num_rows($comprobar);
        
        if (
$num<=0)
        {
            
header("Location:nada.php");
        }
        else
        {
//Cuando el usuario ya existe creo otra varible donde compruebo el tipo de usuario que es el resultado puede ser "Admin" o "Jugador"
            
$tipousuario=mysql_query("select tipo from usuarios where nick='$usuario'"$link);

            
$_SESSION['user']=$usuario;//Variable de sesion para usar mas adelante.
            
echo "Usuario tipo<br>";
            echo 
$tipousuario;
            
            
//No consigo accder al contenido de la variable para saber el tipo de usuario que es!!!
//En este IF es donde compruebo que usuario es y lo encamino a una pagina o a otra
            
if($tipousuario == 'Admin')
            {
                
header("Location:admin.php");
            }
            elseif(
$tipousuario == 'Jugador')
            {
                
header("Location:prueba.php");
            }
        }
    } 
  #4 (permalink)  
Antiguo 12/05/2011, 14:34
Avatar de leo_nqn  
Fecha de Ingreso: abril-2010
Ubicación: Neuquen
Mensajes: 461
Antigüedad: 12 años, 7 meses
Puntos: 24
Respuesta: Redireccionar en funcion de usuario HTML, PHP

1ro.. Me parece que no hace falta que hagas 2 consultas.. en la 1ra ya traes todos los datos.. y
2do.. Proba con el comando mysql_fetch_array.. te separa todo los datos del usuario que traes.. si no sabes como implementarlo avisame y te doy una mano saludos!
__________________

Blog: http://leonardonqn.blogspot.com
Twitter:@Leo_FFerreyra
  #5 (permalink)  
Antiguo 13/05/2011, 08:32
 
Fecha de Ingreso: mayo-2011
Mensajes: 64
Antigüedad: 11 años, 6 meses
Puntos: 8
Respuesta: Redireccionar en funcion de usuario HTML, PHP

No entiendo muy bien la funcion mysql_fetch_array, se que genera un array con los datos que contiene las tablas pero no se usarlo bien, si me pudieras ayudar te lo gradeceria gratamente.
  #6 (permalink)  
Antiguo 13/05/2011, 08:56
Avatar de leo_nqn  
Fecha de Ingreso: abril-2010
Ubicación: Neuquen
Mensajes: 461
Antigüedad: 12 años, 7 meses
Puntos: 24
Respuesta: Redireccionar en funcion de usuario HTML, PHP

Fijate si esto te sirve.. :

Código:
<?php
    //Solo compruebo que el usuario no este vacio, se que tambien debo controlar la contraseña 
if((!isset($usuario)) || (empty($usuario))) 
    { 
        header("Location:index1.php"); 
    } 
    else 
    { 
//Si no lo esta, conecto recogo la contraseña y compruebo que ese usuario existe. 
        $link=conectar();  
        $pwd=$_POST['pass']; 
        $comprobar=mysql_query("select * from usuarios where nick='$usuario' and passw='$pwd'", $link);  
//La manera de comprobarlo es que guardando el numero de columnas, si son mayor que 0 existe. 
        $num=mysql_num_rows($comprobar); 
         
        if ($num<=0) 
        { 
            header("Location:nada.php"); 
        } 
        else 
        { 
            //la consutla trae un array en comprobar con el siguiente while lo separamos
            while($usuario=mysql_fetch_row($comprobar))
            {
                echo $usuario['dato1'];//nombre del dato del usuario ej: nombre
                echo $usuario['dato2'];//nombre del dato del usuario ej: apellido
                echo $usuario['dato3'];//nombre del dato del usuario ej: tipousuario
            }
/*Cuando el usuario ya existe creo otra varible donde compruebo el tipo de usuario que es el resultado puede ser "Admin" o "Jugador" 
            $tipousuario=mysql_query("select tipo from usuarios where nick='$usuario'", $link); 

            $_SESSION['user']=$usuario;//Variable de sesion para usar mas adelante. 
            echo "Usuario tipo<br>"; 
            echo $tipousuario; */
             
            //No consigo accder al contenido de la variable para saber el tipo de usuario que es!!! 
//En este IF es donde compruebo que usuario es y lo encamino a una pagina o a otra 
            if($tipousuario == 'Admin') 
            { 
                header("Location:admin.php"); 
            } 
            elseif($tipousuario == 'Jugador') 
            { 
                header("Location:prueba.php"); 
            } 
        } 
    }  
    ?>
__________________

Blog: http://leonardonqn.blogspot.com
Twitter:@Leo_FFerreyra
  #7 (permalink)  
Antiguo 16/05/2011, 01:55
 
Fecha de Ingreso: mayo-2011
Mensajes: 64
Antigüedad: 11 años, 6 meses
Puntos: 8
Respuesta: Redireccionar en funcion de usuario HTML, PHP

Muchas gracias lo probare, tambien me han dado la opcion de crear una funcion en MySQL para que me devuelva el tipo, probare los dos y los podre aqui para por lo menos probar que funciona.

Gracias Brother!
  #8 (permalink)  
Antiguo 16/05/2011, 04:23
 
Fecha de Ingreso: mayo-2011
Mensajes: 64
Antigüedad: 11 años, 6 meses
Puntos: 8
De acuerdo Respuesta: Redireccionar en funcion de usuario HTML, PHP

Ya lo tengo solucionado y funciona, no lo he hecho exactamente como tu me has dicho porque no me salia, aunque me has encaminado bastante, luego he tenido problemas porque no me redirecionaba con el header y he tenido que usar alguna alternativa.

Aqui pongo el codigo:
Código PHP:
<?php

    
@session_start();
    function 
conectar()
    {
        if(!(
$link=mysql_connect("localhost","root")))
        {
            echo 
"Error en la conexion al servidor";
            exit();
        }
        if (!
mysql_select_db("proyecto",$link)) 
           { 
              echo 
"Error seleccionando la base de datos."
              exit(); 
           } 
        return 
$link;
    }
    
$usuario=$_POST['nick'];
    
    
    if((!isset(
$usuario)) || (empty($usuario)))
    {
        
header("Location:index1.php");
    }
    else
    {
        
$link=conectar(); 
        
$pwd=$_POST['pass'];
        
$comprobar=mysql_query("select * from usuarios where nick='$usuario' and passw='$pwd'"$link); 
        
        
            
        
$num=mysql_num_rows($comprobar);
        
        if (
$num<=0)
        {
            
header("Location:nada.php");
        }
        else
        {
            
            while(
$tipousuario mysql_fetch_array($comprobar))
            {
                
                if(
$tipousuario ["tipo"]=='Admin')
                {
                    
//header("Location:prueba.php");
                    //echo "Soy Admin";
                    
echo "<script language='javascript'>window.location='admin.php'</script>";
                }
                else
                {
                    
//echo "JUGADORO";
                    //header("Location:admin.php");
                    
echo "<script language='javascript'>window.location='prueba.php'</script>";
                }
            }
            
            
            
            
        }
    }
    
mysql_free_result($comprobar);
    
mysql_free_result($tipousuario);
    
mysql_close($link);    
?>

Etiquetas: funcion, html, 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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 04:07.