<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Extending the Ajax Mailing List Sign Up System</title>
	<atom:link href="http://aarronwalter.com/2006/11/06/extending-the-ajax-mailing-list-sign-up-system/feed/" rel="self" type="application/rss+xml" />
	<link>http://aarronwalter.com/2006/11/06/extending-the-ajax-mailing-list-sign-up-system/</link>
	<description></description>
	<pubDate>Wed, 20 Aug 2008 17:24:36 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
		<item>
		<title>By: Aarron</title>
		<link>http://aarronwalter.com/2006/11/06/extending-the-ajax-mailing-list-sign-up-system/#comment-7305</link>
		<dc:creator>Aarron</dc:creator>
		<pubDate>Mon, 18 Jun 2007 13:32:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.aarronwalter.com/2006/11/06/extending-the-ajax-mailing-list-sign-up-system/#comment-7305</guid>
		<description>Scott, you can learn all about the MailChimp.com API at http://www.mailchimp.com/resources/guides/subscriber_api.phtml. It's a pretty easy system to use. They have a wonderful PDF you can download with detailed instructions.</description>
		<content:encoded><![CDATA[<p>Scott, you can learn all about the MailChimp.com API at <a href="http://www.mailchimp.com/resources/guides/subscriber_api.phtml" rel="nofollow">http://www.mailchimp.com/resources/guides/subscriber_api.phtml</a>. It&#8217;s a pretty easy system to use. They have a wonderful PDF you can download with detailed instructions.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott</title>
		<link>http://aarronwalter.com/2006/11/06/extending-the-ajax-mailing-list-sign-up-system/#comment-7304</link>
		<dc:creator>Scott</dc:creator>
		<pubDate>Mon, 18 Jun 2007 13:17:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.aarronwalter.com/2006/11/06/extending-the-ajax-mailing-list-sign-up-system/#comment-7304</guid>
		<description>Wondering if there is a way to use ajax and have it automatically get entered into your mailchimp list rather than a table on your server. Have you done this?</description>
		<content:encoded><![CDATA[<p>Wondering if there is a way to use ajax and have it automatically get entered into your mailchimp list rather than a table on your server. Have you done this?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aarron</title>
		<link>http://aarronwalter.com/2006/11/06/extending-the-ajax-mailing-list-sign-up-system/#comment-59</link>
		<dc:creator>Aarron</dc:creator>
		<pubDate>Tue, 21 Nov 2006 02:30:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.aarronwalter.com/2006/11/06/extending-the-ajax-mailing-list-sign-up-system/#comment-59</guid>
		<description>3stripe,

Building a system like that would obviously be a very involved process, but there is a good option. Rather than reinventing the wheel by building such a system, it would make more sense to tie in to an existing mailing list management system, preferably one that  is part of a rich email service. The one I like best is http://mailchimp.com. They have an API (http://www.mailchimp.com/resources/guides/subscriber_api.phtml) that allows you to send sign ups directly into their managed list system. Alternatively you can copy your always just export your mailing list from your database management tool like PHPMyAdmin as a CSV file, and copy and paste the contents into Mail Chimp's list management system. The benefit of managing the list with Mail Chimp is they look for duplicates, handle unsubscribes, and of course have a system that allow you to send rich email to people on your list, which , after all, is the point of having a mailing list. I might sound a bit like a commercial for them, but it's because I have used them for quite some time and had great results. There are other rich email services out there that offer similar features such as Campaign Monitor. I'm not sure if they have an API, though.

Hope that helps.</description>
		<content:encoded><![CDATA[<p>3stripe,</p>
<p>Building a system like that would obviously be a very involved process, but there is a good option. Rather than reinventing the wheel by building such a system, it would make more sense to tie in to an existing mailing list management system, preferably one that  is part of a rich email service. The one I like best is <a href="http://mailchimp.com" rel="nofollow">http://mailchimp.com</a>. They have an API (http://www.mailchimp.com/resources/guides/subscriber_api.phtml) that allows you to send sign ups directly into their managed list system. Alternatively you can copy your always just export your mailing list from your database management tool like PHPMyAdmin as a CSV file, and copy and paste the contents into Mail Chimp&#8217;s list management system. The benefit of managing the list with Mail Chimp is they look for duplicates, handle unsubscribes, and of course have a system that allow you to send rich email to people on your list, which , after all, is the point of having a mailing list. I might sound a bit like a commercial for them, but it&#8217;s because I have used them for quite some time and had great results. There are other rich email services out there that offer similar features such as Campaign Monitor. I&#8217;m not sure if they have an API, though.</p>
<p>Hope that helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: 3stripe</title>
		<link>http://aarronwalter.com/2006/11/06/extending-the-ajax-mailing-list-sign-up-system/#comment-58</link>
		<dc:creator>3stripe</dc:creator>
		<pubDate>Mon, 20 Nov 2006 20:23:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.aarronwalter.com/2006/11/06/extending-the-ajax-mailing-list-sign-up-system/#comment-58</guid>
		<description>I REALLY like this system but I'm a complete PHP novice.

How could you set up a php page to monitor the current list of subscribers , and then export it as a csv file?

Cheers!

3stripe</description>
		<content:encoded><![CDATA[<p>I REALLY like this system but I&#8217;m a complete PHP novice.</p>
<p>How could you set up a php page to monitor the current list of subscribers , and then export it as a csv file?</p>
<p>Cheers!</p>
<p>3stripe</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aarron</title>
		<link>http://aarronwalter.com/2006/11/06/extending-the-ajax-mailing-list-sign-up-system/#comment-42</link>
		<dc:creator>Aarron</dc:creator>
		<pubDate>Thu, 09 Nov 2006 15:54:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.aarronwalter.com/2006/11/06/extending-the-ajax-mailing-list-sign-up-system/#comment-42</guid>
		<description>You're right, Nate. We should add mysql_real_escape_string() when transferring the $_GET values to variables to prevent an SQL injection attack like this:

$address = mysql_real_escape_string($_GET['address']);
$firstName = mysql_real_escape_string($_GET['firstName']);
$lastName = mysql_real_escape_string($_GET['lastName']);
$phone = mysql_real_escape_string($_GET['phone']);

Validation would be another easy addition if receiving new content with simple conditionals like the one used in the storeAddress.php script that check for a missing $_GET['address'] value and validate the email address using a regular expression.

Thanks for checking out the article and the feedback.</description>
		<content:encoded><![CDATA[<p>You&#8217;re right, Nate. We should add mysql_real_escape_string() when transferring the $_GET values to variables to prevent an SQL injection attack like this:</p>
<p>$address = mysql_real_escape_string($_GET[&#8217;address&#8217;]);<br />
$firstName = mysql_real_escape_string($_GET[&#8217;firstName&#8217;]);<br />
$lastName = mysql_real_escape_string($_GET[&#8217;lastName&#8217;]);<br />
$phone = mysql_real_escape_string($_GET[&#8217;phone&#8217;]);</p>
<p>Validation would be another easy addition if receiving new content with simple conditionals like the one used in the storeAddress.php script that check for a missing $_GET[&#8217;address&#8217;] value and validate the email address using a regular expression.</p>
<p>Thanks for checking out the article and the feedback.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nate K</title>
		<link>http://aarronwalter.com/2006/11/06/extending-the-ajax-mailing-list-sign-up-system/#comment-41</link>
		<dc:creator>Nate K</dc:creator>
		<pubDate>Thu, 09 Nov 2006 14:46:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.aarronwalter.com/2006/11/06/extending-the-ajax-mailing-list-sign-up-system/#comment-41</guid>
		<description>The one thing i would add in your extension is to either a) Validate all of the information coming in, or b) Use prepared statements to execute the query. The script as it stands above is vulnerable to SQL injection.

I like your example for the simplicity of it (minus the prototype library). Yes, it can be extended - but it is simple at the core to get something to work - and it degrades gracefully. These are the kinds of things you need to look at when implementing AJAX (as you have warned above). Though AJAX is fun, you really need to think through its use cases.

Nice article!</description>
		<content:encoded><![CDATA[<p>The one thing i would add in your extension is to either a) Validate all of the information coming in, or b) Use prepared statements to execute the query. The script as it stands above is vulnerable to SQL injection.</p>
<p>I like your example for the simplicity of it (minus the prototype library). Yes, it can be extended - but it is simple at the core to get something to work - and it degrades gracefully. These are the kinds of things you need to look at when implementing AJAX (as you have warned above). Though AJAX is fun, you really need to think through its use cases.</p>
<p>Nice article!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
