2013-12-09 101 views
1

这段代码调用输入到表单中的值并将它们输入到数据库中(或者至少应该是这样),每次页面加载时都会给出“未定义索引”的消息,而我正在挣扎以确定原因。这个未定义的索引消息是什么意思

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

<?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>'; 
    } 
} 
+0

就像你上面提到的那样,这是一个输入表单并插入数据库的页面,所以当你首先加载这个页面或者在提交表单之前,它仍然会插入到数据库中,但是因为没有值表单但变量未定义。你应该检查ifset($ _ POST){//保存到数据库中} – iCezz

+0

你需要检查$ _FILES也是空的。你的表单是否使用'enctype =“multipart/form-data”'? –

+0

这个SQL实际上工作吗?您的值不被引用... –

回答

1

既然你是从你<form>获取值,你需要首先检查是否设置与否。

你应该利用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改为。

+1

您还需要检查$ _FILES是否为空。 –

相关问题