- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近发布了一个question关于删除数据库中的多行并基本上重新使用代码来更新数据库中的多行,但现在一旦数据库更新并且页面刷新,我就会遇到问题,它会不断地让我退出,我不知道为什么.
这里是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 或单击刷新,它会将我注销。
最佳答案
对于评论来说太长了:
我不会发现任何事情会导致您丢失 $_SESSION['user']
中设置的内容。尝试在每个页面上转储 $_SESSION
只是为了跟踪它并暂时禁用重定向(只需输入错误消息或其他内容)。您可以像这样转储数组:
print_r($_SESSION);
您是否也知道您准备好的声明已被破坏?我没有看到 $ids
和 $inQuery
数组或内爆的意义。它应该是这样的:
$stmt = $db->prepare(
'UPDATE users
SET role = ?, account_status = ?
WHERE user_id = ?'
);
$stmt->execute(array($_GET['role'], $_GET['status'], $_GET['userID']));
如果您只有一个条目,则使用 IN
是没有意义的。您也没有保护您的查询免受任何影响,因为您仍在将值插入到准备语句中。
关于php - PHP更新数据库后老是登出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28160148/
我遇到了一个问题,我似乎无法让我的 Identity Server 注销以首先显示确认。我从github下载了IdentityServer4的源码,在Models文件夹中找到了参数:LogoutReq
我正在尝试使用 python CGI 为我的网站制作一个注销按钮。我想知道我怎么知道按钮何时被按下? 我的注销表单如下: 从这里,我知道我需要将表单存储在 FieldStorage 中,因
我在我的网络应用程序中使用 OAuth,用户可以使用 twitter 登录。 我想添加“切换 twitter 帐户”按钮,它实际上清除了 session ,然后打开了 authorize_url。 由
我正在从这个页面注销。它正在正确注销但是当按下后退按钮时它会再次登录。我已经给出了适当的 Intent 函数,但它并没有按照我的命令行事。请给我一个解决这个问题的建议。 WELCOME PAGE CO
我目前正在尝试创建一个用户可以使用他的 google+ 帐户登录的站点。大部分都在工作。我让他们授予访问我的网站的权限。他们可以登录,我会得到他们的姓名和用户 ID,我会在我的网站上显示特定于他们的
看例子在 https://www.parse.com/tutorials/integrating-facebook-in-ios 我不知道如何注销最终用户。 // from the viewcontr
我正在对 Google 帐户使用 Firebase 身份验证。登录过程工作正常,但我在注销时遇到问题。我成功注销了 firebase,但没有从谷歌注销。这意味着用户仍然登录到谷歌。我怎样才能从他们两个
我是一名优秀的程序员,十分优秀!