为什么 PHP 代码给出了 $_REQUEST 全局变量的通知


Why PHP code for gives a notice for $_REQUEST global variable?

<html>
    <body>
    <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
        Name: <input type="text" name="fname">
        <input type="submit">
    </form>
    <?php
        $name = $_REQUEST['fname'];//Notice is coming at this line
        echo $name;
    ?>
    </body>
</html>

上面的代码显示如下通知:-

Notice: Undefined index: fname in C:'xampp'htdocs'Programs'request.php on line 10

如何删除此错误?我从 w3schools.com 那里获取了这段代码。它在 w3schools.com 站点中运行良好。在我的 PC 中,它也运行,但是当我在浏览器中打开此程序时,它会显示上述行。请帮助我..

当未设置$_REQUEST['fname']时,它会发出此通知。

改变:

$name = $_REQUEST['fname'];//Notice is coming at this line

自:

$name = isset($_REQUEST['fname']) ? $_REQUEST['fname'] : "";

您需要检查它是否由isset()设置

当变量没有像你的情况那样定义时,PHP 会发出通知$_REQUEST['fname']也没有设置/定义。

更改为:

$name = isset($_REQUEST['fname']) ? $_REQUEST['fname'] : "";//better way

或者你可以做

$name = @$_REQUEST['fname'];//this way notice or warnings are suppressed