为什么在PHP中出现未定义的变量错误[重复]

问题描述 投票:0回答:2

我正在尝试运行PHP代码,但是$ name变量出现未定义的错误。该错误仅在第一次运行时显示,但在第二次运行后,则没有显示任何错误。

<?php
        if($_SERVER['REQUEST_METHOD'] == 'POST'){
            $name =  $nameerr = "";
        if(empty($_POST["name"])){
            $nameerr = "This Field is Required";
        }
        else{
            $name = test_run($_POST['name']);
        }
        }


        function test_run($data){
            $data = trim($data);
            $data = stripslashes($data);
            $data = htmlspecialchars($data);
            return $data;
        }
    ?>
    <form action="<?php htmlspecialchars($_SERVER['PHP_SELF']) ?>" method="POST">
    <label for="name">Name: </label>
    <input type="text" name="name" value="<?php echo $name;?>"><span>* <?php echo $nameerr ?></span><br><br>
    <input type="submit" value="Submit">

    </form>
    <h1>Output</h1>
    <?php
    echo $name."<br><br>";
?>
php
2个回答
0
投票

这是因为您最初没有设置$name变量。仅在发出发布请求时设置。因此,第一次使用GET请求获取脚本时,PHP会向您显示该通知。第二次(我想是在您提交启动POST请求的表单之后)设置了$name变量,因此您没有收到通知。要解决此问题,可以将$name变量设置为第一个if语句上方的空字符串。


0
投票

1。未定义的变量:nameerr和第22行中的>]

<input type="text" name="name" value="<?php echo $name;?>"><span>* <?php echo $nameerr ?></span><br><br>
  1. 未定义变量:名称输入

echo $ name;第28行

<?php写入后

$name="";
$nameerr="";
© www.soinside.com 2019 - 2024. All rights reserved.