【问题标题】:Multiple $_GET handling多个 $_GET 处理
【发布时间】: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 的代码,以便我们实际了解它为什么不起作用。
  • 我的错,我用其余的代码更新了代码

标签: php html get request


【解决方案1】:

如果我错了,请纠正我,但您的 HTML 仍然附加参数 'act' 而不是 'act2'

href="?p=attempt&id='.$row['id'].'&act=delete"

您在 GET 超全局变量上的 ISSET 返回 false 并且不执行任何操作。

act 和 act2 的目的到底是什么?您是否要同时执行 2 个删除功能?

【讨论】:

  • 有两个不同的按钮,一个是我想将 ip 添加到数据库中的表中,另一个是从当前表中删除它,act 是删除,act2 是移动桌子。所以我试图弄清楚为什么 &act=delete 有效,但 &act2=blacklist 没有
  • 您发布的内容中的act2=blacklist 在哪里?在您的原始帖子中,您有 &amp;act=blacklist" title="Blacklist IP" 而不是 act2。那是/只是一个错字吗?
  • 我认为这是一个错字,我正在尝试修复错误,所以我正在测试不同的东西
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多