php中登录凭据的一些问题

时间:2015-09-02 09:19:27

标签: javascript php mysql forms submit

以下是我的用户登录页面的代码,但是当我尝试提交表单时,它不检查数据库并直接给我else输出,即无效的ID或密码我没有得到任何错误报告虽然错误报告已打开,但我不确定我在哪里出错。

<?php
    if(isset($_POST['loginsubmit'])=='Login')
    {
        $email=$_POST['emaillogin'];
        $pass=$_POST['passlogin'];
        $pass=md5($pass);

        $email = stripslashes($email);
        $pass = stripslashes($pass);
        $email = mysql_real_escape_string($email);
        $pass = mysql_real_escape_string($pass);

        require_once "database.php";
        $sql = "SELECT * FROM user_log WHERE email = '$email' and password='$pass'";
        $loginresult=mysql_query($sql);
        $row=mysql_fetch_array($loginresult);
        $rowcnt=mysql_num_rows($loginresult);
        if($rowcnt==1)
        {
            session_start();
            $_SESSION['email']=$row['email'];
            $_SESSION['mobile']=$row['mobile'];
            $_SESSION['fname']=$row['fname'];
            $_SESSION['lname']=$row['lname'];
            echo "  <script>
                        window.location = '../';
                    </script>";
        }
        else
        {
            echo "  <script>
                        alert('Invalid Login ID or Password....');
                        window.location = '../';
                    </script>";
        }

我甚至试图回应我从表格中正确收到电子邮件和密码,是的我得到了但问题从下面开始我想:

$sql = "SELECT * FROM user_log WHERE email = '$email' and password='$pass'";

编辑:表格添加

<form action="" method="POST">
    <input type="email" id="email" placeholder="abc@xyz.com" name="emaillogin" required>
    <input type='password' id='password' name='passlogin' placeholder='Password here' required>
    <input type="submit" id="continuesubmitemail" name="loginsubmit" value="Login">
</form>

6 个答案:

答案 0 :(得分:2)

isset()用于检查变量是否已设置

您可以将条件检查为

 if(isset($_POST['loginsubmit']) && $_POST['loginsubmit']=='Login')

同时在页面顶部写下session_start();

使用while循环获取数据

 $rowcnt=mysql_num_rows($loginresult);
        if($rowcnt==1)
        {
            while($row=mysql_fetch_array($loginresult))
            {
            $_SESSION['email']=$row['email'];
            $_SESSION['mobile']=$row['mobile'];
            $_SESSION['fname']=$row['fname'];
            $_SESSION['lname']=$row['lname'];
            }
            echo "  <script>
                        window.location = '../';
                    </script>";
        }

最后停止使用mysql它已被弃用。您可以使用PDO or mysqli

答案 1 :(得分:2)

你怎么能进入那条线? isset function returns boolean并且它总是假的,因为你这样做:

if(isset($_POST['loginsubmit'])=='Login')

你应该这样做:

 if(isset($_POST['loginsubmit']) && $_POST['loginsubmit']=='Login')

答案 2 :(得分:2)

isset()返回true或false,因此您必须在下面写下if条件。

    if(isset($_POST['loginsubmit']) && $_POST['loginsubmit']=='Login')

答案 3 :(得分:0)

使用mysql_query($sql) OR DIE(mysql_error());
这将显示您的mysql错误 不推荐使用ps , mysql,请使用mysqli or pdo instead

答案 4 :(得分:0)

替换你的病情

if($_POST['loginsubmit']=='Login')

答案 5 :(得分:0)

试试这个

 $loginresult=mysql_query($sql) or die(mysql_error()); 

并检查您是否获得任何输出