这是我的HTML
<div id="stylized" class="myform">
<form action="index.php" method="post" class="formPadd">
<div align="right">
<fieldset class="FloatLeft">
</fieldset>
<fieldset class="FloatRight" style="padding-right:14px;">
<div style="height:40px; line-height:30px; text-align:center;">
<label>Username:</label><br>
<input class="inputbox" type="text" style="text-align:center; padding-right:14px;" name="uname" value maxlength="50">
</div><br><br>
<div style="height:30px; line-height:30px; text-align:center;">
<label align="center">Password:</label>
<input class="inputbox" type="password" name="pass" style="text-align:center; padding-right:14px;" value maxlength="50"><br><br>
</div><br>
<div>
<button id="login" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button" aria-disabled="false">
<span class="ui-button-text">Login</span>
</button>
</div>
</fieldset>
</div>
</form>
</div>
</div>
并且继承我的php
<?PHP
include("db.classes.php");
$g = new DB();
$g->connection();
if($_POST)
{
$un = $g->clean($_POST["username"]);
$pw = $g->clean($_POST["password"]);
$g->login($un, $pw);
}
$g->close();
&GT;
这是我的db.classes
ublic function login($un, $pw)
{
$result = mysql_query("select username, password from admin where username='$un' and password='$pw'");
$data = $this->getResults($result);
$uName = $data["username"];
$password = $data["password"];
if($uName === $un && $password === $pw)
{
echo ('Correct');
}
else
{
echo 'Incorrect username/password';
}
}
这是我的ajax请求
$( "#login" ).button().click(function( event ) {
event.preventDefault();
var un = $("input[name=uname]").val();
var pw = $("input[name=pass]").val();
var dataString = 'username='+ un + '&password='+ pw;
$.ajax({
type: "POST",
url: "processLogin.php",
data: dataString,
success: function(){
if (data === 'Login') {
window.location.replace('list.php');
}
else {
alert('Invalid Credentials');
}
}
});
});
我已经检查了我的sql staments是否应该责备但是他们没事。我认为我的问题出在ajax请求的某处,但我似乎无法指出它。
答案 0 :(得分:0)
你需要缩小问题的确切位置,但我要改变的第一件事是你在javascript中构建查询字符串的方式。我不确定如果你直接发送数据字符串是否被正确编码,所以我会使用jQuery来确保它(例如你的密码包含有趣的字符)。
除此之外,您没有在javascript中使用从ajax请求发回的数据:
$.ajax({
type: "POST",
url: "processLogin.php",
data: $('form.formPadd').serialize(),
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ serialize your form
success: function(data){
// ^^^^ get the data
if (data === 'Correct') {
// ^^^^^^^ this is what you echo in php
window.location.replace('list.php');
} else {
alert('Invalid Credentials');
}
}
});
您还必须在php中更改表单字段或POST变量的名称,以便它们再次匹配。
作为旁注,如果您要在javascript中重定向到另一个页面,那么首先使用ajax没有多大意义。