Php登录无法正常工作

时间:2014-07-08 14:25:51

标签: php mysql mysqli login-script

所以我一直在努力提高我们昨晚在课堂上所做的一些事情,但我无法以某种方式解决这个问题。它不像真正的登录,我只是试图比较电子邮件并传递输入与存储在数据库中的那些,但我一直拒绝访问。

所以这就是形式:

<form id="login_form" method="POST" action="index.php?pagina=login">

                                <input title="Ingrese su email" id="login_email" class="_click_clean _round" type="text" name="email" value="Email ..." />
                                <input title="Ingrese su clave" id="login_pass"  class="_click_clean _round" type="password" name="pass" value="" />
                                <input class="boton_login _round" id="login_submit" type="submit" value="Ingresar" />

                            </form>

这就是我在login.php中所拥有的:

<?php $resultado=login($_POST["email"], $_POST["pass"]);?>

    <div id="cuerpo" style="height:auto;">



        <div id="izquierda">
                <?php
            require "templates/menues/menu.php";
            ?>
        </div>

        <div id="principal">
                        <?php 

                        $pass=SHA1($_POST["pass"]);
                        if ($resultado["email"]==$_POST["email"] && $resultado["pass"]==$pass){

                        echo "<h1>Login Exsitoso!</h1>";
                        echo "<p>bienvenido</p>". $resultado["email"];
                        }
                         echo "acceso denegado";

                                ?>

        </div>

    </div>

这是我正在使用的功能:

  <?php

function login($email, $pass){
$pass=  sha1($pass);
$sql="SELECT FROM usuarios email, pass WHERE email='$email' and pass='$pass'";
$resultado= query($sql);

if(!sizeof($resultado)){
    return FALSE;
 }
 return $resultado[0];
}

?>

这就是我在db.inc.php文件中的内容:

function bufferedQuery($sql){
$resultado= query($sql);
$datos= Array();
while($fila= mysqli_fetch_assoc($resultado)){
    $datos[]=$fila;
}
return $datos;
}

所有我一直得到的是“acceso denegado”,这是我告诉它说的,以防电子邮件和通行证与db不匹配。希望你能帮忙,谢谢!

1 个答案:

答案 0 :(得分:2)

您的登录功能在SQL中有一个错误,它会查找给定的电子邮件地址和密码。在该函数的第2行,您写道:

$sql="SELECT FROM usuarios email, pass WHERE email='$email' and pass='$pass'";

应该是:

$sql="SELECT email, pass FROM usuarios WHERE email='$email' and pass='$pass'";