dongshuan8722 2017-05-20 20:18
浏览 71
已采纳

PHP登录界面

I'm working in a simple login screen with PHP and MySQL with this full code:

<?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
}
?>

But when I log in, whether or not the username and password is correct, it logs in, but I don't know why. I get no error in the index.php screen.

  • 写回答

1条回答 默认 最新

  • duanqin9631 2017-05-20 20:57
    关注

    You are submitting the form to inicio.php which the user should go here if they are logged in. change action=inicio.php in your form.

    <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>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 hexo+github部署博客
  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
  • ¥100 H5网页如何调用微信扫一扫功能?