Problema en formulario Login (PHP)(HTML)

Iniciado por DarthKenar, Marzo 05, 2018, 09:18:31 PM

Tema anterior - Siguiente tema

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

Marzo 05, 2018, 09:18:31 PM Ultima modificación: Marzo 05, 2018, 10:43:35 PM por xyz
Hola a todos. Tengo un problema con un formulario (Login) en el cual necesito verificar los datos de la tabla 'usuarios'
para poder entrar. Puedo entrar correctamente pero no me verifica el tipo de usuario, ya que quiero que tenga dos caminos. Ser admin o no ser admin, y que de esta forma entre a abmadmin.php o simplemente a admin.php
Creo estar teniendo un error de logica y no logro entenderlo (tengo el cerebro quemado) pero me desespera no poder solucionarlo.

Código: php

<?php include('conexion.php') ?>
<!DOCTYPE html>
<html lang="es">
  <head>
<head>
  <title>Login</title>
  <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
     <link rel="stylesheet" href="css/estilos.css">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <!-- Bootstrap -->
    <link href="css/bootstrap.min.css" rel="stylesheet">

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  <meta charset="utf-8">
  </head>
  <body>
    <div class="container">
     <?php
if (isset($_POST['submit'])) {
              $usuario_nombre = $_POST['usuario_login'];
              $usuario_contrasenia = $_POST['contraseña_login'];
              $usuario_tipos = $_POST['usuario_tipo'];
               $semilla=$usuario_nombre;
      $usuario_contrasenia=crypt($usuario_contrasenia,$semilla);//clave encriptada
      $verificar=mysqli_query($conexion,"SELECT usuario FROM usuarios WHERE usuario='$usuario_nombre' and clave='$usuario_contrasenia'") or die (mysqli_error($conexion));

if (mysqli_num_rows($verificar)>0 and ($usuario_tipos) != 'admin'){  //devuelve la cantidad de coincidencias
                 header('Location: abm.php');}
else{
                 header('Location: abmadmin.php');}
}
              ?>
      <form class="form-signin" action="" method="POST" >
        <h2 class="form-signin-heading">Por favor, ingrese:</h2>
        <label for="input" class="sr-only">Usuario</label>
        <input type="text" name="usuario_login" id="input" class="form-control" placeholder="Nombre de usuario" required autofocus>
        <label for="inputPassword" class="sr-only">Contraseña</label>
        <input type="password" name="contraseña_login" id="inputPassword" class="form-control" placeholder="Contraseña" required>
        <div class="checkbox">
          <label>
            <input type="checkbox" value="remember-me"> Recordarme
          </label>
        </div>
        <div>
        <button type="submit" name="submit" class="btn btn-info btn-lg">Entrar</button>
       </form>
        </div>
                <a href="index.php"><button type="submit" name="" class="btn btn-warning btn-lg">Volver</button></a>
</a>

    </div> <!-- /container -->
    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
    <script src="js/ie10-viewport-bug-workaround.js"></script>
  </body>
</html>


Perdon por el codigo, esta bastante sucio y desprolijo, espero que lo entiendan. (soy nuevo en esto y estoy intentando aprender).


Base de Datos(tabla usuarios) :

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Otra cosa un tanto extraña es que cuando me meto al login y logeo con cualquiera de estos usuarios creados en el localhost se me mete siempre y directamente al abmadmin.php (lo cual es correcto en cuando a lo establecido en el codigo por el if).

Pero cuando lo ejecuto desde la pagina web  No tienes permitido ver los links. Registrarse o Entrar a mi cuenta  retorna al mismo login al presionar el boton entrar. Realmente no entiendo eso.

Desde ya gracias de antemano a cualquiera que me pueda ayudar!


Si no puedes dar la vida.... No te apresures a quitarla!
                                                                   -Gandalf-

tienes mal el condicional y la consulta, y en el HTML no veo tu envio de si es admin, saludos!
Pentest - Hacking & Security Services

Contact me: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Brindo un simple ejemplo del manejo.

Código: php
<html>
<head> <title> </title> </head>
<body>
<form name="testeo" action="#" method="post">
<label> Ingrese el nombre de usuario </label>
<input type="text" name="Usuario">
<label> Ingrese la contraseña </label>
<input type="password" name="pass">
<input type="submit" value="Login">
</form>
<body>

<?php
if ( (isset($_POST['Usuario'])) && (isset($_POST['pass'])) ){
// aqui es donde realizar la consulta a la base de datos verificando los datos que han proporcionado
}
?>
</html>


El formulario enviaría dos parametros asignados por la etiqueta name (Usuario / pass).
Del lado del servidor, procesarás esas variables, las limpiaras y realizaras la consulta que creas necesaria.

Debe ir dentro del código PHP, ahora si trabajas con MVC y POO, utilizas include/require/include_once/require_once.

//Aquí estableces la conexión con el servidor de base de datos
// $Query = "SELECT * FROM usuarios where Nombre = $_POST['Usuario']' AND Pass = $_POST['pass']";

Una vez que obtienes resultados (mysqli_fetch_row) puedes seguir con los algoritmos.

Espero sea útil.

Un saludo.!