我最近發佈了一個question關於刪除數據庫中的多行,基本上重新使用代碼來更新數據庫中的多行,但現在一旦數據庫有問題已更新和頁面刷新它保持我登出我不知道爲什麼。在PHP中更新數據庫後保持註銷狀態
這裏是AJAX:
function editUser(){
var url = 'edit-user.php';
var ids = document.getElementById("edit-user-id").value;
var role = document.getElementById("role").value;
var status = document.getElementById("accountStatus").value;
var data = 'userID=' + ids.toString() + '&role=' + role + '&status=' + status;
$.ajax({
url: url,
data: data,
cache: false,
error: function(e){
alert(e);
},
success: function() {
var selects = $('#users-table').bootstrapTable('getSelections');
ids = $.map(selects, function (row) {
return row.id;
});
$('#users-table').bootstrapTable('refresh', {
silent: true
});
location.reload();
}
});
}
這裏是PHP:
require("../config.php");
try{
$role = $_GET['role'];
$status = $_GET['status'];
$ids = array($_GET['userID']);
$inQuery = implode(',', $ids);
$query = 'UPDATE users SET role = :role, account_status = :status WHERE user_id IN ('.$inQuery.')';
$query_params = array(
':role' => $role,
':status' => $status
);
$stmt = $db->prepare($query);
$stmt->execute($query_params);
// Set variable message of affected rows
$count = $stmt->rowCount();
$user_updated = ''.$count.' user(s) updated successfully.';
$_SESSION['user_updated'] = $user_updated;
} catch (Exception $e){
$error = '<strong>The following error occured:</strong>'.$e->getMessage();
$_SESSION['error'] = $error;
}
我試圖改變cache: true
,但沒有奏效。再次,我不想被註銷。任何想法我做錯了什麼?
編輯:我縮小了它只發生在頁面刷新時。我從ajax調用中刪除了這段代碼location.reload();
,它不會將我重定向回登錄頁面,但如果我點擊F5或單擊刷新,則會將我註銷。
你會在你的PHP文件的頂部調用session_start()嗎?我沒看到它。 – 2015-01-26 22:48:31
在我的'config.php'文件的底部我有'session_start()'。 ajax和php是兩個獨立的文件,它們都有'config.php'文件 – iamthestreets 2015-01-26 23:27:13
@iamthestreets,可能需要看看你是如何進行身份驗證才能看到問題可能是什麼。 – Devon 2015-01-27 02:00:50