Foros del Web » Programando para Internet » PHP »

Consulta php y mysql para bloquear login

Estas en el tema de Consulta php y mysql para bloquear login en el foro de PHP en Foros del Web. Hola soy nuevo en la programacion php y mi duda es la siguiente: Tengo una pagina web donde el usuario primero se registra y luego ...
  #1 (permalink)  
Antiguo 09/10/2012, 20:31
 
Fecha de Ingreso: octubre-2012
Ubicación: Mendoza
Mensajes: 19
Antigüedad: 11 años, 6 meses
Puntos: 0
Consulta php y mysql para bloquear login

Hola soy nuevo en la programacion php y mi duda es la siguiente:
Tengo una pagina web donde el usuario primero se registra y luego se loguea.....hasta ahi todo bien. El tema es que yo quiero bloquear el logueo de un usuario si no respeta las normas de la pagina.... tengo un campo del tipo oculto en el formulario el cual por defecto tiene el valor "1" que seria activo.... en la base de datos (mysql) el campo ESTADO del usuario es de tipo enum ("1" para activo y "0" para bloqueado).... y es ahi donde tengo el problema ya que cuando hago la consulta a la tabla no me lee si el campo ESTADO esta en "1" o "0", y digo que no lo lee porque yo me bloquee mi cuenta y sin embargo me deja entrar igual.
Desde ya muchas gracias..... espero haberme expresado de manera que se entienda.
  #2 (permalink)  
Antiguo 09/10/2012, 20:56
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Consulta php y mysql para bloquear login

bienvenido, y si mandas 1 campo oculto con el valor 1 es obvio que te va a dejar entrar y sin bloquearte :: , no deberías mandar ningún campo de nada, lo que deberías hacer es que para el campo ese "ESTADO" en tu tabla, al momento de crear 1 usuario cualquiera, por defecto cuando haces el "insert into...blablabla" para ingresas el usuario sea 1 el valor para ese campo, luego lo que tenes que hacer en tu consulta para login es, primero validar que los datos del usuario concuerden, nombre y contraseña, si eso es valido, entonces recién ahí haces 1 selección (select) del valor del campo ESTADO para saber si es 1 o 0, y ahí recién determinas si lo dejas entrar, creas las sesiones, etc etc
  #3 (permalink)  
Antiguo 09/10/2012, 21:40
 
Fecha de Ingreso: octubre-2012
Ubicación: Mendoza
Mensajes: 19
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Consulta php y mysql para bloquear login

gracias por la respuesta..... la verdad es que no entendi muy bien (soy novato)....no tendrias algun ejemplo para verlo y de esa manera terminar de entender...... igual gracias por la respuesta y la velocidad de la misma.....gracias
  #4 (permalink)  
Antiguo 09/10/2012, 22:06
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Consulta php y mysql para bloquear login

para que mandas 1 campo por defecto con valor 1 como oculto? no te sirve de nada eso.
Te repito como podrías hacerlo, ya tenes el campo ESTADO, para algo lo vas a usar, por lo tanto lo que te decia es que en alguna parte de tu código tenes algo como
INSERT INTO nombretabla ... bla bla, en esta parte donde registras el usuario con sus datos, ahí por defecto, haces que tenga 1 el campo ese ESTADO.
Código PHP:
Ver original
  1. $ingresarUsuario="INSERT INTO tabla (atributo1...estado) VALUES (valor1...1)";
o sea con algo parecido a esto ingresas un usuario en la tabla de tu base de datos con el valor 1 por defecto para el campo ESTADO, significa que por defecto estará activado, BIEN, todo bien hasta acá.

Ahora es cuando se complica un poco mas, porque cuando haces el login, no solo tenes que validar que exista el usuario y que la contraseña sea esa para ESE usuario, sino que luego de eso SI ES QUE SON VÁLIDOS LOS DATOS DEL LOGIN ( ejemplo: nombre de usuario y contraseña ) tenes que hacer algo como:

Código PHP:
Ver original
  1. $valorEstado = "SELECT ESTADO FROM tabla WHERE nombreusuario = $nombreUsuario";
con esto harías una selección del valor del campo ESTADO en tu tabla para el usuario específico que está intentando loguearse, luego preguntas:

Código PHP:
Ver original
  1. if($valorEstado == 1){
  2. //acá creas la session, lo logueas en definitiva
  3. }
  4. else{
  5. //si no es 1, es porque es 0, por lo tanto está bloqueado, y ahí hace lo que se te cante.
  6. }

el tema de como bloqueas los usuarios no tengo idea de como lo haces, pero ya te di una mano con esto, solo tenes que pensarlo 1 poco.
  #5 (permalink)  
Antiguo 09/10/2012, 23:31
 
Fecha de Ingreso: octubre-2012
Ubicación: Mendoza
Mensajes: 19
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Consulta php y mysql para bloquear login

una pregunta...me venia funcionando mas o menos bien pero de golpe me salto el siguiente error:
mysql_fetch_array() expects parameter 1 to be resource, boolean given dice que el error es en linea 26.... y el codigo es:
$result = mysql_query('SELECT contrasenia, usuario FROM usuarios WHERE usuario=\''.$usuario.'\'');
if ($row = mysql_fetch_array($result)){-----> esta es la linea 26
if ($row ["contrasenia"] == $contrasenia){-------> luego sigue el codigo de logueo...

la verdad no entiendo que esta mal con esa linea.....espero me puedas ayudar.....gracias de antemano
  #6 (permalink)  
Antiguo 10/10/2012, 03:58
 
Fecha de Ingreso: octubre-2012
Ubicación: Mendoza
Mensajes: 19
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Consulta php y mysql para bloquear login

ya lo resolvi..... el problema era que me habia equivocado en uno de los nombres del select.....gracias rodrigo 791 porque con tu respuesta pude lograr lo que queria.....muchas gracias

Etiquetas: bloquear, formulario, login, mysql, tabla, 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 11:15.