我想将表单输入处理到MYSQL数据库中,但是我无法获取其他文件来识别_POST数组中的数据,并且一直遇到典型的“未定义索引”错误。我的表格:
<?php
$category = '';
$item = '';
// Check if form is posted
if (isset($_POST['item'])){
// Declare POST'd values into variables
$category = $_POST['Category'];
$item = $_POST['item'];
}
?>
<!-- Item Input form -->
<form id='additem' method='post' action="">
<fieldset>
<legend>Add Item</legend>
<table>
<tr>
<td><label for='Category'>Category: </label></td>
<td><input type='text' name='Category' list='categories' value='<?php $category;?>' /></td>
<datalist id='categories'>
<option value='Protein'>
<option value='Produce'>
<option value='Baked Goods'>
<option value='Dry/Canned'>
<option value='Household'>
</datalist>
</tr><tr>
<td><label for='item'>Name: </label></td>
<td><input type='text' name='item' value='<?php $item;?>' /></td>
</tr><tr>
<td></td><td><input type='Submit' value='Submit' /></td>
</tr>
</table>
</fieldset>
</form>
当我在该文件中使用$ _POST时,它可以很好地工作,但是当我尝试在另一个文件中使用process.php时:
<?php
echo $_POST['Category'];
echo '<br>';
echo $_POST['item'];
?>
它给出:注意:未定义的索引:E:\ Documents \ XAMPP \ htdocs \ Website \ process.php在第3行中的类别注意:未定义的索引:E:\ Documents \ XAMPP \ htdocs \ Website \ process.php中的项5
现在,我知道我的_POST数组不是空的,因为我可以在原始表单文件中访问它。如果我将表单操作更改为“ process.php”,则它可以工作,但也会自动将我带到该页面。我想要的是process.php将数据发送到我的数据库,而表单返回到其自己的页面,准备进行更多输入。我什至从字面上复制了该示例中的代码并将其粘贴到文件中并尝试运行这些文件,但是我遇到了类似的错误,因此我认为这可能与XAMPP / Apache有关。
为了解决这个问题,我也尝试过这样做,但是post_max_size已经设置为8M,并且根据另一篇文章,我看到在下面的行中我添加了'variables_order =“ EGPCS”'。仍然我得到相同的未定义索引。
我的代码有问题吗?是XAMPP / Apache吗?我尝试全新安装XAMPP,但问题仍然存在。
您的$ _POST数组将无法在所有页面上访问。据我所知,您正在尝试访问其他文件上的$ _POST数组,并且该数组只能在此文件或您发布到的文件中使用。您需要使用SESSION才能使用这些值
$_SESSION["Category"] = $_POST['Category'];
然后在其他任何页面上,只需session_start();
在页面顶部使用,然后像
echo "Selected Category is " . $_SESSION["Category"] . ".<br>";
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句