我只是试图从文本框中获取文本并通过POST方法打印但我收到错误未定义索引:第14行中的名称
<html>
<head>
<title>Form with PHP </title>
</head>
<body>
<form method = "post">
<input type ="text" name="name">
<input type="button" value="submit" id="submit">
</form>
<?php
$name=$_POST["name"];
echo "my name is" .$name;
?>
</body>
</html>
答案 0 :(得分:5)
您需要在表单的输入/名称元素上使用条件语句isset()
,因为您在同一页面内运行了整个代码。
通知显示在初始页面加载上;这就是为什么,因为它还没有设置&#34;爱好。
下面:
if(isset($_POST['name'])){
$name=$_POST["name"];
echo "my name is" .$name;
}
或将您的HTML表单和PHP分隔成单独的页面,并将您的操作设置为action="handler.php"
。然而,使用条件isset()
最好以任何一种方式使用。
您可能还想将提交按钮更改为提交类型:
<input type="submit" value="submit" id="submit">
但是,通过提交按钮类型的外观;看来你可能正在使用JS和你发布的代码并没有在你的问题中包含它,因此你也应该发布它并/或确保你已经正确设置了它的属性。
答案 1 :(得分:0)
如果您加载页面(不提交表单),则$ _POST [&#39; name&#39;]将不存在,因此它会提供&#34;未定义的索引&#34;错误信息。在使用之前,您需要确保它存在。
if (isset($_POST['name'])) {
$name=$_POST["name"];
echo "my name is" .$name;
}
答案 2 :(得分:0)
您使用$name
代替$_POST["name"]
。正确的方法是:
if(!empty($_POST['name']))
echo "my name is" .$_POST["name"];