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


Moderador: web

 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 10

Cadastro de Produtos com upload de foto

20-09-2009 22:26

bom galera, estou a fazer um site que possui um sistema de produtos, com cadastro, pesquisa e etc...
só que eu queria por a possibilidade da pessoa dar upload de uma foto quando fosse cadastrar 1 produtos, o meu código é esse aqui....

HTML
<form action="enviar.php" method="post" ENCTYPE="multipart/form-data"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td><span style="color:#9d9c9c; font-size:9px; font-weight:bold">Nome do Produto</span></td> </tr> <tr> <td><input class="form_campos" type="text" name="titulo"> <span style="color:#bfbfbf; font-size:9px;">(Ex.: Gabinete ATX 4 Baias)</span></td> </tr> <tr> <td><span style="color:#9d9c9c; font-size:9px; font-weight:bold">Foto do Produto</span></td> </tr> <tr> <td><input type="file" size=23 name="foto"></td> </tr> <tr> <td><span style="color:#9d9c9c; font-size:9px; font-weight:bold">Descrição do Produto</span></td> </tr> <tr> <td><input class="form_campos" type="text" name="descricao"> <span style="color:#bfbfbf; font-size:9px;">(Ex.: Gainete ATX 4 Baias, C/ Fonte 200w, Tela LCD Frontal)</span></td> </tr> <tr> <td><span style="color:#9d9c9c; font-size:9px; font-weight:bold">Preço à Vista</span></td> </tr> <tr> <td><input class="form_campos" type="text" name="preco"> <span style="color:#bfbfbf; font-size:9px;">(Ex.: 145,00)</span></td> </tr> <tr> <td><span style="color:#9d9c9c; font-size:9px; font-weight:bold">Valor da Parcela do Cartão</span></td> </tr> <tr> <td><input class="form_campos" type="text" name="precocartao"> <span style="color:#bfbfbf; font-size:9px;">(Ex.: 30,50)</span></td> </tr> </table> <table width="350" align="center" style="padding-left:160px;"> <tr> <td> <br /> <div class="buttons"> <button type="submit" name="Enviar" class="positive">Cadastrar</button> <button type="reset" name="Limpar" class="negative">Limpar</button> </div> </td> </tr> </table> </form>

PHP

<?php include ("../conexao.php"); //inclui o nosso arquivo de conexão com o bd $titulo = $_POST['titulo']; $descricao = $_POST['descricao']; $preco = $_POST['preco']; $precocartao = $_POST['precocartao']; $hora = date("H:i"); $data = date("d/m/Y"); // início do upload da imagem // Altera o umask para a criação do diretório $umask_anterior = umask(0); if ($_FILES["file"]["error"] === 0) { @ move_uploaded_file($_FILES["file"]["tmp_name"],".../images/produtos/{$_FILES["file"]["name"]}"); $foto="/images/produtos/{$_FILES["file"]["name"]}"; ?> <script> window.alert('Arquivo enviado com sucesso'); history.back(); </script> <? } else { switch ($_FILES["file"]["error"]) { case 1: $msg_err = "O arquivo no upload é maior do que o limite \ndefinido em upload_max_filesize no php.ini!"; break; case 2: $msg_err = "O arquivo ultrapassa o limite de tamanho em \nMAX_FILE_SIZE que foi especificado no formulário!"; break; case 3: $msg_err = "O upload do arquivo foi feito parcialmente!"; break; case 4: $msg_err = "Não foi feito o upload do arquivo. Tente novamente!!!"; break; default: $msg_err = "Ocorreu um erro.\nVerifique qual o problema!!!"; } ?> <script> window.alert('<?=$msg_err?>'); history.back(); </script> <? umask($umask_anterior); } // fim do upload da imagem mysql_query("INSERT INTO noticias ( id, foto, titulo, descricao, preco, precocartao, data ) VALUES ( '', '".$foto."' , '".$titulo."' , '".$descricao."' , '".$preco."' , '".$precocartao."' , NOW() ) ") or die( mysql_error() ); echo '<p align="center"><b><font size="5">Seu PRODUTO foi enviado com sucesso!</font></b></p> <meta http-equiv="Refresh" content="3; url=adicionar.php" /> '; ?>

ele grava certinho as variaveis no banco de dados, mas a variavel $foto ele grava em branco, ele deveria gravar o link do arquivo...
ex.: images/imagem1.jpg

:/
alguem tem ideia o que está errado no código?
eu sei que está confuso, pq sou iniciante em php, entao estou tentando mesclar codigos que encontrei na web ;)
agradeco a ajuda =]
abraço
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Cadastro de Produtos com upload de foto

20-09-2009 22:33

Eu acho que não grava porque $foto não é global, ela foi criada dentro de um if.

Portanto, você tem que criar ela como global, fora de ifs, ai dentro, você atribui o valor a ela, ai você consegue pegar ela fora do if
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 10

Cadastro de Produtos com upload de foto

20-09-2009 22:39

criei fora do if...
mas n adiantou :/
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Cadastro de Produtos com upload de foto

20-09-2009 22:48

A foto é enviada para a pasta?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 10

Cadastro de Produtos com upload de foto

20-09-2009 22:56

:sad nao heheheheeh
quando era só o codigó do upload, enviava certinho...
agora ke adicionei ele dentro do codigo do outros campos, parou de enviar :/

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

Cadastro de Produtos com upload de foto

20-09-2009 23:05

O ideal para se achar um erro é verificando parte por parte, por exemplo

O name do seu input é: foto, e não file como você está usando. Eu não uso o ERROR, mas, tente a comparação igual ==

Antes de upar a foto, dê um echo, para ver se os valores estão sendo passados.

Assim você pode trabalhar as variáveis, vendo primeiros se elas são printadas, para depois comparar.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 10

Cadastro de Produtos com upload de foto

20-09-2009 23:21

web, resolvi o problema arrumando de 'file' pra 'foto' ;)
vlw pela dica...
queria só aproveita o post pra te pergunta como resolvo o problema da acentuação...
sempre que envio algo pro banco de dados, vai com os acentos todos errados :/
tem alguma solução definititva pra isso??

e por ex se eu edito no bando de dados e arrumo os acentos, quando mando mostra na tela, aparecer certinho...
entao o problema é no envio msm...
no bando ta com Collation = latin1_swidish_ci
como arrumo nas paginas de envio pra enviar certinho????
vlwwww :D :kickup
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Cadastro de Produtos com upload de foto

21-09-2009 09:54

Filtra os valores com htmlentities, ex.:

$string = "é"; $string = htmlentities($string); echo $string;

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 10

Cadastro de Produtos com upload de foto

21-09-2009 12:38

legal essa função...
mas como falei sou iniciante hehe
n entendi bem como usar para cadastrar no banco usando a função :P
se tiver como explica agradeço muito ;)
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Cadastro de Produtos com upload de foto

21-09-2009 16:03

Por exemplo, você tem essa linha

mysql_query("INSERT INTO noticias ( id, foto, titulo, descricao, preco, precocartao, data ) VALUES ( '', '".$foto."' , '".$titulo."' , '".$descricao."' , '".$preco."' , '".$precocartao."' , NOW() ) ") or die( mysql_error() );

Note que você insere os valores $foto, $titulo, etc...

Filtrar, seria colocar uma linha antes do mysql_query para alterar os valores das variáveis, como no exemplo, teste ele que você vai ver.
E olha o código fonte, vai ver que palavras com acentos são trocadas.

Ai por exemplo, ficaria

$descricao = htmlentities($descricao); mysql_query("INSERT INTO noticias ( id, foto, titulo, descricao, preco, precocartao, data ) VALUES ( '', '".$foto."' , '".$titulo."' , '".$descricao."' , '".$preco."' , '".$precocartao."' , NOW() ) ") or die( mysql_error() );

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 10

Cadastro de Produtos com upload de foto

21-09-2009 19:31

ahhhhhh tendeu :;-)
eeeeee vlw pela ajuda haha
meu sistema ta bem legal agora :D
:P
vlw msm web, qualquer outra duvida ja sei aondi vo recebe suporte com qualidade e rapidez :D
abraçao
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Cadastro de Produtos com upload de foto

21-09-2009 19:52

flw :;-)
0
A melhor hospedagem para o seu site HostGator!
 
Primeiras postagens
Primeiras postagens
Mensagens: 1

Cadastro de Produtos com upload de foto

05-12-2009 19:06

Aqui no meu está aparecendo! Nome não cadastratrado! Mas está declarado e com o mesmo nome q o formulário!! Socoroo!!! :help
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Cadastro de Produtos com upload de foto

06-12-2009 16:57

Abre um novo post e dá mais detalhes do seu problema.
0
A melhor hospedagem para o seu site HostGator!

Quem está online

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