1

我有几个表格列出了不同的内容:问题、回复和用户。这些表来自管理员的 pov。在左侧,代码创建了一个包含一个小的 cancel.png img 的单元格,该单元格应该是该行的删除按钮。现在,当我单击任何按钮(有很多)时,它什么也没做,但是当我将鼠标悬停在它们上时会触发悬停光标动画。我不知道出了什么问题,我让我的另一位同事检查了 JS,但他在另一家工厂工作。

我试过编辑 JS,检查 PHP 中的 SQL 查询,检查数据库是否触发了任何东西,但它没有。网上也没有什么好的例子可以记录下来。

所以这里是代码开始的地方:这是删除函数。

<?php
if(isset($_GET['udel'])) {
    $error = 0;
    $uid = mysqli_real_escape_string($link, $_GET['udel']);
    $query = "DELETE FROM users WHERE id = $uid;";
    if (!mysqli_query($link, $query)) $error = 1;
    if ($error == 0) $msg = 'The user has been deleted.';
    else $msg = 'The user couldn\'t be deleted. Contact the website administrator if the problems persists.';
}
?>

有 php/html 调用另一个 php 文件来打印(例如用户)表:

<?php
    printUsersTable(getUsers($link));

?>

它把这个东西叫做:

<?php // theres code above here
function printUsersTable($users) {
?>

    <table class="neutral" border="0" style="width:500px;">
        <thead>
            <tr>
                <th>DEL</th>
                    <th>Name</th>
                    <th>Email</th>
                    <th>Admin</th>
                    <th>State</th>
            </tr>
        </thead>
        <tbody>
        <?php foreach($users as $user) { ?>
            <tr>
                 <td style="cursor: pointer";><img src="images/cancel.png" class="userDel" rel="<?=$user['id']?>" /></td>
                     <td><?=$user['name']?></td>
                     <td><?=$user['login']?></td>
                     <td><?php if($user['admin'] == 1)  echo 'Y'; else echo 'N'; ?></td>
                     <td><?=$user['state']?></td>
                </tr>

        <?php } ?>
        </tbody>
    </table>
<?php
}
// code continues 
?>

全部打印(因此包含在内)到第一个管理页面上。

然后它转到这个(在第一个管理页面上,就像代码的第一部分一样),如果点击,应该触发 rel 属性:

$(".userDel").click(function() {
    var uid = $(this).attr("rel");
    if(confirm("Are you sure you want to delete user " + uid + "?")) {
       window.location = 'admin.php?udel=' + uid;
    }
   });

我也试过这个,但它也不起作用:

    $(".userDel").on('click', function(event) {
      event.stopPropogation();
      event.stopImmediatePropogation();
      var uid = $(this).attr("rel");
      if(confirm("Are you sure you want to delete user " + uid + "?")) {
        window.location = 'admin.php?udel=' + uid;
      }
    });

在我的所有文件中,首先是 php 代码,然后是 JS,然后是任何 HTML。我很忙,你们能帮帮我吗?(另外,我在任何地方都没有任何 SQL 注入漏洞吗?)>.>

4

1 回答 1

0

好的,所以我想通了:

  • 其他地方的一些代码,比如我的主函数文件,没有调用同一个数据库(一些称为测试数据库,另一些称为实时数据库)。所以这是我在使用 SMTP 时遇到的另一个问题的问题。

  • 当我不需要使用它时,我正在包含/src-ing jquery 的 cleditor。我在我发布的内容上方删除了在我的 JS 中调用它并修复了它。JS 现在可以根据需要工作并删除。

于 2019-04-12T16:47:49.640 回答