我遇到基于会话的登录问题(使用PHP,HTML和CSS实现)。到现在为止还挺好。现在我想要在输入错误时出现警告。首先,我刚刚创建了第二页,并附加了警告。但是最好在AJAX中实现它(可能使用jQuery)。但现在我有一个问题。由于我已经实现了AJAX部分,我无法登录。每次出现警告时。当我删除AJAX请求一切正常。似乎不再调用php验证部分。但我不知道为什么。这是代码:
这是验证的一部分(loginscript.php)。登录表单的名称为loginform,submit.button的名称为login。
else if (isset( $_POST['login'] ))
{
$username = $_POST['username'];
$password = $_POST['password'];
$clean_username = strip_tags(stripslashes(mysql_real_escape_string($username)));
$clean_password = (strip_tags(stripslashes(mysql_real_escape_string($password))));
$hash_password = saltedHash($clean_password, $clean_username);
$sql = mysql_query("SELECT * FROM $loginTable WHERE $attUsername = '$clean_username' AND $attPassword = '$hash_password'");
if (mysql_num_rows($sql) == 1)
{
$_SESSION['logged'] = true;
echo 'correct';
header('refresh:2;url=ajax/cmapp.php');
exit;
}
}
显示的部分不起作用,因为我使用它:
$(document).ready(function()
{
$("#tr1").hide();
/* sendung formular abfangen */
$("#loginform").submit(function() {
/* ajax objekt zum aufruf & versand an das skript
'name' und 'email' sind in der data-zeile die variablen für das php-skript */
$.ajax({
type: "POST",
url: "loginscript.php",
data: "username=" + $("#username").val() + "&password=" + $("#password").val(),
success: function(msg)
{
if (msg == 'correct')
{
alert("hjlkjl")
window.location='ajax/cmapp.php';
}
else
{
$("#tr1").hide().load("message.html").fadeIn(0);
}
每次执行else部分。
答案 0 :(得分:1)
您的data
值应包含login
变量,否则PHP脚本将不会输入条件。并且由于您使用POST,因此可以将对象用作data
值
data : {
username : $("#username").val(),
password : $("#password").val(),
login : true,
}