2013-12-09 6 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

Как вы упомянули выше, это страница для ввода формы и вставки в базу данных, поэтому, когда вы загружаете эту страницу сначала или перед отправкой формы, она все равно будет вставляться в базу данных, но поскольку в ней нет значения форма, но переменная не определена. вы должны сделать чек, если isset ($ _ 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_* функции, которые будут устаревшими в ближайшее время. Переключить на: MySQli или PDO.

+1

Вам нужно также проверить, что $ _FILES пуст. –

Смежные вопросы