Artigos & Ideias

Enviar Notificações por Email de Erros de Imagens Com jQuery e PHP

Escrito por:

É sempre bom corrigir os links das imagens quebradas o mais rapidamente possível, porque pode prejudicar a credibilidade de um site. E pior ainda é ter um utilizador a falar sobre isso. Utilizando o jQuery e o PHP, podes fazer com a tua página te notifique automaticamente desses erros.

O PHP

if(isset($_POST['imagem']))
{
	$para = 'erros@TeuDominio.com';
	$de = 'noreply@TeuDominio.com';
	$assunto = 'Imagem com Link Quebrado';
	$conteudo = "Foi detectada uma imagem com o link quebrado!\\n\\nEndereço da Imagem:  ".stripslashes($_POST['imagem'])."\\n\\nQue está na página:  ".stripslashes($_POST['pagina']);
	$resultado = mail($para,$assunto,$conteudo,'De: '.$de."\\r\\n");
	die($resultado);
}

Mantenho o email simples e directo ao que pretendo, ou seja, conter o atributo src da imagem e a página que foi solicitada.

O jQuery

$(document).ready(function() {
	$('img').error(function() {
		$.post('ajax-erro-imagem-jquery.php', {
			imagem: $(this).attr('src'),
			pagina: window.location.href
		}, function() {
			//Esconde a imagem?
		});
	});
});

Por cada imagem, esperamos o evento. Quando acontece algum erro com a imagem, se ela não aparecer, uma chamada AJAX acciona o script PHP.

Claro que, se a página tiver muito tráfego, até que corrijas o link da imagem, irás receber vários emails. Podes, no entanto, optar por guardar o erro numa tabela da Base de Dados e verifica-la regularmente, ou criar uma pequena secção no BackOffice para a gerir.

8


Sobre o Autor

Carlos Gonçalves é um Freelancer com bastante experiência em linguagens de programação e webdesign. Vocacionado para as novas tecnologias, aposta na qualidade dos serviços, atendimento rápido e sempre disponível para melhor satisfazer os seus clientes. Autor do site cgoncalves.com

Comentários

  1. Diogo Fonseca  27 Junho 2010

    Belo script da jeito para os grande site…
    Um duvida da para por a fazer o mesmo com iframe

    (responder)
  2. Carlos Gonçalves  27 Junho 2010

    @Diogo Fonseca: claro, se dentro desse iframe estiver a imagem.

    (responder)
  3. Diogo Fonseca  27 Junho 2010

    @Carlos Gonçalves:
    Não era bem isso, era tipo se iframe não localiza se a pagina activa esse script.
    Entende…

    (responder)
  4. Carlos Gonçalves  28 Junho 2010

    @Diogo Fonseca: não sei se percebi, mas estás a perguntar, se dá para activar o script php em vez de javascript com iframe, é isso?

    (responder)
  5. Diogo Fonseca  2 Julho 2010

    Não, e por exemplo:
    -> O iframe não carrega a pagina, logo ativa o javasrcipt que vai activar o php para manda o e-mail

    Percebeu? Da para fazer?

    (responder)
    • Carlos Gonçalves  2 Julho 2010

      Agora sim, já percebi.
      Mas julgo (tenho quase a certeza) que não, mas é questão de testares.
      Já testaste?
      Em todo o caso irei testar depois confirmo-te.

      (responder)
      • Diogo Fonseca  3 Julho 2010

        Sim a testei mas mão sei se tinha de modificar mais coisa ele tava assim mas não deu:
        $(document).ready(function() {
        $(‘iframe’).error(function() {
        $.post(‘ajax-erro-imagem-jquery.php’, {
        imagem: $(this).attr(‘src’),
        pagina: window.location.href
        }, function() {
        //Esconde a imagem?
        });
        });
        });

        Tenho de fazer alguma coisa mais?

        (responder)

Comentar

Nota: A moderação de comentários está activada e pode atrasar o teu comentário. Não há necessidade de reenviares o teu comentário.

  1. Carlos Gonçalves  Maio 30, 2010
More in Outros (1 of 12 articles)

# #