PHP - Alertas con BOOTSTRAP y login

 
Vista:
sin imagen de perfil
Val: 17
Ha aumentado su posición en 7 puestos en PHP (en relación al último mes)
Gráfica de PHP

Alertas con BOOTSTRAP y login

Publicado por cristina_villa (10 intervenciones) el 03/04/2019 15:34:08
Hola! Estoy estudiando DAW y me han mandando hacer un formulario de login con alertas de bootstrap para indicar que se ha metido mal la password o el email. Pero no sé muy bien como hacerlo..para que aparezca sólo cuando ocurre ese fallo.
¿Alguien que me pueda orientar?
Gracias
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<form action="login.php" method="POST" class="form-signin">
	  <img class="mb-4" src="./log_files/bootstrap-solid.svg" alt="" width="72" height="72">
 
 
	  <div class="alert alert-warning" role="alert">
		<strong>ERROR</strong>
		<?php
			if (isset($errores)){
			foreach ($errores as $error){
			echo "$error";
			}
		}
		?>
	  </div>
 
	  <label for="mail" class="sr-only"></label>
	  <input type="email" id="mail" class="form-control" placeholder="Correo" required autofocus>
 
	  <label for="password" class="sr-only"></label>
	  <input type="password" id="password" class="form-control" placeholder="Contraseña" required>
 
	  <div class="checkbox mb-3">
		<label>
          <input type="checkbox" value="remember-me"> Recuerdame
        </label>
	</div>
 
	<button class="btn btn-lg btn-warning btn-block" name="enviar" type="submit">Inicia sesión</button>
	<a href="registro.php" class="btn btn-lg btn-info btn-block" role="button" aria-pressed="true">Registro</a>
  </form>
 
<?php
	}
?>
 
<?php
	if(empty($_POST)){
		$mail="";
		$password="";
		imprimirFormulario($mail,$password);
	}
 
 
	if(empty($errores)){
		$mail=recoge('mail');
		$password=recoge('password');
	}
 
	if (empty($_POST['mail'])){
		$errores[]="Debes introducir  campo email";
 
	if (empty($_POST['password'])){
		$errores[]="Debes introducir pass";
	}
 
	if (empty($usuario)){
		$errores[]="el usuario no existe";
	}
 
	if($mail == ""){
		$errores[]="usuario o contraseña non son correctos";
	}
 
	if($password == ""){
		$errores[]="non son correctos";
	}
?>
 
<?php
 
			$usuario=seleccionarUsuario($mail);
 
			$idUsuario=$usuario['idUsuario'];
			$nombreUsuario=$usuario['nombre'];
			$mail=$usuario['mail'];
 
 
			}else{
				$_SESSION['idUsuario']=$idUsuario;
				$_SESSION['nombre']=$nombreUsuario;
				$_SESSION['mail']=$mail;
				header('Location:index.php');
		}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Alertas con BOOTSTRAP y login

Publicado por Kathyu (905 intervenciones) el 03/04/2019 16:35:11
BS en su documentación enseña como mostrar los errores, vea el sitio oficial de BS, intente implementarlo y nos cuenta de que errores le da.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha aumentado su posición en 7 puestos en PHP (en relación al último mes)
Gráfica de PHP

Alertas con BOOTSTRAP y login

Publicado por cristina_villa (10 intervenciones) el 03/04/2019 17:33:16
en la documentación no explica lo que yo quiero hacer
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 920
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Alertas con BOOTSTRAP y login

Publicado por italo_pm (193 intervenciones) el 04/04/2019 12:33:28
Hola, tu form funciona? es decir hace el login etc etc etc?

1
para indicar que se ha metido mal la password o el email.

eso te han pedido??, por que de otra manera compararia si el email del database es igual al email que recibo por post y al mismo tiempo si la password del database es igual a la password que recibo por post....

es decir, si ingreso mal la password o el email (osea la password que corresponde a ese email/user)? o si ingreso un email que no existe debeas mostrar un alart con bootstrap.

entonces, en tu file de login.php o en la function seleccionarUsuario(), recuperas por post el email y la password.

haces la query donde el email es igual al email recibido, si existe el email verificas que la password sea igual a la password recibida por post.

en la parte del login.php puedes crear una session cuando:

- el email no existe

1
$_SESSION['email_ko'] = "el email no existe";

- la password (si es que el email existe) no coincida con la que recibiste por post (cuando la password no sea correcta)

1
$_SESSION['password_ko'] = "la password no es igual";

luego en la pagina donde regresas luego de mysql, verificas las dos SESSION

por ejemplo para el $_SESSION['email_ko']:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
  //Si existe la session y esta valorizada la session "email_ko" muestro con bootstrap un alert warning dismissible 
  if(isset($_SESSION['email_ko'])) {
    /******************/
  ?>
    <div class="alert alert-warning alert-dismissible fade show" role="alert">
      EL EMAIL NO EXISTE, VERIFICA Y PRUEBA NUEVAMENTE.
      <button type="button" class="close" data-dismiss="alert" aria-label="Close">
        <span aria-hidden="true">&times;</span>
      </button>
    </div>
  <?php
    //destruyo la $_SESSION para el proximo login. 
    session_destroy();
  }
  ?>

lo mismo para la session de la password ko $_SESSION['password_ko']

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
  //Si la existe la session y esta valorizada la session "password_ko" muestro con bootstrap un alert warning dismissible 
  if(isset($_SESSION['password_ko'])) {
    /******************/
  ?>
    <div class="alert alert-warning alert-dismissible fade show" role="alert">
      PASSWORD EQUIVOCADA, PRUEBE NUEVAMENTE.
      <button type="button" class="close" data-dismiss="alert" aria-label="Close">
        <span aria-hidden="true">&times;</span>
      </button>
    </div>
  <?php
    //destruyo la $_SESSION para el proximo login. 
    session_destroy();
  }
  ?>

si es que ambas cosas (email y password) son correctas, nunca se crearan la session email_ko y password_ko.

Obviamente deberas tener los links a bootstrap. ese codigo lo puedes poner luego de que carga tu bootstrap.

prueba en test, si tienes errores escribelos (todos los files implicados ya que no somos adivinos) y expon mejor tu problema y errores.

tu form de login funciona sin esos controlores? o si solo te faltaba interceptar esos errores...

salud2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar