Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal,
Estou com um problema com o foreach que não consigo resolver, podem me ajudar?
O que meu código faz? Envio de dados para o DB. Qual o erro?
Ao preencher todo o formulário e clicar em enviar, o seguinte erro aparece:
Warning: Invalid argument supplied for foreach() in D:\Sites\mbarros\admin\addprojeto.php on line 63
Eis a linha 63:
foreach ($_FILES["imagens"]["name"] as $i => $nome_foto)
Como posso corrigir isso? Não é possível, quando desenvolvia o mesmo projeto no MAMP (OS/X) tudo funcionou perfeitamente. Tive que mudar de plataforma (Windows :X) e o erro foreach insiste em aparecer... :(
<?php
if (@$_POST['enviar'])
{
mysql_connect("xx", "xx", "xx") or die ("Não foi possível conectar ao Servidor.");
mysql_select_db("lab") or die ("Não foi possível selecionar a Base de Dados");
$titulo = $_POST['titulo'];
$resumo = $_POST['resumo'];
$producao = $_POST['producao'];
$detalhes = $_POST['detalhes'];
$aExtensoes = array("jpg", "jpeg");
$id_imagem = @mysql_query("SELECT * FROM `imagens` WHERE id_imagem=".$_GET['id_trabalho']);
@$_FILES['imagens']['name'] = array_unique($_FILES['imagens']['name']);
$resultado = mysql_query("SHOW TABLE STATUS LIKE 'trabalhos'");
$array = mysql_fetch_array($resultado);
$caminho = "../uploads/" . date('dmY').".00".$array['Auto_increment'];
$stringerro = "";
if(!$titulo)
$stringerro = $stringerro . "Título<br />";
if(!$resumo)
$stringerro = $stringerro . "Resumo<br />";
if(!$producao)
$stringerro = $stringerro . "Produção<br />";
if(!$detalhes)
$stringerro = $stringerro . "Detalhes<br />";
if($stringerro !== "")
$erro = "<div class='erro'><table border='1' cellspacing='5' cellpadding='5'>\n
<tr>\n
<td><img src='../imagens/exclamacao.png' /></td>\n
<td>Por favor, preencha os seguintes campos:<br />$stringerro</td>\n
<td><img src='../imagens/fechar.png' class='fechar' /></td>\n
</tr>\n
</table></div>\n";
else
{
foreach ($_FILES["imagens"]["name"] as $i => $nome_foto)
{
$nomeArquivo = substr(md5(uniqid(time())), 0, 10);
$nomeTemporario = $_FILES["imagens"]["tmp_name"][$i];
$extensao = end(explode('.', $nome_foto));
$imagens[] = $nomeArquivo.'.'.$extensao;
if(!file_exists($caminho . $nomeArquivo .'.'. $extensao))
{
@mkdir($caminho, 0777);
move_uploaded_file($nomeTemporario, ($caminho .'/'. $nomeArquivo .'.'. $extensao));
}
$ok = "<div class='mensagem'><img src='../imagens/exclamacao.png' />Arquivos enviados com sucesso<img src='../imagens/fechar.png' class='fechar' /></div>";
}
@mysql_query("INSERT INTO `imagens`(id_imagem, foto1, foto2, foto3, foto4) VALUES('', '$caminho/$imagens[0]', '$caminho/$imagens[1]', '$caminho/$imagens[2]', '$caminho/$imagens[3]')");
$query = "SELECT * FROM `imagens`";
$resultado = mysql_query($query);
while ($linha = mysql_fetch_array($resultado))
{
$id_imagem = $linha['id_imagem'];
}
@mysql_query("INSERT INTO `tb`(id_tb, id_imagem, titulo, resumo, producao, detalhes, data, hora) VALUES('', '$id_imagem', '$titulo', '$resumo', '$producao', '$detalhes', NOW(), NOW())");
}
}
?>
<?php echo @$ok; ?> <?php echo @$erro; ?>
<form method="post" action="" enctype="multipart/formdata" class="add">
<fieldset>
<label>Imagens</label>
<input type="file" name="imagens[]" tabindex="1" multiple="multiple" min="1" max="9999" />
<label>Título</label>
<input type="text" name="titulo" value="<?php echo @$titulo; ?>" tabindex="5" />
<label>Resumo</label>
<input type="text" name="resumo" value="<?php echo @$resumo; ?>" tabindex="6" />
<label>Produção</label>
<textarea name="producao" cols="57" rows="10" tabindex="7"><?php echo @$producao; ?></textarea>
<br />
<label>Detalhes</label>
<textarea name="detalhes" cols="57" rows="10" tabindex="8"><?php echo @$detalhes; ?></textarea>
<input type="submit" name="enviar" value="Enviar" class="enviar" tabindex="9" />
<input type="submit" name="limpar" value="Limpar" class="limpar" tabindex="10" />
</fieldset>
</form>Carregando comentários...