¿Verificar rango de usuario en mysql pr php?

Iniciado por Brian1511, 14 Enero 2014, 19:09 PM

0 Miembros y 1 Visitante están viendo este tema.

Brian1511

Hola a todos , sere breve como dice en el titulo solo quiero saber como hacer una consulta a la base de datos del rango como por ejemplo esto es lo que quiero:

-El usuario inicia sesion por medio del php $SESSION_GET y pues cuando esto verifica que el usuario esta registrado quiero que haga otra consulta la cual me diga si el usuario es administrador si o no y si se da el caso de que lo sea que lo mande a un link
de administradores pero si no lo es que lo mande a un link de usuarios comunes!

Gracias , espero ser claro y preciso con lo que quiero.
Un saludo!



Creador de BrainMind

Brian1511

Hola a todos perdon por el doble post pero encontre esto pero cuando pongo los datos al link me inicia pero no me muestra el rango ni los puntos del usuario que ago!!! :huh: :huh:


Código (php) [Seleccionar]



<?
//conecto con la base de datos
$user=$_GET["user"];
$pass=$_GET["pass"];
$conn=mysql_connect("localhost","root","1234");
//selecciono la BBDD
mysql_select_db("usuarios",$conn);

//Sentencia SQL para buscar un usuario con esos datos
$ssql = "SELECT * FROM usuarios WHERE user='$user' and pass='$pass'";

//Ejecuto la sentencia
$rs = mysql_query($ssql,$conn);

//vemos si el usuario y contraseña es váildo
//si la ejecución de la sentencia SQL nos da algún resultado
//es que si que existe esa conbinación usuario/contraseña
if (mysql_num_rows($rs)!=0){


$conn=mysql_connect("localhost","root","1234");
//selecciono la BBDD
mysql_select_db("usuarios",$conn);

$ssql = "SELECT * FROM usuarios WHERE puntos='$user'";

$rs = mysql_query($ssql,$conn);

while($row = mysql_fetch_array($rs)) {

echo "Puntos:"." ".$row["puntos"]."<br>";
echo "Rango:"." ".$row["rango"]."<br>";

}










Creador de BrainMind

Beakman

Código (php) [Seleccionar]
$user=$_GET["user"];
$pass=$_GET["pass"];

Esos datos no deberían ser pasados por GET, sino por POST. En el formulario  html deberías tener algo así:

Código (html) [Seleccionar]

<form method="post" action="la direccion de la pagina">
   <input name="pass" .... >
   <input name="user" .... >
</form>


Ahí tenés una posbilidad por la cuál no veas los valores. Posiblemente estás pasando los datos por POST ( por defecto ) en lugar de GET entonces esta expresión:
Código (php) [Seleccionar]
if ( mysql_num_rows( $rs ) != 0 )
Dara como resultado FALSO.



En la siguiente línea de código veo que realizas otra conexión a la base de datos:
Código (php) [Seleccionar]
if (mysql_num_rows($rs)!=0){
     // La siguiente conexión no es necesaria
     $conn=mysql_connect("localhost","root","1234");

No es necesario abrir esa conexión porque ya está abierta en la línea 7.



Con respecto a tu pregunta sobre los rangos: Ese valor deberías tenerlo en tu tabla de usuarios. Deberías tener un campo que diga si es ( 1 ) o no es administrador ( 0 ), por ejemplo. Y luego en tu código podrías hacer lo siguiente:
Código (php) [Seleccionar]

if( $user[ 'rango' ] == 0 ) { // si es administrador ...
     header( 'Location: pagina-del-administrador.php' );
} else { // NO es un administrador ....
     header( 'Location: pagina-para-usuarios-comunes.php' );
}


Saludos.

Brian1511

Hola lo que pasa con lo del GET es que el usuario y la pass irian en el link haci

http://miweb.com/login?user=admin&pass=1234;

Pero gracias de todos modos ya lo he resuelto! :D



Creador de BrainMind

#!drvy

El problema es que no deberían ir así. Si van así, cualquiera puede verlo en la barra del navegador.. (no es nada seguro).

Saludos

Brian1511

bueno lo que pasa es que es para un login de vb6 lo que ago es que reemplaso lo que es los valores de txt Usurios y txt Contraseña en el link y pues eso me devuelve el valor de TRUE o FALSE si da true pues se puede iniciar la sesion.



Creador de BrainMind