douqipi9704 2016-11-22 18:24
浏览 34
已采纳

试图将成功与否从ajax传递到html登录表单

hi i am trying to pass login form but its give to me success all the time ,if its wrong user or user in data base , this is my code =>

this is the ajax code =>

$J(document).ready(function () {
    $J("#add_err").css('display', 'none', 'important');
    $J("#login").click(function () {
        email = $J("#email").val();
        password = $J("#password").val();  
        $J.ajax({ 
            type: "POST",
            url: "login.php",
            data: "email=" + email + "&password=" + password,
            success:function (data) {
                if (data) {
                    //$("#add_err").html("right username or password");
                    window.location = "dashboard.php";
                } else {
                    $J("#add_err").css('display', 'inline', 'important');
                    $J("#add_err").html("<img src='images/alert.png' /> <b>Wrong username or password </b>" );
                }
            },
            beforeSend: function ()
            {
                $J("#add_err").css('display', 'inline', 'important');
                $J("#add_err").html("<img src='images/spin.gif' /> Loading...")
            }
        }); 
        return false;
    });
});

this is the form => in file login.php

<form action="" method="POST" id="loginForm">
            <div class="form-group has-feedback">
                <input type="email" name="email" id="email" class="form-control" placeholder="Email">
                <span class="glyphicon glyphicon-envelope form-control-feedback"></span>
            </div>
            <div class="form-group has-feedback">
                <input type="password"  name="password" id="password" class="form-control" placeholder="Password">
                <span class="glyphicon glyphicon-lock form-control-feedback"></span>
            </div>
            <div class="row">
                <div class="col-xs-8">
                    <div class="checkbox icheck">
                        <input type="checkbox" name="iCheck"  /> 
                        <b>Remember me </b>
                        <script>
                            $J(document).ready(function () {
                                $J('input').iCheck({
                                    checkboxClass: 'icheckbox_flat-blue',
                                    radioClass: 'iradio_flat',
                                    increaseArea: '-10%', // optional
                                });
                            });
                        </script>
                    </div>
                </div>
                <!-- /.col -->
                <div class="col-xs-4">
                    <button type="submit" id="login" class="btn btn-primary btn-block btn-flat">Sign In</button>
                </div>
                <!-- /.col -->
            </div>
        </form>

and this is the post i move to data base => in same file login.php

if (isset($_POST['email']) && isset($_POST['password'])) {
session_start();
$dbConnect = new dbconnect();
$email = $_POST['email'];
$password = $_POST['password'];
$userData = $dbConnect->verify_login($email, $password);
if (!$userData) {
    echo "false";
}}

varifylogin function=>

    public function verify_login($email, $password) {
    $this->Connect();
    $sql = "SELECT email,password FROM `users_details` WHERE `email`='$email' AND `password`='$password' ";
    if ($this->res = mysqli_query($this->ind_connect, $sql)) {
        $num_row = mysqli_num_rows($this->res);
        $row = mysqli_fetch_assoc($this->res);
        if ($num_row == 1) {
            echo 'true';
            $_SESSION['email'] = $row['email'];
            $_SESSION['password'] = $row['password'];
        }
    } else {
        echo 'errr';
    }
    $this->Disconnect();
}

i realy do not know what to do help is welcome now Ty.

  • 写回答

1条回答 默认 最新

  • duanlei0282 2016-11-22 20:53
    关注

    In the function: verify_login

    You must return a true value of boolean type, not as text.

    Then improve the code as follows.

    $userData = $dbConnect->verify_login($email, $password);
    if ($userData) {
        echo "true";
    }else{
        echo "false";
    }
    }
    

    In ajax call

    success:function (data) {
    if (data=='true') {
    //..
    }else{
    //..
    }
    }
    

    Another way is to make php return a json, and in ajax it indicates dataType: "json"

    $.ajax({
        url : "",
        type : "POST",
        dataType : 'json',
        success : function(data) {
            console.log(data);
            if(data.success==true){
    
            }else{
            }
       }
     });
    

    In the file php:

    echo json_encode(array('success'=>true));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看