我有一个php代码(所有代码都在同一个文件中)。mno.php)中,一次只允许一个用户登录。当另一个用户同时登录时,会出现一个 警报信息显示.
当 第一个用户登录,它进入内部 else
阻止 (在B线) .
当 第二用户登录 当下,它进入if块内部 if (mysqli_num_rows($result1) > 0)
而警报信息将显示 (在A线) 用户A目前正在登录。您想接手吗? (有Ok和Cancel按钮).
mno.php
/* php function for alert message */
function phpAlert($msg)
{
echo '<script type="text/javascript">confirm("' . $msg . '")</script>';
}
if (mysqli_num_rows($result1) > 0) {
while ($row = mysqli_fetch_array($result1)) {
if ($row['open'] == "true") {
if (!isset($_SESSION['pageadmin'])) {
$message = "user " . $row['user_name'] . " is logged in. Do you want to take over ?";
phpAlert($message); //Line A
}
break;
}
}
} else {
$_SESSION['pageadmin'] = true; // Line B
}
在点击 从警报框中选择 "OKCancel "按钮我想运行以下查询。
$stmt1=$connect->prepare("UPDATE trace_users SET write_access='0' WHERE write_access='1'"); // revoke write access of all users
$stmt1->execute();
取消按钮。
session_destroy(); // destroy session data in storage
!isset($_SESSION['pageadmin']);
header('location: /abc/mno.php');
这是我试过的,但我认为还需要做更多的工作,因为下面的if和else块在点击时没有被调用。好的 和 取消 按钮
if ( $_GET[confirm] == "yes" ) {
$stmt1=$connect->prepare("UPDATE trace_users SET write_access='0' WHERE write_access='1'"); // revoke write access of all users
$stmt1->execute();
} else if ( $_GET[confirm] == "no" ) {
session_destroy(); // destroy session data in storage
!isset($_SESSION['pageadmin']);
header('location: /abc/mno.php');
}
你应该创建两个单独的php文件,包含你在if和else块中相应的内容,然后使用ajax来调用这些文件。所以基本上你从你的js脚本开始,然后更新它来调用一个函数而不是直接调用confirm。
echo '<script type="text/javascript">myConfirmFunction("' . $msg . '")</script>';
然后实现 myConfirmFunction
在...中 <script>
集团这样的。
<script type="text/javascript">
function myConfirmFunction(message) {
if(confirm(message)) {
$.ajax({
url: "update_trace_users.php",
type: "GET",
data: {},
success: function(result) {
// Do something with result
}
});
} else {
$.ajax({
url: "session_destroy.php",
type: "GET",
data: {}, // you can pass data to your php script
success: function(result) {
// Do something with result
}
});
}
}
</script>
希望这对你有帮助!