Logo Hardware.com.br
MariaLS
MariaLS Novo Membro Registrado
26 Mensagens 2 Curtidas

[Resolvido] Atualizar dados através do formulário (PHP + MYSQL)

#1 Por MariaLS 24/01/2016 - 17:30


i.png








Alterar Alunos  
   

Insira os seus dados para que possamos efetuar o cadastro!

Atenção: Os campos que contiverem (*) são obrigatorios !

   
       
 
Nome Completo:

*
Apelido:

*
Email

*
Foto:
id="label8" size="30" maxlength="150" />
*
Curso
id="label8" size="30" maxlength="150" />
*

Turma:


id="label10" size="20" maxlength="50" />
*

Data de nascimento


id="label10" size="20" maxlength="50" />
*

Contato


id="label10" size="20" maxlength="50" />
*

Responsável:


id="label10" size="20" maxlength="50" />
*

contato do responsavel:


id="label10" size="20" maxlength="50" />
*
Acesso Ao Sistema
Login:

?*
Senha:
type="password" id="label12" size="40" maxlength="200" />
*
 
     
   
       








MariaLS
MariaLS Novo Membro Registrado
26 Mensagens 2 Curtidas
#31 Por MariaLS
28/01/2016 - 22:18
DiguinDeveloper disse:
Erro? Porque erro? O id não está sendo preenchido? O var_dump apenas mostra o conteúdo de qualquer variável, por isso pedi para exibi-lo, ou seja, sinal de que o problema não está no post...

Se o comando de update der algum problema, no if que você testa o sql, onde imprime echo 'Erro'; pode usar:
[code=php]
echo mysql_error();
[/code]


Já acrescentei mysql_error(); , porém continua da mesma forma.
DiguinDeveloper
DiguinDevelo... Super Participante Registrado
313 Mensagens 148 Curtidas
#34 Por DiguinDevelo...
29/01/2016 - 21:37
MariaLS disse:
Já postei ! Você poderia me ajudar a resolver este problema?

Ele quis dizer tabela do banco de dados... ou seja, aluno e não tabela do html...

...E não somente ele, mas todos nós que estamos participando queremos te ajudar a resolver o problema, mas estamos tendo dificuldade em te passar conceitos e você dificuldades em absorver... só nos resta irmos bem devagar, passo a passo, tentando aqui e ali... tentativa e erro... o que muitas das vezes acaba frustrando tanto você quanto nós...

Percebi que você está fazendo as coisas totalmente no escuro, sem argumentação, sem curiosidade, a gente fala, você faz, sem perguntas, sem rodeios, meio "distante" entende? Isso nos confunde ainda mais, principalmente no modo como abordaremos as questões para você, até que grau de termos técnicos podemos usar e o mais importante, se você está entendendo...

Vamos voltar a etapa zero:
[LIST=1]
você já entendeu como funciona e sabe diferenciar com clareza uma requisição http get de post?
entendeu bem que as duas nunca, eu disse nunca, acontecem ao mesmo tempo? (o php pode te enganar com isso, cuidado!)

entendeu como o html passa informações para o php quando acontece uma requisição desse tipo?
entendeu como o php recebe essas informações?
[/LIST]
Perdoe a franqueza, mas já estamos na segunda página do seu tópico, logo chegaremos na terceira e a solução nem está perto de acontecer e todos nós estamos ficando cansados...
MariaLS
MariaLS Novo Membro Registrado
26 Mensagens 2 Curtidas
#35 Por MariaLS
31/01/2016 - 02:04
DiguinDeveloper disse:
Ele quis dizer tabela do banco de dados... ou seja, aluno e não tabela do html...

...E não somente ele, mas todos nós que estamos participando queremos te ajudar a resolver o problema, mas estamos tendo dificuldade em te passar conceitos e você dificuldades em absorver... só nos resta irmos bem devagar, passo a passo, tentando aqui e ali... tentativa e erro... o que muitas das vezes acaba frustrando tanto você quanto nós...

Percebi que você está fazendo as coisas totalmente no escuro, sem argumentação, sem curiosidade, a gente fala, você faz, sem perguntas, sem rodeios, meio "distante" entende? Isso nos confunde ainda mais, principalmente no modo como abordaremos as questões para você, até que grau de termos técnicos podemos usar e o mais importante, se você está entendendo...

Vamos voltar a etapa zero:
[LIST=1]
você já entendeu como funciona e sabe diferenciar com clareza uma requisição http get de post?
entendeu bem que as duas nunca, eu disse nunca, acontecem ao mesmo tempo? (o php pode te enganar com isso, cuidado!)

entendeu como o html passa informações para o php quando acontece uma requisição desse tipo?
entendeu como o php recebe essas informações?
[/LIST]
Perdoe a franqueza, mas já estamos na segunda página do seu tópico, logo chegaremos na terceira e a solução nem está perto de acontecer e todos nós estamos ficando cansados...


Agora estou lendo materiais que ajude a ampliar meus conhecimentos sobre php e mysql, tenho certeza que falta pouco para finalizar e encerrar o tópico.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Consegui alterar os dados dos usuários, entretanto sem a parte do código para alterar as imagens.

Código das imagens:

[code=PHP]

// Se a foto estiver sido selecionada
if (!empty($foto["name"])) {

// Largura máxima em pixels
$largura = 128;
// Altura máxima em pixels
$altura = 227;
// Tamanho máximo do arquivo em bytes
$tamanho = 3000;

// Verifica se o arquivo é uma imagem
if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $foto["type"])){
$error[1] = "Isso não é uma imagem.";
}

// Pega as dimensões da imagem
$dimensoes = getimagesize($foto["tmp_name"]);

// Verifica se a largura da imagem é maior que a largura permitida
if($dimensoes[0] > $largura) {
$error[2] = "A largura da imagem não deve ultrapassar ".$largura." pixels";
}

// Verifica se a altura da imagem é maior que a altura permitida
if($dimensoes[1] > $altura) {
$error[3] = "Altura da imagem não deve ultrapassar ".$altura." pixels";
}

// Verifica se o tamanho da imagem é maior que o tamanho permitido
if($arquivo["size"] > $tamanho) {
$error[4] = "A imagem deve ter no máximo ".$tamanho." bytes";
}

// Se não houver nenhum erro
if (count($error) == 0) {

// Pega extensão da imagem
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $foto["name"], $ext);

// Gera um nome único para a imagem
$nome_imagem = md5(uniqid(time())) . "." . $ext[1];

// Caminho de onde ficará a imagem
$caminho_imagem = "fotos/" . $nome_imagem;

// Faz o upload da imagem para seu respectivo caminho
move_uploaded_file($foto["tmp_name"], $caminho_imagem);


[/code]
Arquivo: salvaralteracao.php
[code=PHP]


<?php
include("conexao.php");
?>

<?php


// Recupera os dados dos campos

$id= $_POST['id'];
$nome= $_POST['nome'];
$apelido = $_POST['apelido'];
$email = $_POST['email'];
$foto = $_FILES["foto"];
$curso = $_POST['curso'];
$turma = $_POST['turma'];
$data_nascimento = $_POST['data_nascimento'];
$telefone= $_POST['telefone'];
$responsavel= $_POST['responsavel'];
$contato_responsavel= $_POST['contato_responsavel'];
$login= $_POST['login'];
$senha= MD5 ($_POST['senha']);



//***************************** Insere os dados no banco ***********************************************
// Atualizando os dados no banco

if(mysql_query("UPDATE aluno SET nome='$nome',apelido='$apelido',email='$email',foto='$foto',
curso='$curso', turma='$turma', data_nascimento='$data_nascimento',telefone='$telefone',
responsavel='$responsavel',contato_responsavel ='$contato_responsavel',login ='$login', senha ='$senha' WHERE id='$id'"))
{ echo "Alteração realizado com sucesso!";
} else {
echo "mysql_error()"; }
?>


[/code]
---------------------------------------------------------------------------------------------------------
Agora apenas está faltando alterar as imagens.
Obrigado pela ajuda e paciência !
-----------------------------------------------------------------------------------------------
DiguinDeveloper
DiguinDevelo... Super Participante Registrado
313 Mensagens 148 Curtidas
#36 Por DiguinDevelo...
31/01/2016 - 13:35
Apenas uma dica e o quanto antes mudar melhor para seu projeto... evite usar md5() por ser muito "manjada", a exemplo, pegue uma senha criptografada em md5, coloque na pesquisa do google e veja o resultado, possivelmente a senha será "desmascarada", dê preferência por sha1 ou se estiver usando php com versão 5.5 ou superior, a nova API de hash

Quanto à alteração da foto/imagem, usamos a super global $_FILES e geralmente gravamos a imagem/foto em disco rígido usando a função move_uploaded_file como você está fazendo e após, guardamos o caminho em base de dados onde creio ser a coluna foto do update estou certo?

O que está dando de errado ao alterar a imagem?

Bom, se sua dificuldade é com esse campo no formulário...
[code=html]

[/code]

Se sua intenção é trazer a imagem atual nesse campo, esqueci de mencionar, mas campos input do tipo file são controlados pelo navegador, portanto o echo $foto infelizmente não funcionará e até com javascript é um pouco complicado manipulá-lo (não é impossível, mas não tenho conhecimentos para lhe passar no momento...)... o que você poderia fazer de uma forma bem simples para notificar o usuário da foto atual do aluno... é colocar um img logo acima do input file assim:

[code=html]
Imagem atual: Imagem atual
Nova imagem:
[/code]

Depois o tratamento não mudaria, apenas faria uma verificação para antes de usar move_uploaded_file, apagar a imagem anterior do disco usando unlink e evitar que a pasta de fotos contenha arquivos sem uso e não deixar o hd ficar cheio...
MariaLS
MariaLS Novo Membro Registrado
26 Mensagens 2 Curtidas
#37 Por MariaLS
02/02/2016 - 00:05
DiguinDeveloper disse:
Apenas uma dica e o quanto antes mudar melhor para seu projeto... evite usar md5() por ser muito "manjada", a exemplo, pegue uma senha criptografada em md5, coloque na pesquisa do google e veja o resultado, possivelmente a senha será "desmascarada", dê preferência por sha1 ou se estiver usando php com versão 5.5 ou superior, a nova API de hash

Quanto à alteração da foto/imagem, usamos a super global $_FILES e geralmente gravamos a imagem/foto em disco rígido usando a função move_uploaded_file como você está fazendo e após, guardamos o caminho em base de dados onde creio ser a coluna foto do update estou certo?

O que está dando de errado ao alterar a imagem?

Bom, se sua dificuldade é com esse campo no formulário...
[code=html]

[/code]

Se sua intenção é trazer a imagem atual nesse campo, esqueci de mencionar, mas campos input do tipo file são controlados pelo navegador, portanto o echo $foto infelizmente não funcionará e até com javascript é um pouco complicado manipulá-lo (não é impossível, mas não tenho conhecimentos para lhe passar no momento...)... o que você poderia fazer de uma forma bem simples para notificar o usuário da foto atual do aluno... é colocar um img logo acima do input file assim:

[code=html]
Imagem atual: Imagem atual
Nova imagem:
[/code]

Depois o tratamento não mudaria, apenas faria uma verificação para antes de usar move_uploaded_file, apagar a imagem anterior do disco usando unlink e evitar que a pasta de fotos contenha arquivos sem uso e não deixar o hd ficar cheio...

---------------------------------------------------------------------------------------------------------------------------------------------------------------------
A variável que responsável pela alteração das fotos no banco de dados é $nome_imagem, porém ela está dando o erro: Warning: unlink($nome_imagem): No such file or directory e não altera os dados. E quando não utilizo o unlink é redirecionado para página
em branco e não atualiza os dados.


Qual á melhor forma de usar o unlink ? Será necessário usar o select?


[code=PHP]
<?php
// Recupera os dados dos campos

$id= $_POST['id'];
$nome= $_POST['nome'];
$apelido = $_POST['apelido'];
$email = $_POST['email'];
$nome_imagem = $_FILES["foto"];
$curso = $_POST['curso'];
$turma = $_POST['turma'];
$data_nascimento = $_POST['data_nascimento'];
$telefone= $_POST['telefone'];
$responsavel= $_POST['responsavel'];
$contato_responsavel= $_POST['contato_responsavel'];
$login= $_POST['login'];
$senha= MD5 ($_POST['senha']);

// Se a foto estiver sido selecionada
if (!empty($foto["name"])) {

// Largura máxima em pixels
$largura = 128;
// Altura máxima em pixels
$altura = 227;
// Tamanho máximo do arquivo em bytes
$tamanho = 3000;

// Verifica se o arquivo é uma imagem
if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $foto["type"])){
$error[1] = "Isso não é uma imagem.";
}

// Pega as dimensões da imagem
$dimensoes = getimagesize($foto["tmp_name"]);

// Verifica se a largura da imagem é maior que a largura permitida
if($dimensoes[0] > $largura) {
$error[2] = "A largura da imagem não deve ultrapassar ".$largura." pixels";
}

// Verifica se a altura da imagem é maior que a altura permitida
if($dimensoes[1] > $altura) {
$error[3] = "Altura da imagem não deve ultrapassar ".$altura." pixels";
}

// Verifica se o tamanho da imagem é maior que o tamanho permitido
if($arquivo["size"] > $tamanho) {
$error[4] = "A imagem deve ter no máximo ".$tamanho." bytes";
}

// Se não houver nenhum erro
if (count($error) == 0) {

// Pega extensão da imagem
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $foto["name"], $ext);

// Gera um nome único para a imagem
$nome_imagem = md5(uniqid(time())) . "." . $ext[1];

// Caminho de onde ficará a imagem
$caminho_imagem = "fotos/" . $nome_imagem;

// Faz o upload da imagem para seu respectivo caminho
move_uploaded_file($foto["tmp_name"], $caminho_imagem);
}


$file ='$nome_imagem';
if (!unlink($file))
{
echo ("Erro ao deletar $file");
}
else
{
echo ("Sucesso ao deletar $file");
}



//***************************** Insere os dados no banco ***********************************************
// Insere os dados no banco

if(mysql_query("UPDATE aluno SET nome='$nome',apelido='$apelido',email='$email',foto='$nome_imagem',
curso='$curso', turma='$turma', data_nascimento='$data_nascimento',telefone='$telefone',
responsavel='$responsavel',contato_responsavel ='$contato_responsavel'
,login ='$login', senha ='$senha' WHERE id='$id'")){ echo "Você foi alterado com sucesso.";
} else {
echo "mysql_error()"; }


}


?>





[/code]
marcos andrade22
marcos andra... General de Pijama Registrado
3.6K Mensagens 333 Curtidas
#40 Por marcos andra...
03/02/2016 - 09:18
Para imagens lhe sugiro utilizar este projeto http://kcfinder.sunhater.com/ poupa muito trabalho e o input fica como um text normal, para usar é basicamente isto:


<scripttype="text/javascript">
functionopenKCFinder(field){window.KCFinder = {callBack: function(url){field.value = url;
window.KCFinder = null;}};window.open('/demo/kcfinder/browse.php?type=files&dir=files/public', 'kcfinder_textbox','status=0, toolbar=0, location=0, menubar=0, directories=0, ' +'resizable=1, scrollbars=0, width=800, height=600');}
</script>

Selected file:
<inputtype="text"readonly="readonly"onclick="openKCFinder(this)"value="Click here and select a file double clicking on it"style="width:600px;cursorointer"/>

Isso é claro depois de configurado,extrair a pasta do kcfinder na raiz do seu projeto e defirnir a pasta de upload se desejar, ele já vem com uma padrão.
veja o link abaixo:
http://kcfinder.sunhater.com/install#install[/code]
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal