Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ae Galera, Seguinte peguei o script pronto segue abaixo, do autor Alfred e tenho um problema que eu não sei resolver, creio ser simples para vocês, só preciso de que se não tem foto para envio junto com a notícia ele envia a notícia sem ter a foto, o que acontece é que no esquema abaixo, se o campo da foto estiver em branco ele me dá o erro que que eu preciso escolher a foto em algum dos formatos suportados.
<?include "conexao.inc.php";## Conectando com o banco$mysql= new mysql;$mysql->conectar($db);/*** Upload de Imagens com Segurança** @author Alfred Reinold Baudisch* @email alfred_baudisch@hotmail.com* @date Jan 09, 2004* @changes Jan 14, 2004 - v2.0*/// Prepara a variável caso o formulário tenha sido postado$data = isset($_POST["var_data"]);$titulo = isset($_POST["var_titulo"]);$noticia = isset($_POST["var_noticia"]);$arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE;$config = array();// Tamano máximo da imagem, em bytes$config["tamanho"] = 106883;// Largura Máxima, em pixels$config["largura"] = 350;// Altura Máxima, em pixels$config["altura"] = 250;// Diretório onde a imagem será salva$config["diretorio"] = "fotos/";// Gera um nome para a imagem e verifica se já não existe, caso exista, gera outro nome e assim sucessivamente..// Função Recursivafunction nome($extensao){ global $config; // Gera um nome único para a imagem $temp = substr(md5(uniqid(time())), 0, 10); $imagem_nome = $temp . "." . $extensao; // Verifica se o arquivo já existe, caso positivo, chama essa função novamente if(file_exists($config["diretorio"] . $imagem_nome)) { $imagem_nome = nome($extensao); } return $imagem_nome;}if($arquivo){ $erro = array(); // Verifica o mime-type do arquivo para ver se é de imagem. // Caso fosse verificar a extensão do nome de arquivo, o código deveria ser: // // if(!eregi("\.(jpg|jpeg|bmp|gif|png){1}$", $arquivo["name"])) { // $erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Envie outro arquivo"; } // // Mas, o que ocorre é que alguns usuários mal-intencionados, podem pegar um vírus .exe e simplesmente mudar a extensão // para alguma das imagens e enviar. Então, não adiantaria em nada verificar a extensão do nome do arquivo. if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $arquivo["type"])) { $erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Envie outro arquivo"; } else { // Verifica tamanho do arquivo if($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 largura if($tamanhos[0] > $config["largura"]) { $erro[] = "Largura da imagem não deve ultrapassar " . $config["largura"] . " pixels"; } // Verifica altura if($tamanhos[1] > $config["altura"]) { $erro[] = "Altura da imagem não deve ultrapassar " . $config["altura"] . " pixels"; } } if(!sizeof($erro)) { // Pega extensão do arquivo, o indice 1 do array conterá a extensão preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext); // Gera nome único para a imagem $imagem_nome = nome($ext[1]); // Caminho de onde a imagem ficará $imagem_dir = $config["diretorio"] . $imagem_nome; // Faz o upload da imagem move_uploaded_file($arquivo["tmp_name"], $imagem_dir); } $sql = mysql_query("INSERT INTO tb_noticia (data, titulo, noticia, foto) VALUES ('$data','$titulo','$noticia','$arquivo')"); if (!$sql){ echo "Não foi possível cadastrar sua notícia.";} else{ $mensagem; }}?><html><head><title>Enviar Foto</title><style type="text/css">BODY, TD {font-family: verdana; font-size: 10pt; color: white}</style></head><body bgcolor=black link=red vlink=red alink=red><center><font size=4>Envio de Foto</font><BR><?$mensagem = "Sua Notícia foi enviada com sucesso!";// Imagem foi enviada com sucesso, mostra mensagem de SUCESSOif($arquivo && !sizeof($erro)){echo "<table border=\"0\" cellpadding=\"2\" cellspacing=\"1\" align=\"center\"> <tr> <td width=\"86\" align=\"center\" colspan=\"2\">".$mensagem."</td> </tr> <tr> <td width=\"86\" align=\"center\">Data </td> <td width=\"330\" align=\"center\"><div align=\"left\">".$data."</div></td> </tr> <tr> <td align=\"center\">Titulo</td> <td align=\"center\"><div align=\"left\">".$titulo."</div></td> </tr> <tr> <td align=\"center\">Notícia</td> <td align=\"center\"><div align=\"left\">".$noticia."</div></td> </tr> <tr> <td align=\"center\">Enviar Foto: </td> <td align=\"center\"><div align=\"left\">".$imagem_dir."</div></td> </tr> <tr> <td align=\"center\">Cadastrar </td> <td align=center><div align=\"left\"><a href=\"javacript:history.go(-1)\">Clique Aqui</a> </div></td> </tr></table>";}// Ocorreu algum erro ou ainda o formulário não foi postadoelse{?><form action="<?echo $PHP_SELF?>" method=post ENCTYPE="multipart/form-data">Envie sua foto em formato gif, jpg, bmp ou png.<BR>A imagem não deve ter mais que <?echo $config["tamanho"] ?> bytes e deve ter <? echo $config["largura"] . "x" . $config["altura"] ?> pixels.<BR><table border=0 cellpadding=2 cellspacing=1 align=center><?if(sizeof($erro)){ echo "<tr><td colspan=2 bgcolor=red><B><U>Ocorreu(am) o(s) seguinte(s) erro(s):</u><BR>"; foreach($erro as $err) { echo " - " . $err . "<BR>"; } echo "</B></td></tr>";}?><tr> <td width="86" align=center>Data </td> <td width="330" align=center><div align="left"> <input name="var_data" type="text" id="var_data" size="25"> </div></td></tr><tr> <td align=center>Titulo</td> <td align=center><div align="left"> <input name="var_titulo" type="text" id="var_titulo" size="25"> </div></td></tr><tr> <td align=center>Notícia</td> <td align=center><div align="left"> <textarea name="var_noticia" cols="25" id="var_noticia"></textarea> </div></td></tr><tr> <td align=center>Enviar Foto: </td> <td align=center><div align="left"> <input type=file size=30 name=foto> </div></td></tr><tr> <td align=center><input name="submit" type=submit value="Ok!"></td> <td align=center> </td></tr></table></form><?}## Fecha conexao com o banco$mysql= new mysql;$mysql->fechar(); ?><br><font face=arial size=1 color=white>Programado por Alfred R. Baudisch - 14/01/2004. Versão 1.2</font></body></html>Carregando comentários...