Ir para conteúdo

POWERED BY:

Arquivado

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

Superwagtel

Atualizando Imagem e dados

Recommended Posts

Olá pessoal, estou estudando o PHP e já aprendi a inserir os dados e a imagem no database e diretório.

 

Mas estou tendo problemas para atualizar estes dados (tanto no database quanto no diretório).

 

Criei um formulário que envia método POST as variáveis: nome, email, idade e foto (type="file").

 

Onde o botão é "btnEnviar" e o campo de arquivos é "foto"

 

Na página atualiza.php coloquei assim:

 

 

<?php include('conecta.php');  ?>
 
<?php
//Testando se o botão foi clicado//
if (isset($_POST['btnEnviar'])) {
 
//Testando se o arquivo já existe//
if (file_exists($_FILES['foto'] ['name'] )) {
     echo"Este arquivo já existe";
     unlink(($_FILES['foto'] ['name']));
 
//Caso o contrário ele envia o arquivo para a pasta fotos//
 
}else{
 
move_uploaded_file($_FILES['foto'] ['tmp_name'], 'fotos/'.$_FILES['foto'] ['name']);
     echo"Foto enviada com sucesso!";
}
}
 
?>
<?php
//Capturando as variáveis//
$nome = $_POST['nome'];
$email = $_POST['email'];
$idade = $_POST['idade'];
$foto = $_FILES['foto'] ['name'];
$código = $_POST['codigo'];
 
//Atualizando as variáveis no database//
$query = "UPDATE $tabela SET  nome='$nome', email='$email', idade='$idade', foto='$foto' WHERE código=$codigo";
 
if (mysql_db_query($base_dados, $query, $link)) {
 
//Enviando para a página SUCESSO//
print "Dados atualizados";
print "<meta http-equiv='refresh' contente='3; URL=sucesso.php'>";
}
 
//Enviando para a página de FALHA//
else {
print "Falha na atualização";
print "<meta http-equiv='refresh' contente='3; URL=falha.php'>";
 
}
//Fechando a conexão//
mysql_close($link);
?>

 

Com este código, eu consegui atualizar os dados: nome, email e idade

 

Mão não consegui tanto atualizar foto, quanto enviar a imagem para a pasta fotos

 

Alguém poderia me mostrar onde estou errando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Maykel-ctba, na verdade o sistema apresenta os echos:

 

Foto enviada com sucesso!

Dados atualizados

 

Atualiza os dados (nome, email, idade)

 

Mas apaga o dado (foto)

 

Vai para para a página sucesso.php

 

E não envia o arquivo para a pasta "fotos"

 

Por isto não entendo o que está errado neste código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguns problemas do seu código:

 

1. O file_exists está procurando no diretório corrente, não no diretório "fotos". Isso fará com que a execução sempre caia no else;

2. Se dois usuários enviarem o arquivo foto.jpg, o arquivo do primeiro será sobrescrito. Considere usar um nome de arquivo dinâmico, como o retorno de uniqid( time() );

3. funções mysql_* estão obsoletas a desde o PHP 5.5. Prefira usar MySQLi ou PDO. Veja mais aqui: http://www.ultimatephp.com.br/php-por-que-nao-utilizar-funcoes-mysql

 

 

Se é exibida a mensagem "Foto enviada com sucesso", é porque move_uploaded_file está sendo executada (está no mesmo bloco de código). Ative as exibições de erro, como mostrado aqui e tente de novo

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.