Javascript 如果执行certein php脚本,则刷新页面

Javascript 如果执行certein php脚本,则刷新页面,javascript,php,html,Javascript,Php,Html,我有一个somefile.php和someotherfile.js,代码如下 javascript文件 函数deleteSelectedRow(){ 返回(确认('您确定要删除此记录吗)) }; 标题 从下面的列表中选择要删除的用户 您需要将成功/错误消息存储在$\u会话[“flash”]中,而不是通过echo显示,删除用户后必须重定向到同一页面。 在页面顶部,如果设置了$\u会话[“flash”],则可以显示消息并将其从会话中删除。代码: if(isset($_POST['delete']

我有一个somefile.php和someotherfile.js,代码如下

javascript文件
函数deleteSelectedRow(){
返回(确认('您确定要删除此记录吗))
};

标题
从下面的列表中选择要删除的用户

您需要将成功/错误消息存储在
$\u会话[“flash”]
中,而不是通过echo显示,删除用户后必须重定向到同一页面。 在页面顶部,如果设置了
$\u会话[“flash”]
,则可以显示消息并将其从会话中删除。代码:

if(isset($_POST['delete']))
    {
        require_once('../SQL/mySQL_connect.php');
        $query="DELETE FROM `participants` WHERE `participants`.`id` = ".$_POST['IDNumber']."";
        $response = @mysqli_query($mysqli, $query);
        if($response)
        {
            $_SESSION["flash"] = "Deleted from Database Successfully";
        }
        else
        {
            $_SESSION["flash"] = "Couldn't Delete from database";
            //echo'<br>';
            //echo mysqli_error($mysqli);
        }
        mysqli_close($mysqli);
        header('Location: '.$_SERVER['PHP_SELF']); 
    }
不要忘记在页面顶部启动会话()。
我会注意到您的代码有一个SQL注入漏洞。在没有验证GET和POST输入数据的情况下,您不应该执行MySQL查询。

您需要将成功/错误消息存储在
$\u会话[“flash”]
中,而不是通过echo显示,删除用户后必须重定向到同一页面。 在页面顶部,如果设置了
$\u会话[“flash”]
,则可以显示消息并将其从会话中删除。代码:

if(isset($_POST['delete']))
    {
        require_once('../SQL/mySQL_connect.php');
        $query="DELETE FROM `participants` WHERE `participants`.`id` = ".$_POST['IDNumber']."";
        $response = @mysqli_query($mysqli, $query);
        if($response)
        {
            $_SESSION["flash"] = "Deleted from Database Successfully";
        }
        else
        {
            $_SESSION["flash"] = "Couldn't Delete from database";
            //echo'<br>';
            //echo mysqli_error($mysqli);
        }
        mysqli_close($mysqli);
        header('Location: '.$_SERVER['PHP_SELF']); 
    }
不要忘记在页面顶部启动会话()。 我会注意到您的代码有一个SQL注入漏洞。在没有验证GET和POST输入数据的情况下,不应执行MySQL查询。

有几件事:

  • 您希望删除操作是您在页面上执行的第一件事(如果是表单提交),因为否则您将打印“预删除”表

  • 您需要通过表单中的post传递ID。如果每一行都有一个唯一的ID,并且每一行都有一个隐藏的ID输入,那么就更容易了

  • 确认最好附加到表单提交事件,因为否则您将错过其他非单击输入方法

  • 正如问题中所述,您的删除操作容易受到SQL注入攻击。您将希望避开该POST值

  • 像下面这样的东西应该可以用

    函数deleteSelectedRow(){
    返回(确认('您确定要删除此记录吗))
    };
    
    
    标题
    从下面的列表中选择要删除的用户
    
    有几件事:

  • 您希望删除操作是您在页面上执行的第一件事(如果是表单提交),因为否则您将打印“预删除”表

  • 您需要通过表单中的post传递ID。如果每一行都有一个唯一的ID,并且每一行都有一个隐藏的ID输入,那么就更容易了

  • 确认最好附加到表单提交事件,因为否则您将错过其他非单击输入方法

  • 正如问题中所述,您的删除操作容易受到SQL注入攻击。您将希望避开该POST值

  • 像下面这样的东西应该可以用

    函数deleteSelectedRow(){
    返回(确认('您确定要删除此记录吗))
    };
    
    
    标题
    从下面的列表中选择要删除的用户
    
    您可以尝试
    标题(“位置:“.”http://“$\u服务器['http\u主机].$Location”)
    after
    if($response)
    在打印表格后删除条目。在选择查询之前移动删除块。这应该适用于location.reload();。您的代码易受攻击。您应该通过或使用带绑定参数的准备语句。有一些很好的例子。剪切并粘贴if(在和标记之间设置($\u POST['delete']){}代码您可以尝试
    标题(“位置:“.”http://“$\u服务器['http\u主机].$Location)
    after
    if($response)
    在打印表格后删除条目。在选择查询之前移动删除块。这应该适用于location.reload();。您的代码易受攻击。您应该通过或使用带绑定参数的准备语句。有一些很好的例子。在和标记之间剪切并粘贴你的if(isset($\u POST['delete']){}代码。你应该在回答中提到,该代码容易受到SQL注入的攻击。是的,在注释中,可以出于任何原因随时删除。最好涵盖你自己的基础,评论可能不会永远存在,当它被删除并且人们在将来查看此答案时,他们可能不会意识到它是易受攻击的(这是大量教程的问题,他们是易受攻击的,但新用户不知道这一点)好的,对不起,我马上就要做了。你应该在回答中提到,代码容易受到SQL注入的攻击。是的,在注释中,可以出于任何原因随时删除。最好涵盖你自己的基础,评论可能不会永远存在,当它被删除,人们在将来查看此答案时,他们可能不会意识到它是易受攻击的(这是大量教程的问题,他们是易受攻击的,但新用户不知道)。好的,抱歉,我马上就这么做。我尝试了你提到的编辑。但当我删除任何记录时,页面会重新加载,并对我在整个文件中调用的每个查询说“mysqli_query():无法在中获取mysqli…”。可能在某个地方与服务器的连接中断了,或者是其他原因造成的?对于在中调用的所有查询,整个错误语句都是“警告:mysqli_query():无法在C:\xampp\htdocs中获取mysqli…”file@MShajeehMustafa我没有对你的数据库连接给予足够的关注。我已经对示例进行了调整,以考虑使用
    require\u once
    。我猜想这些错误与正在关闭的连接有关,而不是重新打开的连接(因为您在页面的前面已经需要了一次该文件)。这不是一个很好的解决方案,但是在没有看到并更改
    mySQL\u connect.php
    的情况下,这是我所能做的最好的了。可能我必须在mySQL\u connect.php或类似的程序中启动一些会话。然而