Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

campo obrigatório em upload múltiplo de imagens - array

29-05-2009 10:45

Olá! Num upload múltiplo de imagens, quero tornar obrigatórios os campos de inserção. Num código que possuo, em face do qual estou pedindo ajuda para outra questão, há a validação que funciona parcialmente. Por exemplo, há 5 campos de inserção. Se todos estão em branco e clico no botão enviar, aparecem 5 mensagens de erro. Porém, se insiro uma imagem apenas, o formulário é enviado, mesmo que os outros campos estejam em branco. Também desejo que, acusado o erro da validação, aquele campo que teve a imagem inserida não seja desmarcado. Estou tentando individualizar os campos na validação, mas não está dando certo. Abaixo, posto a disposição do que estou fazendo. O que está certo e o que está errado? Estou no caminho certo?

<? ... elseif($_POST[arquivos][foto1] == "") { $MensagemErroImagem .= "<table width=\"468\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td height=\"2\"></td></tr><tr><td width=\"100%\" height=\"30\" align=\"center\" class=\"MessageAlert\"><img src=\"../../images/warning.gif\">&nbsp;Campo em branco! Você deve inserir uma imagem em formato JPEG no campo foto 1.</td></tr></table>"; } elseif($_POST[arquivos][foto2] == "") { $MensagemErroImagem .= "<table width=\"468\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td height=\"2\"></td></tr><tr><td width=\"100%\" height=\"30\" align=\"center\" class=\"MessageAlert\"><img src=\"../../images/warning.gif\">&nbsp;Campo em branco! Você deve inserir uma imagem em formato JPEG no campo foto 2.</td></tr></table>"; } elseif($_POST[arquivos][foto3] == "") { $MensagemErroImagem .= "<table width=\"468\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td height=\"2\"></td></tr><tr><td width=\"100%\" height=\"30\" align=\"center\" class=\"MessageAlert\"><img src=\"../../images/warning.gif\">&nbsp;Campo em branco! Você deve inserir uma imagem em formato JPEG no campo foto 3.</td></tr></table>"; } elseif($_POST[arquivos][foto4] == "") { $MensagemErroImagem .= "<table width=\"468\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td height=\"2\"></td></tr><tr><td width=\"100%\" height=\"30\" align=\"center\" class=\"MessageAlert\"><img src=\"../../images/warning.gif\">&nbsp;Campo em branco! Você deve inserir uma imagem em formato JPEG no campo foto 4.</td></tr></table>"; } elseif($_POST[arquivos][foto5] == "") { $MensagemErroImagem .= "<table width=\"468\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td height=\"2\"></td></tr><tr><td width=\"100%\" height=\"30\" align=\"center\" class=\"MessageAlert\"><img src=\"../../images/warning.gif\">&nbsp;Campo em branco! Você deve inserir uma imagem em formato JPEG no campo foto 5.</td></tr></table>"; } $Teste " <input type=\"file\" name=\"arquivos[]\" id=\"foto1\" value=\"$_POST[foto1]\"> <input type=\"file\" name=\"arquivos[]\" id=\"foto2\" value=\"$_POST[foto2]\"> <input type=\"file\" name=\"arquivos[]\" id=\"foto3\" value=\"$_POST[foto3]\"> <input type=\"file\" name=\"arquivos[]\" id=\"foto4\" value=\"$_POST[foto4]\"> <input type=\"file\" name=\"arquivos[]\" id=\"foto5\" value=\"$_POST[foto5]\">"; ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17616
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

campo obrigatório em upload múltiplo de imagens - array

29-05-2009 15:36

Acho que poderia fazer assim, primeiro um if para verificar se todos vierem vazio, tipo:

if($campo1=="" && $campo2==""...) {
echo "você deve selecionar pelo menos um campo";
}

Quanto a "campo marcado" seria o que?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

campo obrigatório em upload múltiplo de imagens - array

29-05-2009 17:21

Eu fiz parecido, mas com um if para cada campo. A validação até ocorre, mas não envia os dados. E aparecem cinco vezes cada mensagem de cada campo. Não sei que valores coloco no if. E desejo que todos os cinco campos sejam preenchidos, e que seja acusado o campo que não foi. Tentei assim:

if($_POST[$imagem][foto1] == "") { $MensagemErroImagem .= "<table width=\"468\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td height=\"2\"></td></tr><tr><td width=\"100%\" height=\"30\" align=\"center\" class=\"MessageAlert\"><img src=\"../../images/warning.gif\">&nbsp;Campo em branco! Você deve inserir uma imagem em formato JPEG no campo foto 1.</td></tr></table>"; } if($_POST[$imagem][foto2] == "") { $MensagemErroImagem .= "<table width=\"468\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td height=\"2\"></td></tr><tr><td width=\"100%\" height=\"30\" align=\"center\" class=\"MessageAlert\"><img src=\"../../images/warning.gif\">&nbsp;Campo em branco! Você deve inserir uma imagem em formato JPEG no campo foto 2.</td></tr></table>"; } if($_POST[$imagem][foto3] == "") { $MensagemErroImagem .= "<table width=\"468\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td height=\"2\"></td></tr><tr><td width=\"100%\" height=\"30\" align=\"center\" class=\"MessageAlert\"><img src=\"../../images/warning.gif\">&nbsp;Campo em branco! Você deve inserir uma imagem em formato JPEG no campo foto 3.</td></tr></table>"; } if($_POST[$imagem][foto4] == "") { $MensagemErroImagem .= "<table width=\"468\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td height=\"2\"></td></tr><tr><td width=\"100%\" height=\"30\" align=\"center\" class=\"MessageAlert\"><img src=\"../../images/warning.gif\">&nbsp;Campo em branco! Você deve inserir uma imagem em formato JPEG no campo foto 4.</td></tr></table>"; } if($_POST[$imagem][foto5] == "") { $MensagemErroImagem .= "<table width=\"468\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td height=\"2\"></td></tr><tr><td width=\"100%\" height=\"30\" align=\"center\" class=\"MessageAlert\"><img src=\"../../images/warning.gif\">&nbsp;Campo em branco! Você deve inserir uma imagem em formato JPEG no campo foto 5.</td></tr></table>"; }


Também já troquei if($_POST[$imagem][foto4] == "") por if($_POST[arquivos][foto4] == ""), por exemplo.

Vi algo sobre array_unique, que ligeiramente entendi que serviria a evitar essa multiplicidade, mas não sei usar isso.

Quanto ao campo marcado, eu me expressei mal. Acho que é setado. Me diz se é isso. Ou seja, eu insiro os arquivos e para eles não se perderem na validação e eu ter de preenchê-los de novo. É o que estou tentando fazer com isso no input, e que dá certo na inserção de dados: value=\"$_POST[arquivos][foto5]\".
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17616
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

campo obrigatório em upload múltiplo de imagens - array

29-05-2009 17:36

Primeiramente essa forma ai não é a correta para identificar o campo da foto

Se tenho o campo

<input type="file" name="foto[]">

Trabalhando com array, para pegar o primeiro campo "se tivesse mais de um" eu usaria

echo $_FILES['foto']['name'][0];

O 0 seria o primeiro campo "foto" do formulário

Tem vários scripts de upload múltiplo no fórum, faz uma busca e usa um como base.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

campo obrigatório em upload múltiplo de imagens - array

29-05-2009 21:21

Beleza. Era isso que eu queria saber. Vou dar uma pesquisada conforme sua sugestão. Obrigado.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17616
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

campo obrigatório em upload múltiplo de imagens - array

29-05-2009 21:53

:)
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

campo obrigatório em upload múltiplo de imagens - array

29-05-2009 21:58

Cara, tá quase funfando. Fiz como você disse, e está dando certo. Fiz assim:

if($_FILES['arquivos']['name'][0] == "") { $MensagemErroImagem .= "<table width=\"468\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td height=\"2\"></td></tr><tr><td width=\"100%\" height=\"30\" align=\"center\" class=\"MessageAlert\"><img src=\"../../images/warning.gif\">&nbsp;Campo em branco! Você deve inserir uma imagem em formato JPEG no campo foto 1.</td></tr></table>"; } if($_FILES['arquivos']['name'][1] == "") { $MensagemErroImagem .= "<table width=\"468\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td height=\"2\"></td></tr><tr><td width=\"100%\" height=\"30\" align=\"center\" class=\"MessageAlert\"><img src=\"../../images/warning.gif\">&nbsp;Campo em branco! Você deve inserir uma imagem em formato JPEG no campo foto 2.</td></tr></table>"; } if($_FILES['arquivos']['name'][2] == "") { $MensagemErroImagem .= "<table width=\"468\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td height=\"2\"></td></tr><tr><td width=\"100%\" height=\"30\" align=\"center\" class=\"MessageAlert\"><img src=\"../../images/warning.gif\">&nbsp;Campo em branco! Você deve inserir uma imagem em formato JPEG no campo foto 3.</td></tr></table>"; } if($_FILES['arquivos']['name'][3] == "") { $MensagemErroImagem .= "<table width=\"468\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td height=\"2\"></td></tr><tr><td width=\"100%\" height=\"30\" align=\"center\" class=\"MessageAlert\"><img src=\"../../images/warning.gif\">&nbsp;Campo em branco! Você deve inserir uma imagem em formato JPEG no campo foto 4.</td></tr></table>"; } if($_FILES['arquivos']['name'][4] == "") { $MensagemErroImagem .= "<table width=\"468\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td height=\"2\"></td></tr><tr><td width=\"100%\" height=\"30\" align=\"center\" class=\"MessageAlert\"><img src=\"../../images/warning.gif\">&nbsp;Campo em branco! Você deve inserir uma imagem em formato JPEG no campo foto 5.</td></tr></table>"; }


Mas acontece o seguinte: se clico no botão enviar sem inserir nenhuma imagem, cada mensagem de validação aparece 5 vezes. Se insiro imagem em qualquer campo e clico no botão enviar, aparecem cinco mensagens de erro referente aos campos em que não se inseriu nada (excetuando-se o campo em que inseri). Porém, se novamente inserir imagem em qualquer outro campo e clicar novamente, mesmo que haja campos em branco, o formulário será enviado. Coloquei o código acima com elseif, mas não deu certo. Como posso evitar essa multiplicidade de mensagens referente a cada validação? Seria com o tal do array_unique? E porque o formulário estaria sendo enviado mesmo com campos em branco?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17616
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

campo obrigatório em upload múltiplo de imagens - array

29-05-2009 22:12

Quando se quer travar a continuação, if, else, etc... usa-se o exit

if($a=="a") { echo "é igual"; exit; }

Nesse caso ai, quando a condição for verdadeira, vai ignorar as outras que vierem a seguir.

Tem diversos scripts de upload no fórum, um seria esse com array

http://www.codigosnaweb.com/forum/viewt ... =15&t=1581

ou

http://www.codigosnaweb.com/forum/viewtopic.php?p=3412

Você pode estudar a estrutura dele, ou buscar por: upload que vai encontrar diversas bases.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

campo obrigatório em upload múltiplo de imagens - array

29-05-2009 22:25

Vou ver. Obrigado.
0
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

campo obrigatório em upload múltiplo de imagens - array

30-05-2009 00:01

Olhe, o tal do upload total não está validando o tamanho da imagem corretamente. E também estou com dificuldade de inserir no banco de dados. A inserção não está completa, como o autor mesmo referiu, copiei os parâmetros de outro código semelhante, as fotos vão para a pasta, mas o nome não está indo para o bd. Até vai alguma coisa, umas letras desconexas. Fiz assim para inserir no bd:
$nome[$i]=$novonome; $i++; $sql = mysql_query("INSERT INTO fotos SET foto1='".$nome[1]."', foto2='".$nome[2]."', foto3='".$nome[3]."', foto4='".$nome[4]."', foto5='".$nome[5]."' ") or die("Erro no SQL: ".mysql_error());

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17616
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

campo obrigatório em upload múltiplo de imagens - array

30-05-2009 08:23

Montei um exemplo para você se basear nele, estuda esse script e adapta ao seu.

<?php if($_POST['submit']) { $file1 = $_FILES['file']['name'][0]; $file2 = $_FILES['file']['name'][1]; echo "arquivo 1: ".$file1."<br>"; echo "arquivo 2: ".$file2."<br>"; echo "INSERT INTO fotos SET foto1='".$file1."', foto2='".$file2."'"; } ?> <table border=0> <form method="POST" action="" enctype="multipart/form-data"> <tr> <td><input type="file" name="file[]"></td> </tr> <tr> <td><input type="file" name="file[]"></td> </tr> <tr> <td colspan=2 align=center><input type="submit" name="submit" value="Enviar"> </td> </tr></form> </table>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

campo obrigatório em upload múltiplo de imagens - array

30-05-2009 09:13

Obrigado. Vou tentar. Há uma outra coisa. Lá atrás, foi dito para colocar exit; para tratar o processamento depois do echo. Fiz assim, mas se clico no botão enviar aparece uma página em branco e não aparece a validação.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17616
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

campo obrigatório em upload múltiplo de imagens - array

30-05-2009 09:20

Talvez você tenha colocado o exit antes de definir a resposta, por exemplo, se eu faço isso

<?php $a = 1; $b = 2; if($a==1) { echo "\$a está correto"; } if($b==2) { echo "\$b está correto"; } ?>

Irá mostrar os 2 echos, agora se faço isso:

if($a==1) { echo "\$a está correto"; exit; } if($b==2) { echo "\$b está correto"; exit; }

Ele só mostrará o primeiro if, já que a condição foi verdadeira, mas, no seu caso talvez tenha que trabalhar if e ifelse para não bloquear todo conteúdo, aqui no fórum tem exemplos, só buscar
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

campo obrigatório em upload múltiplo de imagens - array

30-05-2009 10:41

Eu coloquei um exit; para cada if, daí o problema. Quanto ao if else, eu fiz com ele, até referi lá atrás, mas muda o comportamento. Apenas com if aparecem cinco mensagens de erro para cada erro, ao invés de uma para cada erro. Se coloco if else, aparecem cinco mensagens de erro, mas as cinco se referindo a erro do campo referente à foto 1. Eu não consegui fazer inserção no bd referente ao código upload total. Se, por exemplo, mando 3 fotos, e, num mesmo id, são enviadas cada foto para seu campo, não está acontecendo isso, estão aparecendo id's quantos sejam os números de fotos, e nos campos de fotos estão sendo inseridas letras.

NÃO POSTAR SEGUIDAMENTE

Daria para vocês colocarem a inserção no bd no código upload total? O colega lá não colocou, o pessoal do site falou que testou e aprovou, mas não consigo inserir no bd. Não que eu queira tudo mastigado, mas coloquei coisa no laboratório de scripts que funcionava, disseram que não, e disseram que aquele script upload total funciona, mas não está funcionando, ao menos totalmente. Ele insere a foto na pasta, mas há problema de inserção no bd. E também não valida como diz que valida. Não vou dizer que isso aconteceu com quem postou aquele script, mas, navegando como tenho feito, percebi que muitas pessoas pegam scripts inclusive de sites no exterior, não testam adequadamente, postam em vários fóruns para ganhar cartaz, daí o usuário do fórum pede ajuda a quem postou, e o cara fica silente, pois não sabe corrigir o problema. Vi dois ou três scripts parecidos com aquele, com uma diferença lá e outra cá. Se quiser, mando para comprovar.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17616
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

campo obrigatório em upload múltiplo de imagens - array

30-05-2009 12:17

Quando tiver um tempo vou fazer uma versão do upload total com insert no bd e posto no fórum.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

campo obrigatório em upload múltiplo de imagens - array

30-05-2009 12:28

Beleza. Vou tentando por aqui. Se conseguir, informo. Obrigado.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17616
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

campo obrigatório em upload múltiplo de imagens - array

30-05-2009 16:34

Fiz uma adaptação no upload total permitindo em um upload pegar os valores "se enviado foto ou não" e podendo usar eles para o insert.

http://www.codigosnaweb.com/forum/viewt ... =19&t=3227
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

campo obrigatório em upload múltiplo de imagens - array

30-05-2009 16:47

Vou ver.
0

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado