Validación condicional y abrir páginas

Como estas te escribe de nuevo Hernán Camilo desde Colombia, quiero pedirle el favor de lo siguiente, necesito validar de que si el nombre y la contraseña de un usuario son verdaderas me abran una página y sino me muestre un mensaje de que le indique al usuario que inserte bien el nombre del usuario y la contraseña, pues tengo lo siguiente:
?
// Comparamos a ver si son correctos
$Usuario= $_POST['Usuario'];
$Contraseña= $_POST['Contraseña'];
if ($Usuario=="tuuser" && $Contraseña=="tupass")
 {
 $valido="si";
  header ("Location: ConsultaAfiliacion.php");
 /*echo "<script>alert(\"Bien.\");</script>";*/
  }
  else
   {
    $valido="no";
    /* header ("Location: pagina.php");*/
     echo "<script>alert(\"Mal.\");</script>";
   }
?>
Al ejecutar el código no me abre la página, me dice "La página no está redirigiendo adecuadamente
     Firefox ha detectado que el servidor está redirigiendo la solicitud a esta dirección de una manera en la que nunca terminará.
  Este problema a veces está causado por desactivar o rechazar
    La recepción de cookies."

1 respuesta

Respuesta
1
Te paso lo que acabo de cmpartir:
Hola 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.
Saludos...
Experto
Hola 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
Usuario
Hola que tal muchas gracias por los códigos, disculpa que te moleste pero el segundo de seguridad.php no lo comprendo muy bien, con el primero no tengo mayor problema, me gustaría que me explicaras un poquito más! No tanto el código ya que lo comprendo, a lo que no es a lo de los permisos, comentas que tengo que meter cierto código en las páginas que quiera restringir y en la primera meter una linea de código que corresponda al id permiso de mi tabla.
Desde ya muchas gracias y disculpa las molestias pero soy nuevo en esto del php y mysql y si es un poquito complicado para mi, espero tengas paciencia.
Saludos.
Experto
Ok.. primero una tabla en donde guardes el permiso de esa página la cual $permiso = 1; donde 1 corresponde al id del permiso creado en dicha tabla... luego otra tabla donde guarde los permisos de los usuarios más o menos así:
mysql> describe tbl_permisos;
+---------+-------------+------+-----+-------------------+-----------------------------+
| Field   | Type        | Null | Key | Default           | Extra                       |
+---------+-------------+------+-----+-------------------+-----------------------------+
| id      | int(11)     | NO   | PRI | NULL              | auto_increment              |
| login   | varchar(50) | NO   | MUL | NULL              |                             |
| permiso | int(11)     | NO   |     | NULL              |                             |
| user    | varchar(50) | NO   |     | NULL              |                             |
| fecha   | timestamp   | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+---------+-------------+------+-----+-------------------+-----------------------------+
Don de permiso corresponde al id de la página que quieres restringir. Cuando el user entre a dicha página realiza la validación. SI existe el registro del usuario con dicho id de la página lo dejo entrar de lo contrario lo redrecciono a la página denegano indicándole que no tiene permisos para esa sección y que se comunique con el admin...
Éxitos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas