У меня проблемы с получением jQuery ajax для распознавания сеанса. Я создаю php-сессию из сценария входа в систему, но происходит то, что, когда ajax загружает страницу с проверкой подлинности, сессия всегда сбрасывается. Например, на защищенной странице, если я обновляю страницу, идентификатор сеанса меняется каждый раз. У меня есть session_start (); на каждой странице. Может кто-нибудь, пожалуйста, покажите мне правильный способ обработки сеансов с ajax и php? Я потратил 2 дня и так много использовал Google, что, вероятно, получу приглашение на рождественский обед :-) Я включил соответствующий код и был бы благодарен за любую помощь. Спасибо
PS. Если это имеет какое-то значение, я пытаюсь разработать мобильное приложение, используя jquery mobile.
логин html js
$(function() {
$("#kt_login1").click(function() {
var user = $('#user').val();
var pass = $('#pass').val();
if (user == '') {
$("#login_message").html('This field cannot be empty')
$('label[for=user]').addClass("label")
return false;
}
else if (pass == '') {
$("#login_message").html('This field cannot be empty')
$('label[for=pass]').addClass("label")
return false;
}
else $('label[for=user]').removeClass("label");
$('label[for=pass]').removeClass("label");
//alert(user + pass + ok);
data = 'user=' + user + '&pass=' + pass;
$.ajax({
type: "POST",
url: "testajax.php",
cache: false,
data: data,
success: function(data) {
if (data == 'authenticated') {
//alert(user);
document.location = 'secure.php';
}
else $('#login_message').html('You are not authorised');
//$(ok).val('Logged In');
//$("#login").get(0).reset();
//$("#form").dialog('close');
},
error: function(xhr, ajaxOptions, thrownError) {
jAlert('There was an exception thrown somewhere');
alert(xhr.status);
alert(thrownError);
}
});
return false;
});
});
testajax.php
<code><?php
// test wether the user session is already set
$username = mysql_real_escape_string($_POST['user']);
$pass = mysql_real_escape_string(md5($_POST['pass']));
mysql_connect('localhost', 'root', '');
mysql_select_db('sample');
//now validating the username and password
$sql="SELECT * FROM user_usr WHERE username_usr='$username' and password_usr='$pass'";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
//if username exists
if(mysql_num_rows($result)>0) {
session_start();
$_SESSION['u_name']=$row['name_usr'];
/*
echo '<pre>';
print_r( $_SESSION['u_name'] );
print_r( $_REQUEST );
echo '
';
выход;
* /
эхо 'аутентифицировано';
}
еще
{
echo 'Unknown User';
}
?>
+++++ +++++ РЕШЕНИЕ
Изменена форма ввода с отправки на кнопку и вуаля. Все ок