我一直在这个问题上停留了两天。我发现代码没有刷新发布数据,但似乎如果它不刷新,值实际上并不保存到$ _SESSION超全球。
我的jQuery代码:
$('.login_error').hide();
$('#sublogin').click(function(){
$('.login_error').hide();
var jusername = $('#loginusername').val();
var jpassword = $('#loginpassword').val();
if(jusername == ""){
$('label#username_error').show();
//return false;
}
if(jpassword == ""){
$('label#password_error').show();
return false;
}
var dataString = 'loginusername='+jusername+'&loginpassword='+jpassword;
$.post('login.php', dataString, function(data) {
$('#header').html("
$('#message').html("
Contact Form Submitted!
").append("
We will be in touch soon.
").hide()
.fadeIn(1500)
});
// return false
});我的login.php代码:
//set the variables
$username = isset($_POST['loginusername'])? $_POST['loginusername']:'';
$password = isset($_POST['loginpassword'])? $_POST['loginpassword']:'';
$step = isset($_POST['step']) ? $_POST['step'] : '1';
if($step=='2'){
//validation is done in javascript
//if there are no errors
if(empty($loginErrors)){
//sanitizes data for use in query.
$username = trim(mysql_real_escape_string($username));
$password = md5(trim(mysql_real_escape_string($password)));
$query = "SELECT user_level, username, password FROM user WHERE username='$username' AND password='$password'";
$result = mysql_query($query) or die('query did not go through');
if($result!=false){
$query_row = mysql_fetch_assoc($result);
$_SESSION['user_level']=$query_row['user_level'];
$_SESSION['username']=$query_row['username'];
$_SESSION['password']=$query_row['password'];
}
}
}
if($step=='1'){
?>
Username
Username field can not be blank
Password
Password field can not be blank
}
?>编辑:啊,我忘了提及。
login.php包含在我的头文件中,我的头文件包含在我的index.php文件中,所以session_start应该级联。
编辑2:所以如果我设置返回false附近的最后一行jquery代码页面不会重新加载,这正是我想要的,但会话根本不保存。任何人都可以弄清楚我在做什么错了?