我無法讓jQuery ajax識別會話。我正在從登錄腳本創建一個php會話,但是發生的事情是,當ajax加載經過身份驗證的頁面時,會話始終未設置。例如,在安全頁面中,如果我刷新頁面,則會話ID每次都會更改。我有session_start();在每一頁。有人能告訴我正確的方式來處理與Ajax和PHP會話嗎?我花了2天時間,並且非常喜歡google,我可能會邀請到聖誕午餐:-)我已經包含了相關的代碼,並且會很感激任何幫助。謝謝返回php會話到ajax
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
<?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 '</pre>';
exit;
*/
echo 'authenticated';
}
else
{
echo 'Unknown User';
}
?>
+++++ SOLUTION從提交按鈕和瞧+++++
更改的形式輸入。一切ok
擋泥板,我只是更新了我的問題,說我已經包括在每一頁上。謝謝 – bollo
@bollo:我看不出任何改變。你必須使用會話在每個頁面上調用它,不管你是創建會話還是使用現有的會話 – Fender