阿贾克斯的mysqli不工作 [英] Ajax mysqli not working
本文介绍了阿贾克斯的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屋!
查看全文