阿贾克斯的mysqli不工作 [英] Ajax mysqli not working

查看:94
本文介绍了阿贾克斯的mysqli不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

任何人都可以电话我出了什么问题?

Can anyone tel me what went wrong?

这是我的code:

body.html

body.html

    <div class="container">
        <div id="login_form">
            <form action="login.php" class="form-signin">
                <h3 class="form-signin-heading">Sign in</h2>
                <div class="err" id="add_err"></div>
                <label for="inputUser" class="sr-only">Email address</label>
                <input type="text" name="inputUser" id="inputUser" class="form-control" placeholder="Username" required autofocus>
                <label for="password" class="sr-only">Password</label>
                <input type="password" name="password" id="password" class="form-control" placeholder="Password" required>
                <div class="checkbox" style="padding-top:20px;">
                    <label>
                        <input type="checkbox" value="remember-me"> Remember me</input>
                    </label>
                </div>
                <button class="btn btn-lg btn-primary btn-block" id="login" type="submit">Sign in</button>
                <a href="../" class="btn btn-lg btn-default btn-block">Cancel</a>
            </form>
        </div>
        <div id="shadow" class="popup"></div>

    </div>

    <script src="myjs/myjs.js">
    </script>

myjs.js

myjs.js

        $(document).ready(function(){
            $("#login").click(function(){
                $("#add_err").removeClass("alert");
                $("#add_err").addClass("alert");
                $("#add_err").removeClass("alert-danger");
                $("#add_err").addClass("alert-info");
                if($("#inputUser").val() == "")
                {
                    $("#add_err").removeClass("alert-info");
                    $("#add_err").addClass("alert-danger");
                    $("input[name='password']").val("");
                    $("#add_err").html("User Empty")
                }
                else if($("#password").val() == "")
                {
                    $("#add_err").removeClass("alert-info");
                    $("#add_err").addClass("alert-danger");
                    $("input[name='password']").val("");
                    $("#add_err").html("Password Empty")
                }
                else{
                    username=$("#inputUser").val();
                    password=$("#password").val();
                    $.ajax({
                        type: "POST",
                        url: "login.php",
                        data: "name="+username+"&pwd="+password,
                        success: function(html){
                            if(html=='true')
                            {
                                window.location.href = "example/admin.html";

                            }
                            else
                            {
                                $("#add_err").removeClass("alert-info");
                                $("#add_err").addClass("alert-danger");
                                $("input[name='password']").val("");
                                $("#add_err").html("Wrong username or password");
                            }
                        },
                        beforeSend:function()
                        {
                             $("#add_err").html("Loading...")
                        }
                    });
                }
                return false;
            });
        });

的login.php

login.php

<?php
session_start();
$username = $_POST['name'];
$password = md5($_POST['pwd']);
$mysqli=mysqli_connect('localhost','root','','whatever');

$query = "SELECT * FROM user WHERE username='$username' AND password='$password'";
$result = mysqli_query($mysqli,$query)or die(mysqli_error());
$num_row = mysqli_num_rows($result);
$row=mysqli_fetch_array($result);
if( $num_row >=1 ) {
    echo 'true';
    $_SESSION['user_name']=$row['username'];
}
else{
    echo 'false';
}
?>

这code是工作!

但是,当我改变的login.php面向对象的方法不是程序是这样的:

But when I change the "login.php" with OOP way not procedural like this:

<?php
session_start();
$username = $_POST['name'];
$password = md5($_POST['pwd']);
$con = new mysqli("localhost", "root", "", "whatever");

$query = "SELECT * FROM user WHERE username='$username' AND password='$password'";
$result = $con->query($query);
$num_row = $result->num_rows;
$row=$result->fetch_array();
if( $num_row >=1 ) {
    echo 'true';
    $_SESSION['user_name']=$row['username'];
}
else{
    echo 'false';
}
?>

它没有工作。谁能告诉我问题出在哪里?

It did not work. Can anyone tell me what went wrong?

推荐答案

没有仔细检查你的code,最明显的区别就是你没有使用在session_start()在第二个脚本;这意味着没有任何会话存储在... ...的用户名

Without closely examining your code, the most obvious difference is you didn't use session_start() in the second script; meaning there isn't any session to store the username in...

这篇关于阿贾克斯的mysqli不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆