$ _POST或$ _REQUEST返回undefined,即使它是普通页面请求而不是POST

时间:2014-09-06 05:14:01

标签: php

我是php的新手。我已经在asp.net mvc上工作,现在正在学习php。

我研究过$ _POST和$ _REQUEST并尝试将其用作:

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <form name="test" action='<?php echo $_SERVER['PHP_SELF']; ?>' method='post' >
            <input type='text' name='abc'>
            <input type="submit">
        </form>

        <?php
        // put your code here
        $abc = $_POST["abc"];
        echo abc;
        $abc = $_REQUEST["abc"];
        echo abc;
        ?>



    </body>
</html>

但是当我运行这些行时会出现:

注意:未定义的索引:第20行的C:\ xampp \ htdocs \ PhpProject1 \ index.php中的abc

注意:使用未定义的常量abc - 假设&#39; abc&#39;在第21行的C:\ xampp \ htdocs \ PhpProject1 \ index.php中 ABC

enter image description here

3 个答案:

答案 0 :(得分:4)

应该是:

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <form name="test" action='' method='post' >
            <input type='text' name='abc'>
            <input type="submit">
        </form>

        <?php
        if ($_SERVER['REQUEST_METHOD'] == 'POST'){
            echo $_POST["abc"];;
        }
        ?>
    </body>
</html>

由于您发布到同一页面地址不是必需的PHP_SELF。此外,您必须在表单提交

后访问$ _POST索引变量

答案 1 :(得分:1)

abc是一个变量,你写道:

echo abc;

这应该是:

echo $abc;

答案 2 :(得分:1)

第一次加载时未定义,请检查isset

<?php
        if(isset($_POST["abc"]))
        {
          $abc = $_POST["abc"];
          echo $abc;
        }

        if(isset($_REQUEST["abc"]))
        {
          $abc = $_REQUEST["abc"];
          echo $abc;
        }
        ?>