我正在尝试运行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>";
?>
这是因为您最初没有设置$name
变量。仅在发出发布请求时设置。因此,第一次使用GET
请求获取脚本时,PHP会向您显示该通知。第二次(我想是在您提交启动POST
请求的表单之后)设置了$name
变量,因此您没有收到通知。要解决此问题,可以将$name
变量设置为第一个if语句上方的空字符串。
1。未定义的变量:nameerr和第22行中的>]
<input type="text" name="name" value="<?php echo $name;?>"><span>* <?php echo $nameerr ?></span><br><br>
- 未定义变量:名称输入
echo $ name;第28行
<?php
写入后
$name="";
$nameerr="";