<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tims Tech Blog &#187; My PHP / MySQL Life</title>
	<atom:link href="http://www.golen.net/blog/category/my-php-mysql-life/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.golen.net/blog</link>
	<description>My blog looks bad because I&#039;m working on making yours look better</description>
	<lastBuildDate>Fri, 09 Dec 2011 22:00:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Browser.js &#8211; A JavaScript alternative to Browser.php</title>
		<link>http://www.golen.net/blog/browser-js-a-javascript-alternative-to-browser-php/</link>
		<comments>http://www.golen.net/blog/browser-js-a-javascript-alternative-to-browser-php/#comments</comments>
		<pubDate>Mon, 18 Jul 2011 21:11:52 +0000</pubDate>
		<dc:creator>Tim Golen</dc:creator>
				<category><![CDATA[My PHP / MySQL Life]]></category>

		<guid isPermaLink="false">http://www.golen.net/blog/?p=1415</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/browser-js-a-javascript-alternative-to-browser-php/' addthis:title='Browser.js &#8211; A JavaScript alternative to Browser.php ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>Browser.php is a script used to detect browser versions. Recently, I was working on a project that required the same functionality from JavaScript. Thus, I ported the code over from PHP to JavaScript and give it freely for you to &#8230; <a href="http://www.golen.net/blog/browser-js-a-javascript-alternative-to-browser-php/">Continue reading <span class="meta-nav">&#8594;</span></a><div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/browser-js-a-javascript-alternative-to-browser-php/' addthis:title='Browser.js &#8211; A JavaScript alternative to Browser.php ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/browser-js-a-javascript-alternative-to-browser-php/' addthis:title='Browser.js &#8211; A JavaScript alternative to Browser.php ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div><p>Browser.php is a script used to detect browser versions. Recently, I was working on a project that required the same functionality from JavaScript. Thus, I ported the code over from PHP to JavaScript and give it freely for you to use and enjoy.</p>
<p>The original site for Browser.php can be found <a href="http://chrisschuld.com/projects/browser-php-detecting-a-users-browser-from-php/" target="_blank">here</a>.</p>
<p>You can download Browser.1.0.js <a href="http://www.golen.net/blog/wp-content/uploads/2011/07/Browser.1.0.js">here</a> (25k).</p>
<p>You can download Browser.1.0.min.js <a href="http://www.golen.net/blog/wp-content/uploads/2011/07/Browser.1.0.min_.js">here</a> (16k).</p>
<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/browser-js-a-javascript-alternative-to-browser-php/' addthis:title='Browser.js &#8211; A JavaScript alternative to Browser.php ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.golen.net/blog/browser-js-a-javascript-alternative-to-browser-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Choosing a Mobile Web Framework</title>
		<link>http://www.golen.net/blog/choosing-a-mobile-web-framework/</link>
		<comments>http://www.golen.net/blog/choosing-a-mobile-web-framework/#comments</comments>
		<pubDate>Mon, 11 Jul 2011 22:46:24 +0000</pubDate>
		<dc:creator>Tim Golen</dc:creator>
				<category><![CDATA[My PHP / MySQL Life]]></category>

		<guid isPermaLink="false">http://www.golen.net/blog/?p=1368</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/choosing-a-mobile-web-framework/' addthis:title='Choosing a Mobile Web Framework ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>In this day and age you don&#8217;t have to go far to find a framework that claims to be the BEST and MOST SUPPORTED mobile framework EVER!!! Three years ago, there were only a handful. IUI was there, JQTouch was &#8230; <a href="http://www.golen.net/blog/choosing-a-mobile-web-framework/">Continue reading <span class="meta-nav">&#8594;</span></a><div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/choosing-a-mobile-web-framework/' addthis:title='Choosing a Mobile Web Framework ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/choosing-a-mobile-web-framework/' addthis:title='Choosing a Mobile Web Framework ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div><p>In this day and age you don&#8217;t have to go far to find a framework that claims to be the BEST and MOST SUPPORTED mobile framework EVER!!! Three years ago, there were only a handful. IUI was there, JQTouch was there, and Sencha Touch was early on the scene. In the last year, there has been dozens of new frameworks on the scene. So, with all those frameworks, how in the world can you choose which one is right for you?</p>
<p>I&#8217;m not going to go into depth on every framework that is out there. A simple Google search for &#8220;<a href="http://tinyurl.com/62r9so9" target="_blank">mobile web frameworks</a>&#8221; will put lists and lists of frameworks in front of your face, but that still doesn&#8217;t get you any closer to deciding which one is right for you.</p>
<p>I&#8217;ve used many of the frameworks, and I know the pros and cons of them. I&#8217;ve used them on client projects and on personal projects. I&#8217;ve used them with heavily customized styles, and I&#8217;ve used them with lightly customized styles. I&#8217;ve used them on iPhones, Androids, iPads, and Blackberry devices. When I talk about mobile frameworks, I know what I&#8217;m talking about. Let&#8217;s take a look at some of the most important criteria you should have when choosing a framework.</p>
<h2>Support</h2>
<p>This is perhaps the most important aspect of any framework. Some frameworks only provide API documentation (like Sencha Touch and JQuery Mobile), which is good if you want complete documentation, but it lacks in telling you how it all fits together. Other frameworks like Wink don&#8217;t mind telling you how it all fits together, but you don&#8217;t get full documentation if you really want to manipulate the application.</p>
<p>The other aspect of support is how quickly you can find answers to undocumented features. Typically you need to reach out to the community for answers. The more established a framework is (like Sencha Touch and JQTouch) the better and more responsive the community is.</p>
<p>The level of support will determine how quickly you learn to use the framework, and how quickly you can deal with obstacles that you come across. If you are going to create a heavily customized or richly featured application, then you want to find good support with a good community that can help you out when you get into a tough spot.</p>
<p>Win: JQuery Mobile, Sencha Touch</p>
<p>Fail: just about everyone else</p>
<h2>Custom Design</h2>
<p>This is where a lot of frameworks absolutely FAIL. Most frameworks force you (and you&#8217;re users) to conform to their designs, layouts, and animations. For some people, this is fine, but if you want to take Sencha Touch and put a high customized design on it, you&#8217;re going to run into performance nightmares when using it on anything but an iOS device or the newest Androids.</p>
<p>One good concept when it comes to building user interfaces is to not re-train a user how to use a well-known interface. For example, the typical interfaces on an iPhone are completely different than the typical interfaces on an Android. Why on Earth would you want force Android users to learn an iPhone interface? They chose an Android for a reason. Are you so arrogant that you alone can determine that an iPhone interface is superior to an Android interface?</p>
<p>In order to provide a highly customized interface, you&#8217;re going to want as much control over the looks and interactivity while retaining as much performance as you can. This is where smaller frameworks like XUI come in that merely provide a core set of tools and it&#8217;s up to you to make them look how you want.</p>
<p>Win: XUI</p>
<p>Fail: JQuery Mobile, JQTouch, Sencha Touch, many many others, so many others</p>
<h2>Performance</h2>
<p>Most frameworks show you demos of all their layouts, interfaces, and animations so you can test them out and see how wonderful they are. That&#8217;s only half the story though. What you&#8217;ll quickly find out is that when you start building your own application and customizing designs or animations, it&#8217;s quickly going to bog down. If you want to retain the original performance level, you&#8217;re going to have to stick with how they design things. The arrogance!</p>
<p>If you&#8217;re fine sticking with their designs, then that&#8217;s fine&#8230; nothing against that. That&#8217;s why I used JQuery Mobile on one of my projects because it was for iOS users only and I wanted something quick, simple, elegant, and not highly customized. It worked perfectly! However I&#8217;ve worked on projects that required a lot of styling and design and most frameworks performance quickly fell short especially on non-iOS devices.</p>
<p>Win: XUI</p>
<p>Fail: JQuery Mobile, JQTouch, Sencha Touch, too many to mention</p>
<h2>Continued Development</h2>
<p>The ideal framework will have an active development cycle. You don&#8217;t want to use a framework that was only created by one guy in order to fix a certain problem they had (ie. CiUI). Since technology is moving forward at such a fast pace, you want a framework that&#8217;s going to be around for at least a couple of years and that is going to be updated to move with technology.</p>
<p>Win: JQTouch (sorta), JQuery Mobile, Sencha Touch</p>
<p>Fail: CiUI, iUI, too manny to mention</p>
<h2>Analysis</h2>
<p>We&#8217;ve looked at some of the major criteria to take into account when trying to decide which mobile framework you should use. You need to have a framework with good support, good performance, and that will be around for a while. The bit about custom design isn&#8217;t for every project. There are only a handful of frameworks that are viable candidates at the current time.</p>
<h2>Conclusion</h2>
<p>JQuery Mobile, JQTouch, Sencha Touch, iUI, and XUI are the few and the proid. If you stick to that short list, you should be able to find something that suits your needs.</p>
<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/choosing-a-mobile-web-framework/' addthis:title='Choosing a Mobile Web Framework ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.golen.net/blog/choosing-a-mobile-web-framework/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress Akismet Alternative</title>
		<link>http://www.golen.net/blog/wordpress-akismet-alternative/</link>
		<comments>http://www.golen.net/blog/wordpress-akismet-alternative/#comments</comments>
		<pubDate>Thu, 05 May 2011 21:25:09 +0000</pubDate>
		<dc:creator>Tim Golen</dc:creator>
				<category><![CDATA[My PHP / MySQL Life]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Akisment]]></category>
		<category><![CDATA[Wordpress Akismet Alternative]]></category>

		<guid isPermaLink="false">http://www.golen.net/blog/?p=1356</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/wordpress-akismet-alternative/' addthis:title='WordPress Akismet Alternative ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>It&#8217;s no secret that WordPress and Akismet are in cahoots. It&#8217;s one of the only plugins that comes pre-installed with WordPress and it&#8217;s shamelessly promoted. The real question though is &#8220;does it work&#8221;? Literally, yes. It does work. As in, &#8230; <a href="http://www.golen.net/blog/wordpress-akismet-alternative/">Continue reading <span class="meta-nav">&#8594;</span></a><div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/wordpress-akismet-alternative/' addthis:title='WordPress Akismet Alternative ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/wordpress-akismet-alternative/' addthis:title='WordPress Akismet Alternative ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div><p>It&#8217;s no secret that WordPress and Akismet are in cahoots. It&#8217;s one of the only plugins that comes pre-installed with WordPress and it&#8217;s shamelessly promoted. The real question though is &#8220;does it work&#8221;?</p>
<p>Literally, yes. It does work. As in, it&#8217;s not absolutely broken. I think what a lot of people are starting to see though is that it&#8217;s not working very well. It&#8217;s supposed to stop you from getting spam comments on your blog, and it used to do a pretty good job. As technology improves though, the spammers and hackers get smarter and smarter.</p>
<p>Some solutions are to put clunky captchas in place to try and weed out the automated bots from real humans, but you will quickly see that this method simply puts a barrier in front of people that will cause a huge decrease in comments. Not good.</p>
<p>I want to know a few things&#8230; How many of you are tired of Akisment and want an alternative solution? If there was an all-inclusive alternative, what kind of features would you want it to have? Leave a comment and let me know what you think.</p>
<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/wordpress-akismet-alternative/' addthis:title='WordPress Akismet Alternative ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.golen.net/blog/wordpress-akismet-alternative/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress Custom Post Type as Static Home Page</title>
		<link>http://www.golen.net/blog/wordpress-custom-post-type-as-static-home-page/</link>
		<comments>http://www.golen.net/blog/wordpress-custom-post-type-as-static-home-page/#comments</comments>
		<pubDate>Fri, 08 Apr 2011 22:10:53 +0000</pubDate>
		<dc:creator>Tim Golen</dc:creator>
				<category><![CDATA[My PHP / MySQL Life]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.golen.net/blog/?p=1340</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/wordpress-custom-post-type-as-static-home-page/' addthis:title='WordPress Custom Post Type as Static Home Page ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>I&#8217;ve been searching the last couple of days for some sort of solution to this problem. I&#8217;m using custom post types in WordPress and I want to be able to specify my static home page to be one of my &#8230; <a href="http://www.golen.net/blog/wordpress-custom-post-type-as-static-home-page/">Continue reading <span class="meta-nav">&#8594;</span></a><div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/wordpress-custom-post-type-as-static-home-page/' addthis:title='WordPress Custom Post Type as Static Home Page ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/wordpress-custom-post-type-as-static-home-page/' addthis:title='WordPress Custom Post Type as Static Home Page ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div><p>I&#8217;ve been searching the last couple of days for some sort of solution to this problem. I&#8217;m using custom post types in WordPress and I want to be able to specify my static home page to be one of my custom post types. In the WordPress Reading options it only lets you specify &#8216;Pages&#8217;, not any of your custom post types.</p>
<p>I came across this discussion <a href="http://themeforest.net/forums/thread/wp-custom-post-type-as-static-home-page/35087?page=1" target="_blank">here</a>, but it didn&#8217;t lead to any kind of a solution.</p>
<p>Another possible is <a href="http://rightthewriter.wordpress.com/2010/07/16/any-post-type-on-a-static-front-page/" target="_blank">here</a>, but it wasn&#8217;t a good solution because you had to create an actual page, and then use a custom template. A little too messy for my taste.</p>
<p>I also found <a href="http://www.nicolaskuttler.com/code/set-static-front-page-and-blog-page-programmatically-in-wordpress/" target="_blank">this</a> which was the closest one yet. I found out, that manipulating those options does work, but not as intended. The home page was auto-redirecting to the permalink of my custom post type. So, in principle, when I went to my home page I was seeing my custom post type, but when looking at the address bar, it actually just redirects to the permalink. This wasn&#8217;t the solution I was looking for.</p>
<p>Then I decided that if you could specify the post ID somewhere (in my theme settings) of the page I wanted to be the home page, it would be as simple as modify the query for my main loop. I came up with the following code placed in my main index.php file for my theme before the loop starts, and it seems to work perfectly.</p>
<p><code>$postId = 12345; // substitute with the ID of the post you want to show<br />
if ( is_home() &amp;&amp; '' != $postId ) :<br />
$post = get_post( $postId );<br />
query_posts( array( 'post_type'=&gt;$post-&gt;post_type, 'p'=&gt;$postId ) );<br />
endif;</code></p>
<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/wordpress-custom-post-type-as-static-home-page/' addthis:title='WordPress Custom Post Type as Static Home Page ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.golen.net/blog/wordpress-custom-post-type-as-static-home-page/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Smarty Plugin: Autolink URLs</title>
		<link>http://www.golen.net/blog/smarty-plugin-autolink-urls/</link>
		<comments>http://www.golen.net/blog/smarty-plugin-autolink-urls/#comments</comments>
		<pubDate>Tue, 18 Jan 2011 19:09:00 +0000</pubDate>
		<dc:creator>Tim Golen</dc:creator>
				<category><![CDATA[My PHP / MySQL Life]]></category>
		<category><![CDATA[Autolink]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Smarty]]></category>

		<guid isPermaLink="false">http://www.golen.net/blog/?p=1318</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/smarty-plugin-autolink-urls/' addthis:title='Smarty Plugin: Autolink URLs ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>This is a plugin for the PHP template engine Smarty. It&#8217;s a modifier plugin, so you can use it like this: {$text&#124;autolink} The purpose of the plugin is to automatically detect URLs within a string and wrap them in HTML &#8230; <a href="http://www.golen.net/blog/smarty-plugin-autolink-urls/">Continue reading <span class="meta-nav">&#8594;</span></a><div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/smarty-plugin-autolink-urls/' addthis:title='Smarty Plugin: Autolink URLs ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/smarty-plugin-autolink-urls/' addthis:title='Smarty Plugin: Autolink URLs ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div><p>This is a plugin for the PHP template engine <a href="http://www.smarty.net/" target="_blank">Smarty</a>. It&#8217;s a modifier plugin, so you can use it like this:</p>
<p><code>{$text|autolink}</code></p>
<p>The purpose of the plugin is to automatically detect URLs within a string and wrap them in HTML anchor (&lt;a&gt;) tags.</p>
<p>Features:</p>
<ol>
<li>will detect URLs with or without http://</li>
<li>detects http or https</li>
<li>adds a _blank target and a nofollow rel (you can edit the file to remove those if you wish)</li>
</ol>
<p>Let me know if you find it useful.</p>
<p>Download it <a href="http://www.golen.net/data/modifier.autolink.zip">here</a></p>
<p>Just place it in your Smarty plugin folder</p>
<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/smarty-plugin-autolink-urls/' addthis:title='Smarty Plugin: Autolink URLs ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.golen.net/blog/smarty-plugin-autolink-urls/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP ZIP Archiver</title>
		<link>http://www.golen.net/blog/php-zip-archiver/</link>
		<comments>http://www.golen.net/blog/php-zip-archiver/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 14:30:55 +0000</pubDate>
		<dc:creator>Tim Golen</dc:creator>
				<category><![CDATA[My PHP / MySQL Life]]></category>
		<category><![CDATA[PHP ZIP Archiver]]></category>

		<guid isPermaLink="false">http://www.golen.net/blog/?p=1254</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/php-zip-archiver/' addthis:title='PHP ZIP Archiver ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>I recently had to create a piece of PHP code that will take an entire directory on my hard drive, and make a .zip file out of it. I needed it to be recursive and I needed it to be &#8230; <a href="http://www.golen.net/blog/php-zip-archiver/">Continue reading <span class="meta-nav">&#8594;</span></a><div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/php-zip-archiver/' addthis:title='PHP ZIP Archiver ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/php-zip-archiver/' addthis:title='PHP ZIP Archiver ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div><p>I recently had to create a piece of PHP code that will take an entire directory on my hard drive, and make a .zip file out of it. I needed it to be recursive and I needed it to be simple. My code stemmed off the code I originally found <a href="http://www.web-development-blog.com/archives/tutorial-create-a-zip-file-from-folders-on-the-fly/" target="_blank">here</a>, but the problem was that it referenced another piece of code that must be required to use, and that code was held behind a registration page. So, I went ahead and created my own code that is self-sustaining and open source. You can check it out over at <a href="http://code.google.com/p/php-zip-archiver/" target="_self">Google Code</a>. I hope you enjoy it and let me know if you need any help with it.</p>
<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/php-zip-archiver/' addthis:title='PHP ZIP Archiver ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.golen.net/blog/php-zip-archiver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WPTouch and Webcomic Working Together</title>
		<link>http://www.golen.net/blog/wptouch-and-webcomic-working-together/</link>
		<comments>http://www.golen.net/blog/wptouch-and-webcomic-working-together/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 03:51:39 +0000</pubDate>
		<dc:creator>Tim Golen</dc:creator>
				<category><![CDATA[Learning]]></category>
		<category><![CDATA[My PHP / MySQL Life]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[webcomic]]></category>
		<category><![CDATA[wptouch]]></category>

		<guid isPermaLink="false">http://www.golen.net/blog/?p=1176</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/wptouch-and-webcomic-working-together/' addthis:title='WPTouch and Webcomic Working Together ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>I happen to be a user of both WPTouch (a plugin that makes my blog mobile friendly) and Webcomic (a plugin and theme that allows you to organize comic series). The problem lies in that webcomic uses a custom post &#8230; <a href="http://www.golen.net/blog/wptouch-and-webcomic-working-together/">Continue reading <span class="meta-nav">&#8594;</span></a><div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/wptouch-and-webcomic-working-together/' addthis:title='WPTouch and Webcomic Working Together ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/wptouch-and-webcomic-working-together/' addthis:title='WPTouch and Webcomic Working Together ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div><p>I happen to be a user of both WPTouch (a plugin that makes my blog mobile friendly) and Webcomic (a plugin and theme that allows you to organize comic series). The problem lies in that webcomic uses a custom post type for displaying the images associated with each comic and WPTouch has no idea how to display a webcomic. Thus, when someone visits my site on a mobile device, they can see any text that I post for a webcomic, but they can&#8217;t see the image associated with my post. Today I resolved to fix that problem and I was successful. While it&#8217;s not the most elegant of solutions, it at least works for now and I hope it can help others.</p>
<p><span id="more-1176"></span></p>
<p>The solution is to modify your WPTouch plugin to manually link to the images associated with your webcomics. Now, I ended up buying the WPTouch pro version, because it is more updated, and it gives you themes. I&#8217;m hoping that it will be worth it for me since 50% of my sites traffic is from iPhones.</p>
<p>Once you&#8217;ve installed WPTouch Pro, edit the file wp-content/plugins/wptouch-pro/themes/classic/iphone/single.php</p>
<p>Add the following code on line 45</p>
<blockquote><p>&lt;?php<br />
$categories = get_the_category();<br />
$category = $categories[0]-&gt;category_nicename;<br />
$webcomic = get_post_meta(get_the_ID(), &#8216;webcomic&#8217;);<br />
if ($webcomic){<br />
echo &#8216;&lt;img src=&#8221;&#8216;.get_bloginfo( &#8216;url&#8217; ).&#8217;/wp-content/webcomic/&#8217;.$category.&#8217;/&#8217;.$webcomic[0]['files']['full'][0].&#8217;&#8221; alt=&#8221;" /&gt;&#8217;;<br />
}<br />
?&gt;</p></blockquote>
<p>Here&#8217;s what it does. First it grabs the category slug that the post is in. This is needed because that&#8217;s how Webcomic organizes your images. Second, it gets the webcomic metadata for the post. If the metadata exists, then we echo out the full sized image. That&#8217;s pretty much it!</p>
<p>If you have questions, I will try to help you out as best I can.</p>
<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/wptouch-and-webcomic-working-together/' addthis:title='WPTouch and Webcomic Working Together ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.golen.net/blog/wptouch-and-webcomic-working-together/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Adobe: Worst Customer Support Ever &#8211; Flash Builder 4 Premium Profiler Not Working</title>
		<link>http://www.golen.net/blog/adobe-worst-customer-support-ever/</link>
		<comments>http://www.golen.net/blog/adobe-worst-customer-support-ever/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 23:17:44 +0000</pubDate>
		<dc:creator>Tim Golen</dc:creator>
				<category><![CDATA[Learning]]></category>
		<category><![CDATA[My PHP / MySQL Life]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[customer support]]></category>
		<category><![CDATA[flash builder 4]]></category>
		<category><![CDATA[not working]]></category>
		<category><![CDATA[profiler]]></category>
		<category><![CDATA[worst]]></category>

		<guid isPermaLink="false">http://www.golen.net/blog/?p=1127</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/adobe-worst-customer-support-ever/' addthis:title='Adobe: Worst Customer Support Ever &#8211; Flash Builder 4 Premium Profiler Not Working ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>This blog is a chronicle of my adventure with Adobe in trying to get support for Flash Builder 4. You see, I purchased the premium version of the product 5 days ago, and one of the key features for the &#8230; <a href="http://www.golen.net/blog/adobe-worst-customer-support-ever/">Continue reading <span class="meta-nav">&#8594;</span></a><div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/adobe-worst-customer-support-ever/' addthis:title='Adobe: Worst Customer Support Ever &#8211; Flash Builder 4 Premium Profiler Not Working ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/adobe-worst-customer-support-ever/' addthis:title='Adobe: Worst Customer Support Ever &#8211; Flash Builder 4 Premium Profiler Not Working ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div><p>This blog is a chronicle of my adventure with Adobe in trying to get support for Flash Builder 4. You see, I purchased the premium version of the product 5 days ago, and one of the key features for the premium version is a &#8220;profiler&#8221;. Now, I got the application installed fine, and everything works EXCEPT for the &#8220;profiler&#8221;, the one feature that I paid $700 for. What follows is how Adobe chooses to conduct support for a $700 product.<br />
<span id="more-1127"></span></p>
<h2>Friday &#8211; 08/13/2010</h2>
<ul>
<li>called tech support
<ul>
<li>they said support is only covered under a support contract</li>
</ul>
</li>
<li>talked with someone on chat support
<ul>
<li>they said they would escalate the case to tier 2 support and they would contact me</li>
</ul>
</li>
</ul>
<h2>Monday &#8211; 08/16/2010</h2>
<ul>
<li>No contact from tier 2 support &#8211; case shows as &#8216;withdrawn&#8217; on Adobe&#8217;s website</li>
<li>used online form to schedule a callback, got a message that callbacks weren&#8217;t working until Tuesday</li>
<li>chatted with chat support (transcript in email)
<ul>
<li>they ended up scheduling a call back from tech support for me</li>
</ul>
</li>
<li>on the meantime was on hold with tech support
<ul>
<li>spoke to someone who said Flash Builder 4 required a contract for support and they gave me the number</li>
<li>800-585-0774 to purchase a support contract</li>
</ul>
</li>
<li>callback called me back 12 times
<ul>
<li>several times I chose option 9 to cancel the call back</li>
<li>finally used option 1 to speak with person to turn off the call backs</li>
<li>the person said he would close the case to stop the callbacks</li>
</ul>
</li>
<li>2 more callbacks
<ul>
<li>used option 1 to speak to another person to turn off the callbacks</li>
<li>stayed on hold for over 5 minutes and ended the call</li>
</ul>
</li>
<li>1 more callback
<ul>
<li>used option 1 again, no one answered within 5 minutes. I ended the call</li>
</ul>
</li>
<li>contacted @adobe on twitter
<ul>
<li>they referred me to @adobe_care</li>
<li>they attempted to find out what my issue with the profiler was</li>
<li>they said they would check with the flash builder team and get back to me</li>
</ul>
</li>
<li>called 800-585-0774 (direct sales) to see why I needed to purchase support for a $700 product that doesn&#8217;t work
<ul>
<li>she said that the issue should be handled by tech support without a support contract</li>
<li>transferred me to Flash builder tech support team</li>
</ul>
</li>
<li>speaking with tech support
<ul>
<li>he told me i need a support contract and this is not the right tech support for flash builder 4</li>
<li>he also told me he is the same person that I&#8217;ve spoken to twice today already (Abhishek)</li>
<li>he told me that direct sales was wrong and that if I had purchased a support contract then I would have gotten the right support number to call.</li>
<li>I asked to speak with his manager</li>
<li>he said he would transfer me to his manager</li>
<li>he again advised me that I needed to purchase a support contract</li>
<li>the manager came on the line (dsandeep)</li>
<li>he confirmed that I needed a support contract and that there is a dedicated flash builder team</li>
<li>I told him to put me in touch with that team.</li>
<li>he said he would transfer me to that team after documenting my case.</li>
</ul>
</li>
<li>I was transferred to direct sales (Rueben)
<ul>
<li>he said I should have two incedents covered within 90 days of purchase</li>
<li>he didn&#8217;t know the proper team to support the product</li>
<li>he tried to sell me one incedent for $34, I told him he just told me I had two icenddents to use</li>
</ul>
</li>
<li>he transferred me back to Abhishek at tech support
<ul>
<li>I related the story to him</li>
<li>he asked if I had a support contract #</li>
<li>I tried to clarify that direct sales told me I had two free incedents and all I have is an email with serial numbers</li>
<li>I gave him the serial number from my email</li>
<li>he gave me the number for flash builder support team 888-649-2990</li>
</ul>
</li>
<li>called that number (enterpise solutions)
<ul>
<li>they hung up on me after I tried to get the name of the person I was speaking to</li>
</ul>
</li>
<li>called back
<ul>
<li>told her my issue with the profiler and gave her account info</li>
<li>she said she is tier 2 and that I should have never spoken to tier 1 (I could have told her that)</li>
<li>she said I would be contacted back within 24 hours to do a webex session for the assistence</li>
<li>we went through the troubleshooting that I had already done and she confirmed that I would need a webex session to get any further</li>
</ul>
</li>
</ul>
<h2>Tuesday &#8211; 08/17/2010</h2>
<ul>
<li>I was contacted by Bruce on Twitter
<ul>
<li>he asked some basic troubleshooting, then wanted to have tech support contact me</li>
<li>I gave him my case number</li>
<li>he said he would escalate the case to tier 3 and I would be contacted</li>
</ul>
</li>
<li>I was called by someone on tier 2 support (I think)
<ul>
<li>he said they are still looking into the problem, but he found information that it could be a bug in flash player 10.1 and to try installing 10.0 and see if the profiler would work</li>
<li>he sent me a link with information on the 10.1 problem</li>
<li>I installed version 10.0, but the problem still persisted</li>
</ul>
</li>
<li>I emailed the tier 2 guy back and told him I still had the problem
<ul>
<li>He said they were continuing to look at the problem and would stay in contact with me</li>
</ul>
</li>
</ul>
<h2>Wednesday &#8211; 08/18/2010</h2>
<ul>
<li>Got an email from someone saying they would continue to look into my case</li>
</ul>
<h2>Thursday &#8211; 08/19/2010</h2>
<ul>
<li>Finally got a call from a technician that wanted to remotely connect to my computer
<ul>
<li>He was able to connect and worked on my computer for about 45 minutes until I had to leave</li>
<li>all that was accomplished was that he could recreate the problem in a completely sterile environment, thereby determining it wasn&#8217;t something that I was doing wrong</li>
<li>We agreed to pick it back up again on Monday when I would be back in the office.</li>
</ul>
</li>
</ul>
<h2>Monday &#8211; 08/23/2010</h2>
<ul>
<li>No contact from Adobe</li>
</ul>
<h2>Tuesday &#8211; 08/24/2010</h2>
<ul>
<li>Updated my case online saying I hadn&#8217;t heard from anyone on Monday like I was expecting
<ul>
<li>No response</li>
</ul>
</li>
<li>Contacted Adobe_care on Twitter saying I hadn&#8217;t heard anything from them since Thursday
<ul>
<li>Got an almost immediate response to my case asking me to do a couple more trouble-shooting steps</li>
<li>All the steps had been done by the tech last week when he was remotely connected to my computer</li>
<li>I updated the case with the results from the trouble-shooting and that the problem was still not resolved</li>
<li>No response yet from Adobe</li>
</ul>
</li>
</ul>
<h2>Wednesday &#8211; 08/25/2010</h2>
<ul>
<li>Updated my Adobe case with &#8220;Hello?&#8221; after not receiving any response</li>
<li>Got an email response 6 hours after updating the case
<ul>
<li>They said that since the mm.cfg file didn&#8217;t exist on my computer to create it and put the following contents in it, then relaunch Flash Builder 4 and see if the profiler will work.
<ul>
<li>ErrorReportingEnable=1</li>
<li> TraceOutputFileEnable=1</li>
<li> TraceOutputEnable=1</li>
</ul>
</li>
<li>The suggestion didn&#8217;t fix the problem and I updated the case with that information</li>
</ul>
</li>
</ul>
<h2>Thursday &#8211; 08/26/2010</h2>
<ul>
<li>Sent @adobe_care a DM to see what I needed to do to get my case escalated and a resolution</li>
<li>found this guy&#8217;s article which sounds like he&#8217;s having as much fun as I am <a href="http://iconnectdots.com/2010/08/adobe-gets-1st-prize-for-worst-customer-service-ever.html">http://iconnectdots.com/2010/08/adobe-gets-1st-prize-for-worst-customer-service-ever.html</a></li>
<li>Received an update to my case in which they are trying to convince me that they won&#8217;t support it on 64bit Windows 7 referencing the system requirements at <a href="http://www.adobe.com/products/flex/systemreqs/">http://www.adobe.com/products/flex/systemreqs/</a>
<ul>
<li>OS Requirement: Windows 7 (32 or 64 bit running in 32-bit mode)
<ul>
<li>Ok, so you do support the 64 bit version, if the apps running in 32 bit mode</li>
</ul>
</li>
<li>According to this article (which is just a better way of proving my point) <a href="http://www.techsupportalert.com/content/how-windows7-vista64-support-32bit-applications.htm">http://www.techsupportalert.com/content/how-windows7-vista64-support-32bit-applications.htm</a> if the application is installed in Program Files (x86) then it will always run in 32 bit mode.</li>
<li>This is nothing but a poor attempt at prolonging the case</li>
</ul>
</li>
</ul>
<h2>Friday &#8211; 08/27/2010</h2>
<ul>
<li>Got a message from @adobe_care on Twitter that the case had been stuck with tier 2 support and they were escalating it to tier 3
<ul>
<li>They said the 64-bit issue was still on the table</li>
</ul>
</li>
</ul>
<h2>Saturday &#8211; 08/28/2010</h2>
<ul>
<li>I installed Adobe Flash Builder 4 Premium on a second computer running Windows Vista 32-bit operating system
<ul>
<li>I also made sure that Flash Player 10.0 was installed</li>
<li>Verified the the profiler would still not launch</li>
<li>Updated the Adobe case saying that it still didn&#8217;t work with a supported OS so they couldn&#8217;t use the &#8220;not supported&#8221; defense</li>
<li>DMed @adobe_care and let them know that I confirmed it didn&#8217;t work on 32-bit windows Vista</li>
</ul>
</li>
</ul>
<h2>Monday &#8211; 08/30/2010</h2>
<ul>
<li>Got an update on the case this morning saying &#8220;I am escalating this case to my<br />
Senior, so that a collective research and response mechanism be<br />
generated.&#8221; We&#8217;ll see how that goes.</li>
<li>I asked them to update the case on a daily basis with status</li>
<li>Got a call from tier 3 support, a guy named Kurt Mossman @kurtmossman.
<ul>
<li>He is my hero!</li>
<li>In 5 minutes he had my profiler fixed and the case closed.</li>
<li>Below you will find my solution and the short amount of troubleshooting that we did</li>
</ul>
</li>
</ul>
<h2>Conclusion</h2>
<p>After almost 2 weeks, and probably 10-15 hours of fighting with Adboe support, we found a resolution to my problem.</p>
<p>Here was the solution:</p>
<ol>
<li>open a command prompt</li>
<li>run the command: netstat –ano | find /i “9999”</li>
<li>In my case I had an output that showed TCP    0.0.0.0:9999           0.0.0.0:0              LISTENING</li>
<li>After identifying that port 9999 was already in use, it was a simple matter to change the port that the Flash Builder 4 Profiler uses</li>
<li>Launch Flash Builder</li>
<li>Go to Windows &gt; Prefrences</li>
<li>Go to Flash Builder &gt; Profiler &gt; Connections</li>
<li>Change the port number to something that isn&#8217;t being used according to your test.txt file (we used 9997)</li>
<li>Click Apply &gt; Ok</li>
<li>Close Flash Builder</li>
<li>Launch Flash Builder</li>
<li>Launch the Profiler</li>
<li>WORKS!</li>
</ol>
<p>I have to say this is one of the worst support cases I&#8217;ve ever had the luck to be involved in. If I didn&#8217;t have bad luck. I&#8217;d have no luck at all.</p>
<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/adobe-worst-customer-support-ever/' addthis:title='Adobe: Worst Customer Support Ever &#8211; Flash Builder 4 Premium Profiler Not Working ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.golen.net/blog/adobe-worst-customer-support-ever/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>FIX: IE7 Drop Down Menu Appearing Behind Other Elements</title>
		<link>http://www.golen.net/blog/fix-ie7-drop-down-menu-appearing-behind-other-elements/</link>
		<comments>http://www.golen.net/blog/fix-ie7-drop-down-menu-appearing-behind-other-elements/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 15:24:30 +0000</pubDate>
		<dc:creator>Tim Golen</dc:creator>
				<category><![CDATA[jqtouch]]></category>
		<category><![CDATA[My PHP / MySQL Life]]></category>
		<category><![CDATA[behind]]></category>
		<category><![CDATA[behind elements]]></category>
		<category><![CDATA[drop down]]></category>
		<category><![CDATA[ie7]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[menu]]></category>

		<guid isPermaLink="false">http://www.golen.net/blog/?p=1080</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/fix-ie7-drop-down-menu-appearing-behind-other-elements/' addthis:title='FIX: IE7 Drop Down Menu Appearing Behind Other Elements ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>I ran into an interesting problem today with a wordpress theme that I developed for a client. I was using the same drop-down menu from the new TwentyTen theme, and everything was working fine&#8230; or so I thought. As it &#8230; <a href="http://www.golen.net/blog/fix-ie7-drop-down-menu-appearing-behind-other-elements/">Continue reading <span class="meta-nav">&#8594;</span></a><div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/fix-ie7-drop-down-menu-appearing-behind-other-elements/' addthis:title='FIX: IE7 Drop Down Menu Appearing Behind Other Elements ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/fix-ie7-drop-down-menu-appearing-behind-other-elements/' addthis:title='FIX: IE7 Drop Down Menu Appearing Behind Other Elements ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div><p>I ran into an interesting problem today with a wordpress theme that I developed for a client. I was using the same drop-down menu from the new TwentyTen theme, and everything was working fine&#8230; or so I thought. As it turns out, when viewing the theme in IE7, the drop-down menu was appearing behind other elements on the page.</p>
<p><span id="more-1080"></span>I quickly turned to Google to see if a solution had already been found for something like this. I knew it was only happening in IE7 and all other browsers rendered it properly. I also had figured that it was a z-index problem. I soon learned that many other people have had the exact same problem that I was having. The bad news is that there were no real solutions to fix the problem. Luckily, for everyone&#8217;s enjoyment, I have found a simple and elegant solution that fixes it once and for all.</p>
<p>The solution:</p>
<p>Take the content that is being put in front of the drop-down and for IE browsers only, set the z-index value as a negative. Many solutions say to just make the menu have a high z-index value, but I tried that to no avail. I also saw that it wasn&#8217;t a viable solution for at least half of the people out there who were experiencing the problem. I used jquery to implement the solution like this:</p>
<p><code></p>
<pre>$(document).ready(function() {
    // lower the z-index to negative to fix the overlapping drop-down menu problem
    // for IE 7 browsers only
    if(!jQuery.support.leadingWhitespace){
        $('#home_header').css('z-index', -2);
    }
});</pre>
<p></code></p>
<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/fix-ie7-drop-down-menu-appearing-behind-other-elements/' addthis:title='FIX: IE7 Drop Down Menu Appearing Behind Other Elements ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.golen.net/blog/fix-ie7-drop-down-menu-appearing-behind-other-elements/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>JQTouch &#8211; AJAX PHP Login Form</title>
		<link>http://www.golen.net/blog/jqtouch-ajax-php-login-form/</link>
		<comments>http://www.golen.net/blog/jqtouch-ajax-php-login-form/#comments</comments>
		<pubDate>Sun, 30 May 2010 04:01:40 +0000</pubDate>
		<dc:creator>Tim Golen</dc:creator>
				<category><![CDATA[jqtouch]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[cookie]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.golen.net/blog/?p=738</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/jqtouch-ajax-php-login-form/' addthis:title='JQTouch &#8211; AJAX PHP Login Form ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>It seems a lot of users lately have been asking questions about AJAX forms with JQTouch and wondering how they work. I have put together some video tutorials which walks you through creating a login form from scratch. The form &#8230; <a href="http://www.golen.net/blog/jqtouch-ajax-php-login-form/">Continue reading <span class="meta-nav">&#8594;</span></a><div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/jqtouch-ajax-php-login-form/' addthis:title='JQTouch &#8211; AJAX PHP Login Form ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/jqtouch-ajax-php-login-form/' addthis:title='JQTouch &#8211; AJAX PHP Login Form ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div><p>It seems a lot of users lately have been asking questions about AJAX forms with JQTouch and wondering how they work. I have put together some video tutorials which walks you through creating a login form from scratch. The form submits via AJAX, validates the form variables, then uses a cookie based system to remember if you&#8217;ve logged in or not. Please leave me comments if you like what I&#8217;ve put together or if you have any questions or feedback.</p>
<p>You can download a copy of the code <a href="http://www.golen.net/blog/wp-content/uploads/2010/05/jqtouch.zip">here</a></p>
<p><a href="http://golen.net/videos/jqt_01">Part 1: Creating the home page</a></p>
<p><a href="http://golen.net/videos/jqt_02">Part 2: Creating the form handler</a></p>
<p><a href="http://golen.net/videos/jqt_03">Part 3: Creating the logoff handler and adding logic to the home page</a></p>
<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.golen.net/blog/jqtouch-ajax-php-login-form/' addthis:title='JQTouch &#8211; AJAX PHP Login Form ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.golen.net/blog/jqtouch-ajax-php-login-form/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

