PHP - verificar usuario y contraseña

 
Vista:
sin imagen de perfil

verificar usuario y contraseña

Publicado por alejandro (7 intervenciones) el 24/11/2017 00:18:28
Tengo un problema con mi código al momento de verificar el usuario y contraseña, me urge averiguar el problema, anexo mi código de verificación
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
<body>
<?php
session_start();
?>
<?php
$host_db = "localhost";
$user_db = "root";
$pass_db = "";
$db_name = "basedatosmaster";
$tbl_name = "usuarios";
$conexion = new mysqli($host_db, $user_db, $pass_db, $db_name);
if ($conexion->connect_error) {
 die("La conexion falló: " . $conexion->connect_error);
}
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM $tbl_name WHERE nombre_usuario = '$username'";
$result = $conexion->query($sql);
if ($result->num_rows > 0) {
 }
 
 $row = $result->fetch_array(MYSQLI_ASSOC);
  if (password_verify($password, $row['password'])) {
    $_SESSION['loggedin'] = true;
    $_SESSION['username'] = $username;
    $_SESSION['start'] = time();
    $_SESSION['expire'] = $_SESSION['start'] + (5 * 60);
    echo "Bienvenido! " . $_SESSION['username'];
    echo "<br><br><a href=panel-control.php>Panel de Control</a>";
  }
 else {
   echo "Nombre de Usuario o Password incorrectos.";
   echo "<br><a href='login.html'>Volver a Intentarlo</a>";
 }
 mysqli_close($conexion);
 ?>
</body>

y el de registro

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
<body>
       <?php
 
 $host_db = "localhost";
 $user_db = "root";
 $pass_db = "";
 $db_name = "basedatosmaster";
 $tbl_name = "usuarios";
 
 $form_pass = $_POST['password'];
 
 $hash = password_hash($form_pass, PASSWORD_BCRYPT);
 
 $conexion = new mysqli($host_db, $user_db, $pass_db, $db_name);
 
 if ($conexion->connect_error) {
 die("La conexion falló: " . $conexion->connect_error);
}
 
 $buscarUsuario = "SELECT * FROM $tbl_name
 WHERE nombre_usuario = '$_POST[username]' ";
 
 $result = $conexion->query($buscarUsuario);
 
 $count = mysqli_num_rows($result);
 
 if ($count == 1) {
 echo "<br />". "El Nombre de Usuario ya a sido tomado." . "<br />";
 
 echo "<a href='index.html'>Por favor escoga otro Nombre</a>";
 }
 else{
 
 $query = "INSERT INTO Usuarios (nombre_usuario, password)
           VALUES ('$_POST[username]', '$hash')";
 
 if ($conexion->query($query) === TRUE) {
 
 echo "<br />" . "<h2>" . "Usuario Creado Exitosamente!" . "</h2>";
 echo "<h4>" . "Bienvenido: " . $_POST['username'] . "</h4>" . "\n\n";
 echo "<h5>" . "Hacer Login: " . "<a href='login.html'>Login</a>" . "</h5>";
 }
 
 else {
 echo "Error al crear el usuario." . $query . "<br>" . $conexion->error;
   }
 }
 mysqli_close($conexion);
?>
</body>

los usuarios y contraseñas se guardan perfectamente en la base de datos y en sus lugares o sea el nombre de usuario se guarda en la base de datos "basedatosmaster" en la tabla "usuarios" y en el campo "nombre_usuario" y la contraseña en el campo "password"
no se así puedan encontrar mi error ya que por mas que reviso mi codigo sigo sin entender cual es el erro, de verdad se lo agradeceria al que me pueda ayudar en mi problema, si necesitan mas codigos para ayudarme favor de hacermelo saber, muchas gracias
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 William
Val: 38
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

verificar usuario y contraseña

Publicado por William (14 intervenciones) el 24/11/2017 18:39:30
Hola, por favor indícanos específicamente cual error te aparece o qué es lo que no funciona.
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

verificar usuario y contraseña

Publicado por alejandro (7 intervenciones) el 24/11/2017 23:42:27
Nombre de Usuario o Password incorrectos.
Siempre me sale eso, aunque el usuario y contraseña existan en la base de datos
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 abzerox
Val: 575
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

verificar usuario y contraseña

Publicado por abzerox (157 intervenciones) el 25/11/2017 06:19:50
Hola, intentaste ver que devuelve la variable $row ? prueba ejecutando
1
var_dump($row);
.
Fiajate tambien que haz dejado el siguiente bloque if vacío:
1
if ($result->num_rows > 0) {}
Donde dentro de este deberias poner el código que le sigue, algo asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if ($result) {
    $row = $result->fetch_array(MYSQLI_ASSOC);
 
    if (password_verify($password, $row['password'])) {
        $_SESSION['loggedin'] = true;
        $_SESSION['username'] = $username;
        $_SESSION['start'] = time();
        $_SESSION['expire'] = $_SESSION['start'] + (5 * 60);
        echo "Bienvenido! " . $_SESSION['username'];
        echo "<br><br><a href=panel-control.php>Panel de Control</a>";
    }else {
        echo "Nombre de Usuario o Password incorrectos.";
        echo "<br><a href='login.html'>Volver a Intentarlo</a>";
    }
}

Prueba y nos comentas.
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