PHP -不能在函数调用之间访问全局数组值


PHP - Can't access global array values between function calls

我试图建立一个简单的HTML表单,分布在三个页面。第一页要求输入用户的姓和名。第二页询问他的祖国& &;他是否愿意得到更多的信息。在第三页,显示用户输入的所有信息

第一页有一个名为"Next"的按钮,用于转到第二页。第二页有两个按钮,分别名为"Finish"answers"Back",分别用于进入最后一页和返回第一页。

我使用一个名为"data"的全局数组来保存用户在每个页面上输入的值。

问题是,我无法访问最后一页中的所有数组值。当我试图访问这些值时,只显示在第二页中选择的国家。在第一页中输入的名字和姓氏都没有显示,即使我将这些值存储在数组中。

如何在最后一页显示所有输入的值?

下面是我的代码:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
    <?php
        $data=array();
    ?>
    <?php
        if(!isset($_POST['next1']) && !isset($_POST['next2']) && !isset($_POST['back1']))
            Display1();
        else if(isset($_POST['next1']))
        {   
            global $data;
            array_push($data, $_POST['text1']);
            array_push($data, $_POST['text2']);
            Display2();
        }
        else if(isset($_POST['back1']))
        {
            Display1();
        }
        else if(isset($_POST['next2']))
        {
            global $data;
            $country=$_POST['country'];
            foreach($country as $x)
                array_push($data, $x);
            Display3();
        }
    ?>
    <?php
        function Display1()
        {
    ?>
    <form id="form1" action="Multi.php" method="post">
    <label>Enter First Name: </label>
    <input type="text" name="text1"  />
    <br />
    <br />
    <label>Enter Last Name: </label>
    <input type="text" name="text2"  />
    <br />
    <br />
    <input type="submit" name="next1" value="Next" />
    <?php
    }
    function Display2()
    {
    ?>
        <form id="form2" action="Multi.php" method="post">
        Select Country
        <select name="country[]" multiple="multiple">
        <option value="India">India</option>
        <option value="USA">USA</option>
        <option value="China">China</option>
        </select>
        <br />
        <br />
        <input type="submit" name="next2" value="Finish" />
        <input type="submit" name="back1" value="Back" />
    <?php
    }
    function Display3()
    {
        global $data;
        foreach($data as $x)
            echo $x . "<br>";
    }
    ?>
</body>
</html>

请求之间不保留正常变量,请求之间是相互独立的。

使用隐藏输入字段添加所有这些字段(您可以通过$_POST访问它们)或使用session_start()启动会话并将它们保存在$_SESSION中。确保在最顶端开始会话,之前不能发送一个字节!

对于在所有函数之外声明的任何变量都使用$GLOBALS['data'];希望这就是你想要的。