apagar ou trocar imagem do banco com php
pessoal eu nao sei como fazer para apagar uma imagem do banco de dados ou para editala , eu tenho este script que faz o cadastro do meu cliente , esta funcionando 100%% , se alguem precisar e so copiar e usar , mas em fim , ele manda minha imagem para o diretorio e grava o nome dela no banco perfeitamente porem tenho algumas duvidas que n acho um tuto certo na net entao preciso de dicas de pessoas que saibam mais que eu :
1: como crio um script que vai fazer a edição dessa imagem?? colocar uma imagem nova e facil , porem quando a nova chegar , tenho que apagar a imagem antiga para nao ficar ocupando espaço no servidor
2:deletar imagem do banco , se eu pedir para apagar o registro onde essa imagem esta cadastrada , a imagem tem que ser apagada junto : exemplo apagar a linha com id 15 ira apagar o nome da imagem no banco mas tem que apagar a imagem no diretorio tambem
3: esta pergunta não faz parte do topico mas se alguem quiser ajudar , eu agradeço muito , como faço a verificação de arquivo , tipo se é jpg,ou png , se for um .txt tem que dar erro na hora de guardar , n achei nada na net que funcionou
obrigado pela atenção
cadastra.php
<!-- Recebendo e gravando os dados -->
<?php
header ('Content-Type: text / html; charset = utf-8');
include "conexao.php";
$msg = false;//Recebendo os dados e tratando os mesmos para inserção no banco
$recebeSeuNome = filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_SPECIAL_CHARS);
$confereSeuNome = filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_MAGIC_QUOTES);
$recebeSeuSNome = filter_input(INPUT_POST, 'snome', FILTER_SANITIZE_SPECIAL_CHARS);
$confereSeuSNome = filter_input(INPUT_POST, 'snome', FILTER_SANITIZE_MAGIC_QUOTES);
$recebeNomeUsuario = filter_input(INPUT_POST, 'nomeUsuario', FILTER_SANITIZE_SPECIAL_CHARS);
$confereNomeUsuario = filter_input(INPUT_POST, 'nomeUsuario', FILTER_SANITIZE_MAGIC_QUOTES);
$recebeEmail = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
$recebeSenha = filter_input(INPUT_POST, 'senha', FILTER_SANITIZE_SPECIAL_CHARS);
$criptografada = md5($recebeSenha);
$nivel = $_POST['nivel'];
$foto = $_FILES["fotouser"];
$consultaBanco = mysqli_query($conecta, "SELECT * FROM usuario WHERE email = '$recebeEmail'") or die (mysqli_error($consultaBanco));
$verificaBanco = mysqli_num_rows($consultaBanco);
if($verificaBanco == 1){
session_start();
$_SESSION['msg'] = "Este e-mail ja esta cadastrado";
echo "<script>history.go(-1)</script>";
return false;
}
$consultaBanco = mysqli_query($conecta, "SELECT * FROM usuario WHERE userlogin = '$confereNomeUsuario'") or die (mysqli_error($consultaBanco));
$verificaBanco = mysqli_num_rows($consultaBanco);
if($verificaBanco == 1){
session_start();
$_SESSION['msg'] = "Este nome de usuario ja esta cadastrado";
echo "<script>history.go(-1)</script>";
return false;} else {
//erro nao esta verificando
if ($confereSeuNome != $recebeSeuNome) {
session_start();
$_SESSION['msg'] = "Digite um nome valido";
echo "<script>history.go(-1)</script>";
return false;
}
else if ($confereSeuSNome != $recebeSeuSNome) {
session_start();
$_SESSION['msg'] = "Digite um sobrenome valido";
echo "<script>history.go(-1)</script>";
return false;
}
else if ($confereNomeUsuario != $recebeNomeUsuario) {
session_start();
$_SESSION['msg'] = "Digite um nome de usuario valido";
echo "<script>history.go(-1)</script>";
return false;
}
if ($recebeEmail == NULL ) {
session_start();
$_SESSION['msg'] = "Digite um Email";
echo "<script>history.go(-1)</script>";
return false;
}
//Nesse if, faço uma conferência em relação à senha informada. Se não for informada nenhuma, retorno a mensagem para que o usuário informe algo!
if ($recebeSenha == NULL ) {
session_start();
$_SESSION['msg'] = "Digite uma senha";
echo "<script>history.go(-1)</script>";
return false;
}
//Aqui faço a segunda parte da verificação: vejo se no nome de usuário foi utilizado algum caractere especial
//Isso serve para evitar uma possível invasão sql no banco de dados, possibilitando assim a proteção e integridade dos dados
//Nesse caso, eu comparo os nomes. Se forem iguais, após passarem pelos filtros, eu inicio a criptografia. Se não forem, peço que volte à página anterior
else {
// Se a foto estiver sido selecionada
if (!empty($foto["name"])) {
// Largura máxima em pixels
$largura = 400;
// Altura máxima em pixels
$altura = 400;
// Tamanho máximo do arquivo em bytes
$tamanho = 10000;
// Verifica se o arquivo é 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) {
session_start();
$_SESSION['msg'] = "A largura da imagem não deve ultrapassar ".$largura." pixels";
echo "<script>history.go(-1)</script>";
}
// Verifica se a altura da imagem é maior que a altura permitida
if($dimensoes[1] > $altura) {
session_start();
$_SESSION['msg'] = "Altura da imagem não deve ultrapassar ".$altura." pixels";
echo "<script>history.go(-1)</script>";
}
// Verifica se o tamanho da imagem é maior que o tamanho permitido
if($arquivo["size"] > $tamanho) {
session_start();
$_SESSION['msg'] = "A imagem deve ter no máximo ".$tamanho." bytes";
echo "<script>history.go(-1)</script>";
}
// Se não houver nenhum erro
if (count($error) == 0) {
// Pega extensão da imagem
preg_match("/\.(gif|png|jpg){1}$/i", $foto["name"], $ext);
// Gera um nome único para a imagem
$nome_imagem = user.(md5(uniqid(time()))) . "." . $ext[1];
}
}
//Se o endereço de e-mail for válido, eu preciso verificar se o e-mail cadastrado já consta na base de dados.
//Como desejo que o e-mail seja um campo único, preciso verificar se o mesmo já foi ou não cadastrado no banco.
//A consulta segue abaixo:
//Agora vamos inserir os dados no banco
$insereDados = mysqli_query($conecta, "INSERT INTO usuario (id_usuario, nome, sobrenome, email, fotouser, userlogin, passlogin,) VALUES ('NULL', '$confereSeuNome', '$confereSeuSNome', '$recebeEmail', '$nome_imagem', '$recebeNomeUsuario', '$criptografada')") or die (mysqli_error());
session_start();
if($insereDados=true){
// Caminho de onde ficará a imagem
$caminho_imagem = "../img/" . $nome_imagem;
// Faz o upload da imagem para seu respectivo caminho
move_uploaded_file($foto["tmp_name"], $caminho_imagem);
}
$_SESSION['msg'] = "Usuario cadastrado com sucesso";
header("Location: {$_SERVER['HTTP_REFERER']}");
} else{
$_SESSION['msg'] = "Erro ao cadastrar";
header("Location: {$_SERVER['HTTP_REFERER']}");
}
}
}
?>Discussão (1)
Carregando comentários...