文本由';回声&x27;当按下刷新按钮时,该函数仍然存在。--PHP

文本由';回声&x27;当按下刷新按钮时,该函数仍然存在。--PHP,php,html,echo,page-refresh,forms,http-post,Php,Html,Echo,Page Refresh,Forms,Http Post,isset($\u POST[“submit”])删除此签入elseif 提交表单并显式刷新页面后,$\u POST[“提交”]已设置,但如果手动转到该页面,$\u POST[“提交”]将不会设置。关于会话\u start()和会话\u destroy()的位不会影响POST变量。正如BugFinder指出的,刷新页面通常会重新提交您刚刚提交的任何数据。这就是“你在”信息再次出现的原因 防止这种行为的一种方法是在处理提交的数据后重定向。然后,您可以设置一个会话变量来跟踪仍然需要显示的消息(或者,

isset($\u POST[“submit”])删除此签入elseif


提交表单并显式刷新页面后,$\u POST[“提交”]已设置,但如果手动转到该页面,$\u POST[“提交”]将不会设置。

关于
会话\u start()
会话\u destroy()
的位不会影响POST变量。正如BugFinder指出的,刷新页面通常会重新提交您刚刚提交的任何数据。这就是“你在”信息再次出现的原因

防止这种行为的一种方法是在处理提交的数据后重定向。然后,您可以设置一个会话变量来跟踪仍然需要显示的消息(或者,如果用户登录或未登录)

您的代码如下所示:

<?php
    session_start();
    $root = 'root';
    mysql_connect('localhost',$root,'') or die(mysql_error()); 
    mysql_select_db("test_create_database") or die(mysql_error()); 

    $result = mysql_query("SELECT * FROM members");
    $row = mysql_fetch_assoc($result);


    $username="";
    $password="";
    $id="";

    if(isset($_POST["submit"]))
    {
        if(isset($_POST["submit"]) && !empty($_POST["username"]) && !empty($_POST["password"]) && !empty($_POST["id"]))
        {
            if(isset($_POST["username"]) && isset($_POST["password"]) && isset($_POST["id"]))
            {   $username = $row["username"];
                $password = $row["password"];
                $id       = $row["id"];
                if($username == "John" && $password =="1234" && $id =="1")
                {
                    echo "you're in";
                }
                else
                {
                    echo "you're out!";
                }
            }
        }
        elseif (isset($_POST["submit"]) && (empty($_POST["username"]) || empty($_POST["password"]) || empty($_POST["id"])))
        {
                echo "enter all fields please!!!!";
        }

    }
    session_destroy();
?>


请注意,重定向到页面本身似乎有点强制(使用
$\u SERVER['QUERY\u STRING']
获取当前页面的位置)。如果您知道文件名,或者在处理表单输入后正在重定向到另一个页面,那么它会更直观地工作。

这里的问题到底是什么?您到底出了什么错?F5经常重新发送数据-确实如此。您的数据库表
members
是否只包含一个条目?您只检索到第一个要比较的。一两句话就太好了。
<?php
    session_start();
    $root = 'root';
    mysql_connect('localhost',$root,'') or die(mysql_error()); 
    mysql_select_db("test_create_database") or die(mysql_error()); 

    $result = mysql_query("SELECT * FROM members");
    $row = mysql_fetch_assoc($result);

    $username="";
    $password="";
    $id="";

    if(isset($_POST["submit"]))
    {
        if(isset($_POST["submit"]) && !empty($_POST["username"]) && !empty($_POST["password"]) && !empty($_POST["id"]))
        {
            if(isset($_POST["username"]) && isset($_POST["password"]) && isset($_POST["id"]))
            {   $username = $row["username"];
                $password = $row["password"];
                $id       = $row["id"];
                if($username == "John" && $password =="1234" && $id =="1")
                {
                    //do stuff
                    $_SESSION['message'] = "you're in";
                }
                else
                {
                    $_SESSION['message'] = "you're out!";
                }
            }
        }
        elseif (isset($_POST["submit"]) && (empty($_POST["username"]) || empty($_POST["password"]) || empty($_POST["id"])))
        {
                $_SESSION['message'] = "enter all fields please!!!!";
        }
        $selfLink = $_SERVER['PHP_SELF'];
        if (isset($_SERVER['QUERY_STRING'])) { 
            $selfLink .= "?" . $_SERVER['QUERY_STRING']; 
        }
        header('location: '.$selfLink);
        exit;
    }

    if (isset($_SESSION['message'])) {
        echo $_SESSION['message'];
        unset($_SESSION['message']);
    }
?>