Skip to the content...

Welcome to the David Walsh Blog. I'm a MooTools, Dojo, jQuery, CSS, and PHP Web Developer located in Madison, Wisconsin, United States. Please contact me if I can make your experience on my website better.

Send Email Notifications for Broken Images Using jQuery AJAX

12 Responses »

It's usually best to repair broken image paths as soon as possible because they can damage a website's credibility. And even worse is having a user tell you about it. Using jQuery and PHP, you can have your page automatically notify you of broken images.

The PHP

if(isset($_POST['image']))
{
	$to = 'errors@yourdomain.com';
	$from = 'automailer@yourdomain.com';
	$subject = 'Broken Image';
	$content = "The website is signaling a broken image!\n\nBroken Image Path:  ".stripslashes($_POST['image'])."\n\nReferenced on Page:  ".stripslashes($_POST['page']);
	$result = mail($to,$subject,$content,'From: '.$from."\r\n");
	die($result);
}

I keep the email short and to the point; it contains the broken image's src attribute and the page it was requested by.

The jQuery JavaScript

$(document).ready(function() {
	$('img').error(function() {
		$.post('ajax-image-error-jquery.php', { 
			image: $(this).attr('src'), 
			page: window.location.href 
		}, function() { 
			//hide the image? 
		});
	});
});

For every image, we listen for the error event. When a broken image is discovered, an AJAX request is sent to the above PHP script.

Of course, if the page experiences high traffic before you can fix the image path, you'll have quite a few emails. You may prefer to store the error in a database table and check that often.

Discussion

  1. December 12, 2008 @ 11:25 am

    Thanks! I am not going to use this for finding broken images – but I was looking for the ‘error’ event. I had a requirement to hide a message if an image is invalid – and I forgot about the error event. Thanks for the reminder

  2. December 13, 2008 @ 3:14 am

    Does Mootools also has this error event? I’ve searched the moodocs but I couldn’t find anything about a error event.

    Great post!

  3. December 15, 2008 @ 3:26 am

    hmm nice little trick here… ill be sure to put this in the book of code for later use! thanks again :)

  4. louis w
    December 16, 2008 @ 1:36 pm

    Nice little post! This is something I had never even considered but it seems like it would come in quite handy. I love it when there is such a simple and elegant solution for a problem.

  5. June 15, 2009 @ 10:50 am

    Great !!!

  6. revive
    July 17, 2009 @ 9:55 pm

    This is great.. we currently use a customized 404 page scripted in PHP to alert us of these items (even though the user may never see the 404 page for a missing image, the 404 error triggers the email).. great for dev purposes and has also proved invaluable for finding those long lost link-backs to pages that no longer exist! Makes it super easy to 301 redirect those old links and get the users to the correct spot !! Cheers

Be Heard!

Share your thoughts with fellow developers of all skill levels! I want to hear from you!

Name*:
Email*:
Website:  
Wrap your code with <code> tags, f00!