2016-05-18 2 views
0

Я получаю эту ошибку в моих переменных в строках 26 и 27. Я сам искал проблему, некоторые говорят, что переменные не инициализируются. Хотя я думаю, что они есть. Также я видел, как люди говорили использовать isset() /! Empty(), но я этого не понимаю и что он делает.Undefined Index in vars

<?php 

$nome = $_POST['nome']; //26 
$preco = $_POST['preco']; //27 

if(count($_FILES) > 0) { 
if(is_uploaded_file($_FILES['userImage']['tmp_name'])) { 
mysql_connect("localhost", "crc", "root"); 
mysql_select_db ("crc"); 
$imgData =addslashes(file_get_contents($_FILES['userImage'['tmp_name'])); 
$sql = "INSERT INTO fios (nome,preco,imagem)VALUES('$nome','$preco','{$imgData}')"; 
$current_id = mysql_query($sql) or die("<b>Erro:</b> Problema na imagem inserida!<br/>" . mysql_error()); 
if(isset($current_id)) { 
header("Location: veradmin.php"); 
}}} 
?> 

<!DOCTYPE html> 
<html> 
<title>Inserir</title> 
</head> 
<body> 

<form name="frmImage" enctype="multipart/form-data" action="" method="post" class="frmImageUpload"> 

<div align="center">   

      </p><tr> 
       <td width="321"><strong>Nome/Descricao:</strong></td> 
       <td width="102" align="left"> 
       <input type="text" name="nome" value="" size="40" /> 

       </td> 
      </tr><p> 

      </p><tr> 
       <td width="321"><strong>Preco:</strong></td> 
       <td width="102" align="left"> 
       <input type="text" maxlength="9" name="preco" value="" size="20" /> 

       </td><p> 
      </p></tr> 

      <input name="userImage" type="file" class="inputFile" /><p> 

      </p><input type="submit" value="Inserir Registo" class="btnSubmit" /> 

</form> 
</div> 
</body> 
</html> 
+4

Возможный дубликат [PHP: «Примечание: неопределенная переменная» и «Примечание: неопределенный индекс»] (http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index) – Henders

+1

В принципе, вы не знаете, что '$ _POST ['nome']' фактически содержит что-либо. Вы должны сначала проверить это с помощью '' isset() '] (http://php.net/manual/en/function.isset.php) – Henders

+0

Заменить $ nome = $ _POST ['nome']; // 26 $ preco = $ _POST ['preco']; // 27 by $ nome = $ preco = '';. Затем повторите попытку –

ответ

1

Эта проблема произошло потому, что в первой нагрузки $ _POST [ «нома»] и $ _POST [ «»] PRECO пуст, и эти индексы не существует. !

В этом случае вы должны проверить с пустыми, чтобы запустить эти строки:

if(!empty($_POST['nome']) && !empty($_POST['preco'])) 
{ 
     if(count($_FILES) > 0) { 
      ... 
     } 
} 

В это время, если вы разместите свою форму или нет эти коды будут работать, которая является основной причиной показывать эти уведомления