php - 访问 $_POST 时出现未定义索引错误

标签 php html forms

我一直在尝试解决这个问题,但它给了我同样的错误:

Notice: Undefined index: items in C:\xampp\htdocs\shop.php on line 9

Notice: Undefined index: body in C:\xampp\htdocs\shop.php on line 24

这是我的代码:

<form action="" method="post">
    <input type="radio" name="items" value="fed" /> Fed<br />
    <input type="radio" name="items" value="body" /> Body<Br>
    <input type="submit" name="submit"><br>
</form> 

<?php
if(isset($_POST['submit'])) {
     $items = $_POST['items'];
     if($items=="fed") {
         echo "You choose feds";    
         die();
     }
     else
         echo "<Form action='' method='POST'>
         <select name='body'>
         <option value='head'>Head</option>
         </select>
         <input type='submit' name='submit' value='submit' /><br />
         </form>";

 if(isset($_POST['submit'])) {
    $body = $_POST['body'];
    $connect = mysql_connect("localhost","root","")or die(mysql_error());
    mysql_select_db("feds",$connect)or die(mysql_error());
    
    $merchandise = mysql_query("SELECT * FROM merchandise WHERE body_part='$body' ")or     die(mysql_error());

    while($row = mysql_fetch_array($merchandise)) {
        echo $row['item'];  
        echo "<bR>";
    }
}


} 
?>

最佳答案

错误消息表明您正在访问不存在的数组项!

但一般来说,您应该检查这些变量是否存在(即使您确定表单已发送):

$items = isset($_POST['items']) ? $_POST['items'] : outputError('...');

请修复您的 SQL 注入(inject)安全漏洞!!

$body = mysql_real_escape_string( $_POST['body'] );

也请考虑升级到MySQLiPDO!关于这些主题有很多很好的资源。

关于php - 访问 $_POST 时出现未定义索引错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8300068/

相关文章:

python - Django基于添加表单编辑表单?

javascript - 带有 'Quantity' 下拉列表的 PHP 表单可将输入的数据行插入到表单中

php - 如何加快查询速度?

php - 如何使用 UPDATE 表 SET column = NULL 释放未使用的空间?

php - 合并并转置 3 个数据数组

html - WebGrid 内容列突然不换行

html - 嵌入 flv 文件作为横幅

php - 搜索引擎的困境

javascript - 这是我到目前为止所学到的,但它不起作用 : RE CSS, HTML、JS 并使按钮切换

javascript - 提交 AJAX 表单以表达 api - JSON 中位置 0 处出现意外标记 #