PHP - If dentro de un while

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

If dentro de un while

Publicado por Jesus (79 intervenciones) el 19/08/2020 10:57:14
Hola, estoy haciendo un sistema de logueo, para validar datos de contraseña correcta, me conecto a la tabla de la base de datos y si la contraseña es correcta me manda a página de contenido.php.
Pero no logro hacer funcionar un if ya que está dentro de un while.

Recojo las variables del formulario:
1
2
$usuario = $_POST['nnombre'];
$pass = $_POST['npassword'];

Ejecutó la sentencia sql:
1
2
3
$sql = "SELECT * FROM usuarios_establecidos where usuarios_establecidos = '".$usuario ."'";
 
$result = $conn->query($sql);

Y saco los valores de la tabla:

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
if ($result->num_rows > 0) {
 
  // output data of each row
 
  while($row = $result->fetch_assoc()) {
 
    if($row['Password'] == $pass){
 
session_start();
 
$_SESSION['usuario'] = $usuario;
 
header("Location: contenido.php");
 
 
}
}
 
  }else {
 
  echo "0 results";
 
}
 
$conn->close();
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 Fabian
Val: 157
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

If dentro de un while

Publicado por Fabian (60 intervenciones) el 19/08/2020 13:51:23
Fijate si el nombre del campo Password lo tenes definido así en la tabla o en minuscula "password". Tene en cuenta que las consultas son sensibles a mayusculas y minusculas.
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 Fabian
Val: 157
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

If dentro de un while

Publicado por Fabian (60 intervenciones) el 19/08/2020 14:10:32
El while está de más, dado que en la consulta SQL estas buscando un usuario en particular. Es logico que te va a aparecer solamente un row que corresponde al usuario encontrado.
Elimina el While y pone:
1
2
3
4
5
6
7
8
9
10
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
if($row['Password'] == $pass){
 
session_start();
 
$_SESSION['usuario'] = $usuario;
 
header("Location: contenido.php");
 
}
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