$ _POST []的范围,试图访问$ _POST []变量,得到未定义的索引错误

时间:2015-04-28 20:11:51

标签: php html forms post scope

我有两个表单提交到同一个脚本的不同块。我无法访问其他块中的一个块的变量,但两个变量都在同一个脚本中。

html表格:(1.php)

<html>
  <form method="POST" action="2.php" enctype="multipart/form-data">
    </br>
    Choose a user name:</font>
    <input type="text" name="username">
    <input type="submit" name="submit" value="Save and Proceed">
  </form>
</html>

2.PHP:

 <?php
    $name=$_POST['username'];
    if ((isset($_POST['username'])) && ($_POST['submit'] == 'Save and Proceed'))
    {
        $name=$_POST['username'];
        echo $name;
        if($name=='azra')
        {
        ?>
        <html>
          <form method="POST" action="2.php" enctype="multipart/form-data"></br>
            enter age:</font>
            <input type="text" name="age">
            <input type="submit"  name="submit" value="done">
          </form>
        </html>
        <?php
        }
    }

    if((isset($_POST['age'])) && ($_POST['submit'] == 'done'))
    {
        $age=$_POST['age'];
        echo $age;
        if($age==25)
        {
            echo "hi" .$name;
            echo "your age is ". $age;
            echo"you are eligible";
        }
    }   

  ?>

如何在同一脚本中的html表单后面的代码中访问$_POST['username']?提前谢谢。

2 个答案:

答案 0 :(得分:3)

在第二个表格中,您可以使用hidden input,即:

<input type="hidden" name="username" value="$name">

示例:

<?php

    $name=$_POST['username'];
    if (!empty($_POST['username']) && $_POST['submit'] == 'Save and Proceed'))
    {
        $name=$_POST['username'];
        echo $name;
        if($name=='azra')
        {
            echo <<< LOL
         <html>
        <form method="POST" action="2.php" enctype="multipart/form-data"></br>
        enter age:</font> <input type="text" name="age">
         <input type="hidden" name="username" value="$name">
        <input type="submit"  name="submit" value="done">
        </form>
        </html>
LOL;
        }
    }

    if((isset($_POST['age'])) && ($_POST['submit'] == 'done'))
    {
        $age=$_POST['age'];
        echo $age;
        if($age==25)
        {
            echo "hi" .$name;
            echo "your age is ". $age;
            echo"you are eligible";
        }
    }   

?>

答案 1 :(得分:0)

如果我理解得很好,你想要两次通过用户名。 你可以使用隐藏的输入,这是不可见的(只传输数据):

<input type="hidden" name="username" value="<?php echo $_POST['username']; ?>" />