登录屏幕的PHP问题

时间:2017-05-19 18:56:24

标签: php html login

我有他的index.php代码:

<?php
 session_start();
 session_destroy();
?>

<!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="validar.php">
    <label>Nombre de usuario:</label><input type="text" name="nombre" placeholder="Usuario" required/><br><br>
    <label>Contraseña:</label><input type="password" name="contraseña" placeholder="Contraseña" required /><br><br>
    <input type="submit" value="Entrar" class="enviar" placeholder="Entrar"/><br>
</form>
</div>
<div class ="caja_registro">
<form method="POST">
    <label>¿Aún no estás registrado?</label><br>
    <label>Nombre de usuario:</label><input type="text" name="nombrerg" placeholder="Nombre de usuario" required><br>
    <label>Contraseña:</label><input type="password" name="contrarg" placeholder="Contraseña" required>
    <input type="submit" name="registro" value="Crear Cuenta"><br>
    </form>
</div>
<h1><?php include("conexion.php");?></h1>
</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 = mysql_fetch_array($rec)) {
        if ($resultado->nombre == _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
        $nom = _POST['nombrerg'];
        $pw = _POST['contrarg'];

        $conexion->query("INSERT INTO cuenta (usuario, contraseña) VALUES ('$nom','$pw')";
        mysqli_query($conexion, $sql);

        echo 'Te has registrado con exito';

    }else{
        echo "El nombre de usuario ya existe!";
    }

 }

?>
</body>
</html>

当我进入页面时,它显示一切正确,但在所有内容下显示PHP代码,当我单击“registro”按钮时,它不会将数据插入数据库。

该页面是一个简单的登录和注册,但正如我所说的注册按钮(registro)不起作用。

编辑:

这是页面底部显示的内容:

nombre == _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 $nom = _POST['nombrerg']; $pw = _POST['contrarg']; $conexion->query("INSERT INTO cuenta (usuario, contraseña) VALUES ('$nom','$pw')"; mysqli_query($conexion, $sql); echo 'Te has registrado con exito'; }else{ echo "El nombre de usuario ya existe!"; } } ?>

3 个答案:

答案 0 :(得分:2)

由于你的代码格式化。

改变这个:

<?php//para el registro

要:

<?php //para el registro

而且:

    $conexion->query("INSERT INTO cuenta (usuario, contraseña) VALUES ('$nom','$pw')";

要:

    $conexion->query("INSERT INTO cuenta (usuario, contraseña) VALUES ('$nom','$pw')");

您在最后)

之后遗失并结束"的最后一个

对于其他人,在开始标记//中使用<?php - 没有空格的注释会阻止对其进行正确解释。

作为旁注,你有两个包含在彼此之后,对于同一个文件,其中一个在<h1>内无缘无故。

此外,您的代码非常容易受到SQL注入攻击。

答案 1 :(得分:0)

<?php//para el registro可能会导致问题。将其更改为<?php //para el registro(注意空格)

如果php的其余部分呈现,那么它不太可能是服务器问题。

此外,帖子的变量为$_POST而不是_POST

重申一下。请不要以明文形式存储密码。这是一篇很好的解释semantics of reference types and value types的文章。有关此问题的更多问题,请随时查看其他StackExchange网站,例如why

答案 2 :(得分:0)

在下面的代码中,我使用换行符来区分PHP从您的评论开始的位置,之后,我注意到您使用了mysqlimysql函数并更改为{{1仅在mysqli中插入$的地方。您的上一个查询有一个名为contraseña的列,不要在列名中使用特殊字符,我已将其更改为 contrasena

$_POST