PHP登录屏幕

PHP登录屏幕,php,mysql,login,Php,Mysql,Login,我使用PHP和MySQL在一个简单的登录屏幕上工作,完整代码如下: <?php include("conexion.php"); session_start(); if (isset($_SESSION['username'])) { ?> <!DOCTYPE html> <meta charset="utf-8"> <html lang="es"> <html> <head> <title></t

我使用PHP和MySQL在一个简单的登录屏幕上工作,完整代码如下:

<?php
include("conexion.php");
session_start();
if (isset($_SESSION['username'])) {
?>
<!DOCTYPE html>
<meta charset="utf-8">
<html lang="es">
<html>
<head>
    <title></title>
</head>
<body>
<h1>YA INICIASTE SESION <?php echo $_SESSION['username']?></h1>
</body>
</html>
<?php
 }else{

?>
<!DOCTYPE html>
<html lang="es">
<meta charset="utf-8">
<head>
    <title>Login</title>
    <link rel="stylesheet" type="text/css" href="css/estilos.css">
</head>
<body>
<center>
<div class="caja_login">
<form method="POST" action="inicio.php">
    <label>Nombre de usuario:</label><input type="text" name="usuario" placeholder="Usuario" required/><br><br>
    <label>Contraseña:</label><input type="password" name="contra" placeholder="Contraseña" required /><br><br>
    <input type="submit" value="Entrar" name="iniciar-sesion"/><br>
</form>
</div>
<div class ="caja_registro">
<form method="POST">
    <h4><label>¿Aún no estás registrado?</label></h4> 
    <label>Nombre de usuario:</label><br><input type="text" name="nombrerg" placeholder="Nombre de usuario" required><br>
    <label>Contraseña:</label><br><input type="password" name="contrarg" placeholder="Contraseña" required><br>
    <label>Repetir contraseña:</label><input type="password" name="contrarg2" placeholder="Repita la contraseña" required><br>
    <input type="submit" name="registro" value="Crear Cuenta"><br>
    </form>
</div>
</center>

<?php //----------------------PARA EL REGISTRO-----------------------
 include("conexion.php");
 if(isset($_POST['registro'])){
    $sql = 'SELECT * FROM cuenta';
    $rec = mysqli_query($conexion, $sql);
    $verificar =0;

    while ($resultado = mysqli_fetch_object($rec)) {
        if($resultado->usuario == $_POST['nombrerg']) {//verificamos que el nombre de usuario no existe
            $verificar = 1;//si verificar es 1 es que el usuario esta repetido
        }
    }
    if ($verificar == 0) { //si varificar es 0 entonces el nombre no esta repetido
        if ($_POST['contrarg'] == $_POST['contrarg2']) {
            $nom = $_POST['nombrerg'];
            $pw = $_POST['contrarg'];
            $pw_en = password_hash($pw, PASSWORD_DEFAULT); //encripta la contraseña

            $conexion->query("INSERT INTO cuenta (usuario, contra) VALUES ('$nom','$pw_en')");
            mysqli_query($conexion, $sql);

            header('Location: inicio.php');
        }else{
            echo "Intente con otro usuario y contraseña";
        }
        }else{
            echo "Intente con otro usuario y contraseña";
             }    
  }
 //-----------------------------PARA EL LOGIN-------------------------
   if (isset($_POST['iniciar-sesion'])) { //se comprueba que el boton iniciar sesion fue presionado    
       $username = $_POST['usuario'];
       $sqlLogin= "SELECT usuario,contra FROM cuenta WHERE usuario= '$username'";
       $recLogin= mysqli_query($conexion, $sqlLogin);
       $sesion= mysqli_fetch_array($recLogin);

       if(password_verify($_POST['contra'], $sesion['contra'])){
          $_SESSION['username'] = $_POST['usuario'];
          header('Location: inicio.php');
       }else{
        echo "Usuario o contraseña incorrectos";
        header('Location: index.php');
       }

   }
?>
</body>
</html>
<?php
}
?>
但是当我登录时,不管用户名和密码是否正确,它都会登录,但我不知道为什么。
我在index.php屏幕中没有发现错误。

您正在将表单提交到inicio.php,如果用户登录,则应转到此处。在表单中更改action=inicio.php

<form method="POST" action="">
    <label>Nombre de usuario:</label><input type="text" name="usuario" placeholder="Usuario"
                                            required/><br><br>
    <label>Contraseña:</label><input type="password" name="contra" placeholder="Contraseña"
                                     required/><br><br>
    <input type="submit" value="Entrar" name="iniciar-sesion"/><br>
</form>

密码验证的代码是什么?@inarilo是一个php内置函数,它正好位于同一文件中的代码中