Fala galera, tudo bem? Estou aprendendo PHP e certamente o meu problema deve ser simples de resolver, porém Google e amigos não me ajudaram muito.
Estou fazendo uma tela de perfil com foto. O upload e display dela está ok. Porém quando altero algum outro dado da página e salvo, a imagem é deletada do banco (ou pelo menos some do banco). Como posso alterar dados nesta tela sem perder a imagem de perfil atual? VALEU!
Pergunta
danersphp
Fala galera, tudo bem? Estou aprendendo PHP e certamente o meu problema deve ser simples de resolver, porém Google e amigos não me ajudaram muito.
Estou fazendo uma tela de perfil com foto. O upload e display dela está ok. Porém quando altero algum outro dado da página e salvo, a imagem é deletada do banco (ou pelo menos some do banco). Como posso alterar dados nesta tela sem perder a imagem de perfil atual? VALEU!
View da tela:
<?php foreach($info as $info): ?>
<div class="form-group">
<img src="assets/images/perfil/<?php echo $info['foto']; ?>" border="1" class="perfil_pic" /><br />
<input type="file" name="foto" class="btn btn-default add_file" style="float:left;"/>
</div>
<?php endforeach; ?>
Controller da tela:
$u = new Usuarios();
if(isset($_POST['nome']) && !empty($_POST['nome'])){
$img = $_FILES['foto'];
$email = addslashes($_POST['email']);
$senha = base64_encode($_POST['senha']);
$nome = addslashes($_POST['nome']);
$sobrenome = addslashes($_POST['sobrenome']);
$aniversario = addslashes($_POST['aniversario']);
$bio = addslashes($_POST['bio']);
$u->updatePerfil($img, $email, $senha, $nome, $sobrenome, $aniversario, $bio);
Model da tela:
public function updatePerfil($pic, $email, $senha, $nome, $sobrenome, $aniversario, $bio){
$id = $_SESSION['fkr'];
$url = '';
if (count($pic) > 0) {
$tipos = array('image/jpeg','image/jpg','image/png');
if (in_array($pic['type'], $tipos)) {
$url = 'perfilatual';
switch($pic['type']){
case 'image/jpeg':
case 'image/jpg':
$url .= '.jpg';
break;
case 'image/png':
$url .= '.jpg';
break;
}
}
move_uploaded_file($pic['tmp_name'], 'assets/images/perfil/' . $url);
}
$sql = "UPDATE usuarios SET foto = '$url', senha = '$senha', email = '$email', nome = '$nome', sobrenome = '$sobrenome', aniversario = '$aniversario', bio = '$bio' WHERE id = '$id'";
$this->db->query($sql);
}
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.