我写了一个简单的php脚本,它基本上回应了在页面上放入表单的值,稍后,我将这个写入数据库但我正在努力对其进行故障排除,因为我一直收到此警告。
有谁知道我为什么会这样做?如果我只是填写字段并提交表单,脚本就可以正常运行并且警告消失。
PHP功能:
function quickEntry()
{
$subTitle = $_POST['subTitle'];
$subDetails = $_POST['details']; //This is line 13 in my code
echo "$subTitle";
echo "<br>$subDetails";
}
HTML / PHP代码:
<form method="post" action="">
<hr>
<h1>Quick Entry:<p></h1>
Subject Title:<br> <input type="text" name="subTitle"><br><br>
Subject Details: <p><textarea name="details" placeholder="Enter Details here..."></textarea><p><br>
<input type="submit" name="QuickEntrySubmit" value="Submit Quick Entry" /><br>
</form>
<?php
if (isset($_POST['QuickEntrySubmit']))
{
quickEntry();
}
?>
我知道我可以禁用警告而且我不会看到这个,但我真的只是想知道为什么php会抛出警告所以我可以适当地修复语法并保持我的代码清洁。完全警告是:
注意:未定义的索引:第13行的C:\ xampp \ htdocs \ test1.php中的详细信息
谢谢!
答案 0 :(得分:1)
您收到警告,因为$_POST
变量包含您要检查的索引($_POST['subTitle']
&amp; $_POST['details']
),因此变量无法设置当您引用不是的内容时,它们是空的。
在尝试将它们分配给变量之前,您应该检查以确保它们先被设置:
$subTitle = (isset($_POST['subTitle']) && !empty($_POST['subTitle'])) ? $_POST['subTitle'] : null;
$subDetails = (isset($_POST['details']) && !empty($_POST['details'])) ? $_POST['details'] : null;
上面的代码会检查以确保帖子索引isset()
并且在将其分配给变量之前不是empty()
。
注意强>
当您提交表单时设置变量,因为您实际上是将数据发布到脚本中。
您看到input
属性name
了吗?提交表单时,它们是相关的$_POST
索引。
如果您打算将它们打印到标记,请记住确保值不为空。
答案 1 :(得分:1)
您收到该错误的原因是您没有检查&#39; subTitle&#39;和&#39;细节&#39;输入中包含值。 你的代码应该像这样工作:
function quickEntry(){
$subTitle = isset($_POST['subTitle'])? $_POST['subTitle']: null;
$subDetails = isset($_POST['details'])? $_POST['details']: null ; //This is line 13 in my code
if(!is_null($subTitle) && !is_null($subDetails)){
echo "$subTitle";
echo "<br>$subDetails";
} else{
//blah blah blah
}