【发布时间】:2018-04-12 20:58:24
【问题描述】:
所以我有不同的按钮来调用获取请求,但只有一个在工作,当它们被调用时,它们被 act 和 act2 调用,act 工作正常,但 act2 在调用时什么都不做,有人可以帮忙吗?我试过调整名称,更改数据库设置,现在似乎没有什么对我有用。
这就是 get 的调用方式:
<center><a href="?p=attempt&id='.$row['id'].'&act=delete" title="Delete log"><i class="fa fa-times-circle"></i></a> <a href="?p=attempt&ip='.$row['ip'].'&act=blacklist" title="Blacklist IP"><i class="fa fa-lock"></i></a></center>'
这是回复
if (isset($_GET['act2']))
{
if (!isset($_GET['ip']))
{
echo '<div class="alert alert-danger">No log ID. </div><meta http-equiv="refresh" content="2;url=?p=settings">';
}else{
$act = $_GET['act2'];
$tid = $_GET['ip'];
if (ctype_digit($tid))
{
if (ctype_alnum($act))
{
$arr = array('blacklist');
if (in_array($act, $arr))
{
$cnt = $odb->prepare("SELECT COUNT(*) FROM login_attempts WHERE id = :i");
$cnt->execute(array(":i" => $tid));
if ($cnt->fetchColumn(0) > 0)
{
$cpermss = $odb->prepare("SELECT privileges FROM users WHERE username = :u");
$cpermss->execute(array(":u" => $_SESSION['username']) );
$cperms = $cpermss->fetchColumn(0);
if ($userperms == "moderator" && $cperms == "admin")
{
echo '<div class="alert alert-danger">Invalid Permissions.</div>';
}else{
if ($userperms == "user" && strtolower($cr) != strtolower($username))
{
echo '<div class="alert alert-danger">Invalid Permissions.</div>';
}else{
switch ($act)
{
case "blacklist":
$de = $odb->prepare("INSERT INTO 'blacklist'(ip) VALUES [':i']");
$de->execute(array(":i" => $tid));
echo '<div class="alert alert-success">ip added to blacklist. </div><meta http-equiv="refresh" content="2;url=settings.php">';
break;
}
}
}
}else{
echo '<div class="alert alert-danger">Log not found in database. </div><meta http-equiv="refresh" content="2;url=?p=settings">';
}
}else{
echo '<div class="alert alert-danger">Invalid action. </div><meta http-equiv="refresh" content="2;url=?p=settings">';
}
}
}
}
}
if (isset($_GET['act']))
{
if (!isset($_GET['id']))
{
echo '<div class="alert alert-danger">No log ID. </div><meta http-equiv="refresh" content="2;url=?p=settings">';
}else{
$act = $_GET['act'];
$tid = $_GET['id'];
if (ctype_digit($tid))
{
if (ctype_alnum($act))
{
$arr = array('delete');
if (in_array($act, $arr))
{
$cnt = $odb->prepare("SELECT COUNT(*) FROM login_attempts WHERE id = :i");
$cnt->execute(array(":i" => $tid));
if ($cnt->fetchColumn(0) > 0)
{
$cpermss = $odb->prepare("SELECT privileges FROM users WHERE username = :u");
$cpermss->execute(array(":u" => $_SESSION['username']) );
$cperms = $cpermss->fetchColumn(0);
if ($userperms == "moderator" && $cperms == "admin")
{
echo '<div class="alert alert-danger">Invalid Permissions.</div>';
}else{
if ($userperms == "user" && strtolower($cr) != strtolower($username))
{
echo '<div class="alert alert-danger">Invalid Permissions.</div>';
}else{
switch ($act)
{
case "delete":
$de = $odb->prepare("DELETE FROM login_attempts WHERE id = :i");
$de->execute(array(":i" => $tid));
echo '<div class="alert alert-success">log deleted. </div><meta http-equiv="refresh" content="2;url=settings.php">';
break;
}
}
}
}else{
echo '<div class="alert alert-danger">Log not found in database. </div><meta http-equiv="refresh" content="2;url=?p=settings">';
}
}else{
echo '<div class="alert alert-danger">Invalid action. </div><meta http-equiv="refresh" content="2;url=?p=settings">';
}
}
}
}
}
【问题讨论】:
-
我在任何地方都没有看到对
act2的引用。 -
所以这只是
act的代码。还请在其中添加带有act2的代码,以便我们实际了解它为什么不起作用。 -
我的错,我用其余的代码更新了代码