Jcmorenohu espero estés de lo mejor, te comento comienzo a desarrollar una aplicación en php con mysql utilizando XAMPP, ya tengo mi base de datos en Visual FoxPro la idea es hacer esa aplicación ahora en Web, pero me gustaría que tuviera seguridad al ingresar a la base de datos, se me ocurre un sistemita de autentificación, el problema es que no tengo la menor idea de como hacerlo, no si si unicamente genera una tabla llamada usuarios y hacer un formulario con usuario y contraseña y lo verifique en la tabla, si es correcto que de acceso si no que te mande de nuevo a la página de ingreso, espero haberme dado a entender, y agradezco desde ya, ojala puedas darme una mano a entender un poco más.
1 respuesta
Respuesta de Juan Moreno
1
1
Juan Moreno, Nada es imposible. La solución es saberlo hacer.
Malvamont Al grano: // ingreso.php ¿<?Php Include('conex.php'); // mi archivo que me conecta a mi base de datos $link=Conectarse(); // Traigo las variables de tu formulario de logeo por lo general solo se pide usuario y password esta validación solo la tienes que hacer para ingresar a la aplicación $login=$_POST['login']; $pass=$_POST['pass']; // sentencia para validar la existencia del usuario en la base de datos $sql="SELECT * FROM tbl_usuarios WHERE login='$login'"; $result= mysql_query($sql); if(mysql_num_rows($result)==0){ // si no existe redirecciono al index y le digo que los datos son incorrectos echo "No existe el login introducido"; header("location: index.php?s=2"); // esto redirecciona } else { // si existe el login en la base de datos valido usuario vs contraseña $array=mysql_fetch_array($result); if($array["password"]==crypt($pass,"palabra clave") ){// busca en google acerca de crypt() para crear el campo en tu tabla // Comprobamos que el password encriptado en la BD coincide con el password que nos han dado al encriptarlo. Recuerda usar la misma semilla para encriptar los dos passwords. // Si concuerda creo la sesión y en la sesión guardo lo que más utilizo para validar los permisos en mi caso el login nombre y perfil... // el login lo uso por si agrego algun registro en mi db que quede registrado quien lo agrego // el nombre para saludarlo apenas entre // el perfil para darle acceso a las distintas herramientas session_start(); session_register("SESSION"); $_SESSION["login"]=$login; $_SESSION["nombre"]=$array["nombre"]; $_SESSION["perfil"]=$array["perfil"]; header("location: home.php");// redirecciono al home de mi aplicacion } else { // si no concuerda el login vs contraseña lo envio de nuevo al form de login diciendole que datos incorrectos header("location: index.php?s=2"); } /* Cerramos este ultimo else */ } /* Cerramos el else que corresponde a la comprobación de que el login existe */ ?> ---------- fin ingreso.php
---------------------- Seguridad.php ¿<?Php // valido que la variable sesion este creada session_start(); if(!isset($_SESSION)){ header("location:index.php?s=3"); } else { if ($_SESSION["nombre"] ==""){ header("location:index.php?s=2"); } } # Este archivo lo tengo que incluir en tooooodas las paginas que quieras restringir de tu aplicacion # Importate: # en la primeta linea debes tener una variable llamada $permiso = 1; 1 corresponde al id de tu tabla permiso correspondiente # luego si llamas a tu archivo: # 1 $permiso = 1; # 2 include('seguridad.php'); # desde tu seguridad.php si te das cuenta ya estas llamando el de conectar a tu DB cosa q es bueno ya que despues no tienes que llamarlo.... Solo en la ultima linea # de tus archivos cierras la conexion y listo!! $login=$_SESSION["login"]; $link=Conectarse(); // validas en tu DB si el usuario tiene el permiso $consulta="select login, permiso from tbl_permisos where login='$login' AND permiso='$permiso'"; $resultado=mysql_query($consulta); if (mysql_num_rows($resultado)>0){ // echo "<br>permiso lo tiene"; // aqui puedes llevar el control de accesos realizando un INSERT a tu db }else{ // echo "<br>permiso no lo tiene"; // No tiene el permiso redireccionas a tu archivo que te recibe el ID del permiso // en el haces la respectiva consulta para decirle al usuario: # $login no tiene permiso para $denegado header('location: ../denegado.php?denegado='.$permiso.''); } # Listo eso estodo # el resto ya depende de ti y los jugueticos que quieras ponerle como el limite de tiempo en que se pueden quedar quietos, # te recomiendo que leas el tema de $_SESSION[''] ya que es algo qe comienzas a usar... # Exitoss!! # Dios te Bendiga!!!... -------- fin seguridad.php