Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

carlim

com Upload de imagens

Recommended Posts

Olá colegas, li um artigo sobre Upload de imagens com segurança, etenho tres pequenas duvidas.1ª Dúvida - É o seguinte, tenho um formulário para preenchimento dereceitas de comida.Acontece, que eu tenho na tabela alguns campos grandes como porexemplo ingredientes, modo de fazer, e percebi que quando por algummotivo, da um erro, seja no upload da foto, erro de server, ou atémesmo, um erro de máximo tamanho permitido da imagem, é gerado umecho ou print com a informação do erro, mas, quando eu volto atráspara corrigir o erro, ou escolher a nova foto, os outros campos(ingredientes, modo de fazer) se apagam, e perco toda a digitação,como resolver isso.2ª Dúvida - E se em um determinado cadastro, não for por foto, comofazer para o script nao vetar.3ª Dúvida - Como eu faria para que, com formularios de upload deimagem e textos, cadastrar um texto com por exemplo, 3 figuras emlugares aleatórios do browser.Lembrando que são varios formulários cada qual com suas imagens emlugares diferentes.Tipo informações sobre cidades.Desculpe pela pergunta infantil!Obrigado, Carlos Rocha.segue abaixo o script que estou usando.<? include("../../global/funcoes.php"); ?><? include("../global/autentica_cadastra_receitas.php"); ?><?$erro = $config = array();// Prepara a variável do arquivo$arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE;// Tamanho máximo do arquivo (em bytes)$config["tamanho"] = 100000;// Largura máxima (pixels)$config["largura"] = 850;// Altura máxima (pixels)$config["altura"] = 850;// Formulário postado... executa as açõesif($arquivo){// Verifica se o mime-type do arquivo é de imagemif(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $arquivo["type"])){$erro[] = "Arquivo em formato inválido! A imagem deve serjpg, jpeg,bmp, gif ou png. Envie outro arquivo";}else{// Verifica tamanho do arquivoif($arquivo["size"] > $config["tamanho"]){$erro[] = "Arquivo em tamanho muito grande!A imagem deve ser de no máximo " . $config["tamanho"] . " bytes.Envie outro arquivo";}// Para verificar as dimensões da imagem$tamanhos = getimagesize($arquivo["tmp_name"]);// Verifica larguraif($tamanhos[0] > $config["largura"]){$erro[] = "Largura da imagem não deveultrapassar " . $config["largura"] . " pixels";}// Verifica alturaif($tamanhos[1] > $config["altura"]){$erro[] = "Altura da imagem não deveultrapassar " . $config["altura"] . " pixels";}}// Imprime as mensagens de erroif(sizeof($erro)){foreach($erro as $err){echo " - " . $err . "<BR>";}echo "<a href=\"cadastra_receita.php\">Fazer Upload de OutraImagem</a>";}// Verificação de dados OK, nenhum erro ocorrido, executa entãoo upload...else{// Pega extensão do arquivopreg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);// Gera um nome único para a imagem$imagem_nome = md5(uniqid(time())) . "." . $ext[1];// Caminho de onde a imagem ficará$imagem_dir = "../../upload/" . $imagem_nome;// Faz o upload da imagemif(move_uploaded_file($arquivo["tmp_name"], $imagem_dir)){if($link){$titulo = $_POST['titulo'];$ingredientes = $_POST['ingredientes'];$preparo = $_POST['preparo'];$dicas = $_POST['dicas'];$arquivos = $imagem_nome;$fonte = $_POST['fonte'];$sql = "INSERT INTO culinaria(titulo, ingredientes, preparo, dicas,imagem, fonte)VALUES('$titulo','$ingredientes','$preparo','$dicas','$arquivos','$fonte')";$consulta = mysql_query( $sql, $link);if($consulta){echo "<script>alert('Cadastro OK!');document.location='cadastra_receita.php'</script>"; }else {echo "<script>alert('Não foi possivel realizar o Teu cadastropor favor tente novamente...');document.location='cadastra_receita.php'</script>"; }}else {echo "<script>alert('Não foi possivel contatar bd...');document.location='cadastra_receita.php'</script>"; }}else{echo "<script>alert('Erro ao enviar seu arquivo!'</script>"; }/* Fechando a conexão */mysql_close($link);}}?><html><head></head><body><form action="cadastra_receita.php" method="POST"enctype="multipart/form-data"><P><center><H2>Formulário de cadastro de Receitas</H2></center><P><p><TABLE border=2 cellpadding=5 cellspacing=5 align=center width=100%><tr><td colspan=2><TABLE><TR><TD><font size=+1>Titulo:</font></TD><TD><INPUT TYPE="text" NAME="titulo" VALUE="" SIZE=59MAXLENGTH=100></TD></TR><TR><TR><TD><font size=+1>Ingredientes:</font></TD><TD><TEXTAREA NAME="ingredientes" cols="45"rows="20"></TEXTAREA></TD></TR><TR><TD><font size=+1>Preparo:</font></TD><TD><TEXTAREA NAME="preparo" cols="45"rows="30"></TEXTAREA></TD></TR><TR><TD><font size=+1>Dicas:</font></TD><TD><TEXTAREA NAME="dicas" cols="45"rows="05"></TEXTAREA></TD></TR><TR><TD><font size=+1>Foto:</font></TD><TD><INPUT TYPE="file" NAME="foto" SIZE=44 MAXLENGTH=100><INPUT TYPE="hidden" NAME="MAX_FILE_SIZE"value="30000"></TD></TR><TR><TD><font size=+1>Fonte:</font></TD><TD><INPUT TYPE="text" NAME="fonte" VALUE="" SIZE=59MAXLENGTH=100></TD></TR></TABLE></font></TD></tr></table><P><center><input type="button" value="Enviar" onClick="CriticaFormulario()"><input type="reset" value="Limpar Campos"></center></FORM></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala veinho

 

Pra primeira pergunta:

 

você pode fazer algo parecido com isto:

PHP [/tr][tr]

<?

include "valida.class.php";

if($_GET[acao]=='validar')

{

 

$validanome=new Valida($_POST[nome],'Nome');

$validanome->TamMinimo(6);

$validanome->TamMaximo(10);

$erro.=$validanome->PegaErros();

 

$validaemail=new Valida($_POST[email],'E-mail');

$validaemail->TamMaximo(255);

$validaemail->FormatoEmail();

$erro.=$validaemail->PegaErros();

 

$validadata=new Valida($_POST[data],'Data');

$validadata->TamMaximo(10);

$validadata->TamMinimo(10);

$validadata->FormatoData();

$erro.=$validadata->PegaErros();

}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>Documento sem título</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

 

<body>

<p><font color="#FF0000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong><? echo $erro?></strong></font></p>

<form name="form1" method="post" action="index.php?acao=validar">

<p><strong>Nome:</strong><br>

<input name="nome" type="text" id="nome" value="<? if($erro) print $_POST[nome];?>">

</p>

<p><strong>E-mail:</strong><br>

<input name="email" type="text" id="email" value="<? if($erro) print $_POST;?>">

</p>

<p><strong>Data:</strong><br>

<input name="data" type="text" id="data" value="<? if($erro) print $_POST[data];?>">

(dd/mm/aaaa) </p>

<p>

<input type="submit" name="Submit" value="Enviar">

</p>

</form>

</body>

</html>

[/tr]

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.