2016-05-18 17 views
0

Ich bekomme diesen Fehler in meinen Variablen in den Zeilen 26 und 27. Ich habe nach dem Problem selbst gesucht, einige Leute sagen, dass die Variablen nicht initialisiert werden. Obwohl ich denke, dass sie es sind. Ich habe auch Leute gesehen, die sagen, dass sie isset() /! Empty() benutzen, aber ich verstehe das nicht und was es tut.Undefinierter 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

Mögliches Duplikat von [PHP: "Notice: Undefinierte Variable" und "Notice: Undefined Index"] (http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index) – Henders

+1

Im Grunde wissen Sie nicht, dass '$ _POST ['nome']' tatsächlich etwas enthält. Du musst es zuerst mit ['isset()'] überprüfen (http://php.net/manual/en/function.isset.php) – Henders

+0

Replace $ nome = $ _POST ['nome']; // 26 $ preco = $ _POST ['preco']; // 27 von $ nome = $ preco = '';. Dann versuchen Sie es erneut –

Antwort

1

Dieses Problem geschah, weil in der ersten $ _POST Last [ 'nome'] und $ _POST [ 'preco'] leer ist, und diese Indizes nicht existiert. !

In diesen Fällen Sie überprüfen sollten, leer diese Zeilen laufen:

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

Zu dieser Zeit, wenn Sie das Formular veröffentlichen oder nicht diese Codes läuft welcher Ursache diese Hinweise zeigen