Foros del Web » Programando para Internet » PHP »

PHP OO Contador con variable de session

Estas en el tema de Contador con variable de session en el foro de PHP en Foros del Web. Buenos dias amigos, estoy realizando un sistema basado en php para la defensa de la tesis para el dia viernes, en el cual el inicio ...
  #1 (permalink)  
Antiguo 14/07/2015, 08:09
xap
 
Fecha de Ingreso: julio-2014
Ubicación: caracas
Mensajes: 18
Antigüedad: 9 años, 9 meses
Puntos: 0
Contador con variable de session

Buenos dias amigos,

estoy realizando un sistema basado en php para la defensa de la tesis para el dia viernes, en el cual el inicio de sesion tiene que haber un contador que al llegar a tres intentos fallidos de sesion bloquea el usuario, realiza lo esperado pero de forma global por ejemplo si yo tengo dos intentos fallidos y viene otro usuario y ingresa de forma fallida lo bloquea a el me gustaria que realice el contador de forma individual, es decir aqui les muestro el codigo espero me puedan ayudar.
Código PHP:
<?php
session_start
();  


error_reporting(E_ALL E_NOTICE);

 
include 
dirname(dirname(__FILE__))."/config.php";

$link=Conectarse();
 
$login $_POST['login'];
 
$pass $_POST['pass'];
 
$pass=sha1(md5($pass));
 
$query sprintf("SELECT usuarios.id,
 
usuarios.login,
 
usuarios.nombreu,
 
usuarios.apaterno,
 
usuarios.amaterno,

usuarios.cedulau,
 
usuarios.email,
 
usuarios.id_nivelu,

usuarios.id_statusu
 
FROM usuarios WHERE usuarios.login='%s'&& usuarios.password = '%s'"
,
 
$login$pass);
 
$result=mysql_query($query,$link);

$res sprintf("SELECT login FROM usuarios WHERE login = '".$login."'");
$resultado=mysql_query($res,$link);
if(!
mysql_num_rows($resultado)){
?>
 <script languaje="javascript">
  alert("Nombre de Usuario Incorrecto Verifique e Intente de Nuevo.");
  location.href = "../login.php";
 </script>
<?php
}elseif(!isset($_SESSION['intentos'])){
$_SESSION['intentos'] = 1;

}else{
$_SESSION['intentos'] = $_SESSION['intentos'] + 1;
}
?>
   <script languaje="javascript">
    alert("Contraseña Incorrecta\nIntento #<?php echo $_SESSION['intentos'];?> Luego de tres Intentos se bloqueara el Usuario por medidas de seguridad.");
    location.href = "../login.php";
   </script>
<?php   




if(mysql_num_rows($result)){

if(
$array=mysql_fetch_array($result)){

$_SESSION["id"]= $array["id"];
 
$_SESSION["login"]= $array["login"];
 
$_SESSION["nombreu"]= $array["nombreu"];
 
$_SESSION["apaterno"]= $array["apaterno"];
 
$_SESSION["amaterno"]= $array["amaterno"];

$_SESSION["cedulau"]= $array["cedulau"];
 
$_SESSION["email"]= $array["email"];

$_SESSION["id_nivel"]= $array["id_nivelu"];

$_SESSION["id_status"]= $array["id_statusu"];

$id_status $array['id_statusu'];

$query3  =sprintf("SELECT * FROM usuarios, status_usuario WHERE usuarios.id_statusu=status_usuarios.id_status AND usuarios.login = status_usuarios.id_status");

if(
$id_status == 2){
    
header("location:/cooperativa/restringido/acceso_restringido.html");
    
}else{    

$id_nivel $array['id_nivelu'];
$user $array['user'];


$query2 sprintf("SELECT * FROM usuarios,nivel WHERE usuarios.id_nivelu=nivel.id_nivel");


if(
$id_nivel  == 1){
   
header("Location:/cooperativa/admin/user_admin.php"); 
   
}elseif(
$id_nivel == 2){
    
header("Location:/cooperativa/personal/user_personal.php");
     
}elseif(
$id_nivel == 3){
    
header("Location:/cooperativa/standar/user_standard.php"); 
}
}
}
}elseif(
$_SESSION['intentos']>=3){
    
$var=2;
    
$modif=sprintf("UPDATE usuarios SET id_statusu = '".$var."' WHERE usuarios.login='".$login."'");
    
$modifi=mysql_query($modif,$link);
     
$_SESSION['intentos'] = 0;
     
header("location:/cooperativa/restringido/acceso_restringido.html");
}



mysql_free_result($result);

mysql_close();
?>
  #2 (permalink)  
Antiguo 14/07/2015, 09:29
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: Contador con variable de session

Es necesario que sea con variables de sesión? Porque sería más fácil crear una tabla que guarde el usuario que se está intentando conectar y la cantidad de veces que ha sido fallida. Al presionar el botón de login en el formulario lo primero que deberías hacer en el POST es saber si ya completó los 3 intentos fallidos y si es así que no permita ingresar hasta que pase cierto tiempo o hasta que confirme que es el usuario real y no lo están suplantando. Si no ha completado los 3 intentos entonces permitir un nuevo intento y en caso de ser fallido actualizar la tabla añadiendo un intento más, si no es fallido el nuevo intento no olvidar actualizar la tabla y eliminar el registro correspondiente a ese usuario para que quede en ceros. Si lo haces con variables de sesión tendrías que crear una variable por cada usuario que se conecte y serías más trabajo, pienso yo.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #3 (permalink)  
Antiguo 14/07/2015, 11:12
xap
 
Fecha de Ingreso: julio-2014
Ubicación: caracas
Mensajes: 18
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Contador con variable de session

muchas gracias por responder chronos682 ok entonces tengo que realizar una tabla por ejemplo llamada intento en el cual va a haber un campo llamado numero_intento y un id que conecte con la tabla usuario si numero_intento pasa los tres intentos fallidos entonces lo bloquea? mas o menos eso fue lo que capte estoy en lo cierto?
  #4 (permalink)  
Antiguo 14/07/2015, 11:18
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: Contador con variable de session

Si, tal cual asi es
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #5 (permalink)  
Antiguo 14/07/2015, 12:18
xap
 
Fecha de Ingreso: julio-2014
Ubicación: caracas
Mensajes: 18
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Contador con variable de session

ok lo intentare a ver que tal me va muchas gracias

Etiquetas: contador, html, mysql, select, session, sql, usuarios, variable
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 16:33.