【问题标题】:What does this undefined index message mean这个未定义的索引消息是什么意思
【发布时间】:2013-12-26 04:22:36
【问题描述】:

此代码调用输入到表单中的值并将它们输入到数据库中(或者至少它应该在每次页面加载时给出“未定义索引”消息,我正在努力确定原因。

非常感谢可以提供给我的任何帮助!

<?php

$dbc=mysql_connect('localhost', 'user', '');
mysql_select_db('database', $dbc);



$sqlInsertString = "INSERT INTO band_information (Name, Photo, Bio, City, State, Zipcode, Genre, Link)
            VALUES ({$_POST['bandname']}, {$_FILES['bandphoto']['name']}, {$_POST['bandbio']}, {$_POST['bandcity']},
                    {$_POST['bandstate']}, {$_POST['bandzipcode']}, {$_POST['bandgenre']},{$_POST['bandlink']});";

if($_SERVER['REQUEST_METHOD']=='POST'){
    if(move_uploaded_file($_FILES['bandphoto']['tmp_name'], "C:\\HTML\\mgertenbach\\BAND\\photos\\{$_FILES['bandphoto']['name']}") && $mysql_query($sqlinsertString, $dbc)){
        print '<p>Thanks for submitting your band!</p>';
    } else {
        print '<p>Could not submit band because: <br/>' .
        mysql_error($dbc) . '</p>';
    }
}   

【问题讨论】:

  • 就像你上面提到的,这是一个输入表单并插入数据库的页面,所以当你第一次加载这个页面或者在提交表单之前,它仍然会插入到数据库中,但是由于表单中没有值,但未定义变量。你应该检查一下 isset($_POST){ //save into database }
  • 您还需要检查 $_FILES 是否为空。您的表单是否使用enctype="multipart/form-data"
  • 那个 SQL 真的有效吗?你的价值观没有被引用......

标签: php html forms undefined-index


【解决方案1】:

由于您是从 &lt;form&gt; 获取值,因此您需要先检查它们是否已设置。

您应该为此使用 isset 构造。像这样

if(!isset($_POST['bandname'])) // And whichever variables you get from your <form>
{
echo "Band Name was not Provided";
exit;
}
else
{
//.... do your CRUD operations here
}

其次,您正在使用即将被弃用的 mysql_* 函数。请改用 MySQliPDO

【讨论】:

  • 您还需要检查 $_FILES 是否为空。
猜你喜欢
  • 1970-01-01
  • 2010-10-01
  • 2015-06-22
  • 1970-01-01
  • 1970-01-01
  • 2021-12-26
  • 1970-01-01
  • 1970-01-01
  • 2014-01-24
相关资源
最近更新 更多