Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在提交后删除表单信息_Php_Html_Login - Fatal编程技术网

Php 如何在提交后删除表单信息

Php 如何在提交后删除表单信息,php,html,login,Php,Html,Login,对于一个学校项目,我需要做一个网站,使用数据库执行查询或登录系统 登录系统完全可以工作,但是当用户尝试使用数据库中不存在的用户名登录时,会弹出一条警告消息,告诉用户这是不可能的。但是,在此之后(第一次提交后),每当我单击“刷新页面”按钮时,警报将再次出现,而用户不会实际提交任何表单信息。所以我知道问题出在哪里,但我不知道我需要在哪里取消设置()变量(或其他),但至少我需要在用户没有提交任何内容的情况下不显示警报 以下是代码,我希望有人能看到问题所在: PHP代码: <?php se

对于一个学校项目,我需要做一个网站,使用数据库执行查询或登录系统

登录系统完全可以工作,但是当用户尝试使用数据库中不存在的用户名登录时,会弹出一条警告消息,告诉用户这是不可能的。但是,在此之后(第一次提交后),每当我单击“刷新页面”按钮时,警报将再次出现,而用户不会实际提交任何表单信息。所以我知道问题出在哪里,但我不知道我需要在哪里取消设置()变量(或其他),但至少我需要在用户没有提交任何内容的情况下不显示警报

以下是代码,我希望有人能看到问题所在:

PHP代码:

<?php
    session_start();
    if (!isset($_SESSION["username"])) {
        $_SESSION["username"]= "No User";
    }
    if(isset($_POST["reg"]))
    {
        $ingevoerdgebruikersnaam = $_POST ["leerlingid"];
        $ingevoerdwachtwoord = $_POST ["wachtwoord"];

        if (!$db = mysql_connect ('localhost', 'havo5groep2', 'TpWsj7WG'))
        {
            $boodschap = "not ok";
        }
        else
        {
            $boodschap = "<script language='javascript'> alert('Gebruiker succesvol geregistreerd.')</script>";
            $database = mysql_select_db("havo5groep2");
            if (!$resultaat = mysql_query (" SELECT leerlingid, wachtwoord FROM po WHERE leerlingid = '$ingevoerdgebruikersnaam'", $db))
            {
                echo " Het lukte niet om de query uit te voeren";
            }
            else
            {
                if (mysql_num_rows($resultaat) == 0)
                {
                    $resultaat = mysql_query ("INSERT INTO po (`leerlingid`, `wachtwoord`) VALUES ('$ingevoerdgebruikersnaam', '$ingevoerdwachtwoord')", $db);
                }
                else
                {
                    $boodschap = "Deze gebruikersnaam is al in gebruik.";
                }
            }
        }
        echo $boodschap;
    }
    else
    {
        if(isset($_POST["login"]))
        {
            $ingevoerdgebruikersnaam = $_POST ["leerling"];
            $ingevoerdwachtwoord = $_POST ["ww"];

            if (!$db = mysql_connect ('localhost', 'havo5groep2', 'TpWsj7WG'))
            {
                $boodschap = "not ok";
            }
            else
            {
                $boodschap = "ok";

                $database = mysql_select_db("havo5groep2");
                if (!$resultaat = mysql_query (" SELECT leerlingid, wachtwoord FROM po WHERE leerlingid = '$ingevoerdgebruikersnaam'", $db))
                {
                    echo " Het lukte niet om de query uit te voeren";
                }
                else
                {
                    if (mysql_num_rows($resultaat) == 0)
                    {
                        //echo "De gebruikersnaam $ingevoerdgebruiker is niet bekend !";
                        echo "<script>    alert('De ingevoerde gebruikersnaam is niet bekend!')</script>";
                    }
                    else
                    {
                        while (list($opgehaaldgebruikersnaam, $opgehaaldwachtwoord) =
                                       mysql_fetch_row($resultaat))
                        {
                            if ($ingevoerdwachtwoord == $opgehaaldwachtwoord)
                            {
                                $_SESSION["username"]= $ingevoerdgebruikersnaam;
                                header("Location: userpage.php");
                                //echo "Inloggen voor gebruiker $ingevoerdgebruiker is gelukt!";
                            }
                            else
                            {
                                //echo "Wachtwoord $ingevoerdWachtwoord bij gebruiker $ingevoerdgebruiker niet correct";
                                echo "<script>    alert('Wachtwoord is incorrect!')</script>";
                            }
                        }
                    }
                }
            }
        }
    }
该页面将告诉用户表单是否正确,并根据该信息将用户发送到正确的页面。这样做将在用户切换到另一个页面修复刷新时删除post数据

工作代码如下所示:

header("Location: whatsuppage.php");
if (!$resultaat = mysql_query (" SELECT gebruikersid, wachtwoord, werknemer FROM gebruikersdatabase WHERE gebruikersid = '$ingevoerdgebruikersnaam'", $db))
{
    echo " Het lukte niet om de query uit te voeren";
}
else
{
    if (mysql_num_rows($resultaat) == 0)
    {
        $_SESSION["whatsup"] = 2;
        header("Location: whatsuppage.php");
        // Empty result table
    }
    else
    {
        while (list($opgehaaldgebruikersnaam, $opgehaaldwachtwoord, $werknemer) = mysql_fetch_row($resultaat))
        {
            if ($ingevoerdwachtwoord == $opgehaaldwachtwoord)
            {
                $_SESSION["username"]= $ingevoerdgebruikersnaam;
                $_SESSION["werknemer"] = $werknemer;
                header("Location: userpage.php");
                // Send to header location after the post is done
            }
            else
            {
                //echo "Wachtwoord $ingevoerdWachtwoord bij gebruiker $ingevoerdgebruiker niet correct";
                $_SESSION["whatsup"] = 3;
                header("Location: whatsuppage.php");
                //echo "Wachtwoord is incorrect!";
            }
        }
    }
}

您需要从请求中删除帖子标题。在index.php中,在代码之后重定向到另一个页面。例如,感谢页面

<?php
header('Location: contact-thank-you.html');
die();
?>


记住,头重定向必须在任何输出之前执行。

您需要从请求中删除POST头。在index.php中,在代码之后重定向到另一个页面。例如,感谢页面

<?php
header('Location: contact-thank-you.html');
die();
?>


记住,在任何输出之前都必须执行标题重定向。

我不明白从请求中删除帖子标题是什么意思?此外,如果用户正确登录,他将已经进入用户页面。然而,例如,当有人尝试使用错误的用户名登录时,会弹出一个警报,但如果用户使用例如chrome上的刷新页面按钮,该警报将再次弹出,这正是我试图避免的。当您使用post方法提交表单时,表单信息会被压缩到“请求标头”中。每次刷新页面时,都会向Web服务器发送相同的信息。通过重定向,在实际php代码的末尾,您可以绕过此行为。但是如果我删除了method='post',仍然可以正确提交。那我什么时候应该重定向呢?因为php代码不应该使我的网站在每次刷新网站时重定向到页面。好吧,我想我现在明白了。因此,我删除了这篇文章,当点击提交时,它将不会刷新页面。因此,当有人成功(登录或注册)时,代码应该通过使用header执行重定向,这会将信息发送到服务器,对吗?因为当前仅删除POST后,单击submit只会在URL栏中显示登录信息,如下所示:“leerlingid=poep&wachtwoord=123®=Register”但我不希望发生这种情况。好吧,我读了关于Post/redirect/get方法的文章,并尝试了一下,我不明白你在请求中删除Post头是什么意思?此外,如果用户正确登录,他将已经进入用户页面。然而,例如,当有人尝试使用错误的用户名登录时,会弹出一个警报,但如果用户使用例如chrome上的刷新页面按钮,该警报将再次弹出,这正是我试图避免的。当您使用post方法提交表单时,表单信息会被压缩到“请求标头”中。每次刷新页面时,都会向Web服务器发送相同的信息。通过重定向,在实际php代码的末尾,您可以绕过此行为。但是如果我删除了method='post',仍然可以正确提交。那我什么时候应该重定向呢?因为php代码不应该使我的网站在每次刷新网站时重定向到页面。好吧,我想我现在明白了。因此,我删除了这篇文章,当点击提交时,它将不会刷新页面。因此,当有人成功(登录或注册)时,代码应该通过使用header执行重定向,这会将信息发送到服务器,对吗?因为目前只删除POST后,单击submit只会在URL栏中显示登录信息,如:“leerlingid=poep&wachtwoord=123®=Register”,但我不希望发生这种情况。好吧,我阅读了关于POST/redirect/get方法的内容,并尝试在
中没有相应的结束标记,最后一个
表单
标记没有相应的结束标记(
)。这是原件吗?@PeterMortensen不,这些不是原件,因为我不再使用此代码。这是其中一篇不再相关的帖子,但几个月前,因为学校的一个项目,我问过他们。然而,我用A+完成了这个项目,并在几个月前修复了它。然而,这些我们是代码窃贼,这导致他们没有所有的标签,因为他们我们是一个更大的代码的一部分。表单标记也是如此。它们没有与
对应的结束标记。另外,最后一个
表单
标记没有对应的结束标记(
)。这是原件吗?@PeterMortensen不,这些不是原件,因为我不再使用此代码。这是其中一篇不再相关的帖子,但几个月前,因为学校的一个项目,我问过他们。然而,我用A+完成了这个项目,并在几个月前修复了它。然而,这些我们是代码窃贼,这导致他们没有所有的标签,因为他们我们是一个更大的代码的一部分。表单标签也是如此