<?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>Web Development Blog &#187; PHP</title>
	<atom:link href="http://eisabainyo.net/weblog/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://eisabainyo.net/weblog</link>
	<description>Web Development, Web Design, Web Applications, Web 2.0, AJAX, WordPress Themes, Search Engine Optimisation, Latest Technologies and more..</description>
	<lastBuildDate>Tue, 22 May 2012 08:47:05 +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>Creating a Contact Form in jQuery Mobile and PHP</title>
		<link>http://eisabainyo.net/weblog/2011/06/29/creating-a-contact-form-in-jquery-mobile-and-php/</link>
		<comments>http://eisabainyo.net/weblog/2011/06/29/creating-a-contact-form-in-jquery-mobile-and-php/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 06:39:11 +0000</pubDate>
		<dc:creator>eisabai</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://eisabainyo.net/weblog/?p=1758</guid>
		<description><![CDATA[This is a step-by-step tutorial on how to create a contact form in jQuery Mobile. I have also included complete php source code that can be used as a web service to send emails from your server. Download 1. Create a folder structure The first thing you need to do is create a folder structure [...]]]></description>
			<content:encoded><![CDATA[<p>This is a step-by-step tutorial on how to create a contact form in jQuery Mobile.  I have also included complete php source code that can be used as a web service to send emails from your server.  </p>
<div class="download">
<h3>Download</h3>
<form id="edd_purchase_1910" action="" method="POST"><div class="edd_purchase_submit_wrapper"><span class="edd_button edd_add_to_cart_wrap edd_gray"><span class="edd_button_outer"><span class="edd_button_inner"><input type="submit" class="edd_button_text edd-submit edd-add-to-cart" name="edd_purchase_download" value="Download complete source code $10.00" data-action="edd_add_to_cart" data-download-id="1910"/></span></span></span><a href="http://eisabainyo.net/weblog/checkout/" class="edd_go_to_checkout edd_button edd_gray" style="display:none;"><span class="edd_button_outer"><span class="edd_button_inner"><span class="edd_button_text"><span>Checkout</span></span></span></span></a><img src="http://eisabainyo.net/weblog/wp-content/plugins/easy-digital-downloads/includes/images/loading.gif" class="edd-cart-ajax" style="display: none;"/>&nbsp;<span style="display:none;" class="edd-cart-added-alert">added to your cart</span></div><!--end .edd_purchase_submit_wrapper--><input type="hidden" name="download_id" value="1910"><input type="hidden" name="edd_action" value="add_to_cart"></form><!--end #edd_purchase_1910--></div>
<p><strong>1. Create a folder structure<br />
</strong>The first thing you need to do is create a folder structure where all your files will live.  My folder structure is as follows:</p>
<pre>- www
-- api
--- send.php
-- js
--- contact.js
-- css
--- contact.css
-- index.html
</pre>
<p><strong>2. Copy and paste the following boilerplate template</strong><br />
This will go into index.html file that you&#8217;ve created.  Note that we are including the Javascript and CSS files from the jQuery Mobile server.  You can also download the latest version of <a href="http://jquerymobile.com/">jQuery Mobile</a> from the website and include the local copy.  </p>
<pre>
&lt;!DOCTYPE html&gt;
&lt;html&gt;
	&lt;head&gt;
	&lt;title&gt;Contact Us&lt;/title&gt;
	&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot; /&gt;
	&lt;link rel=&quot;stylesheet&quot; href=&quot;http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.css&quot; /&gt;
	&lt;script type=&quot;text/javascript&quot; src=&quot;http://code.jquery.com/jquery-1.6.1.min.js&quot;&gt;&lt;/script&gt;
	&lt;script type=&quot;text/javascript&quot; src=&quot;http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.js&quot;&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt; 

&lt;div data-role=&quot;page&quot;&gt;

	&lt;div data-role=&quot;header&quot;&gt;
		&lt;h1&gt;Contact Us&lt;/h1&gt;
	&lt;/div&gt;&lt;!-- /header --&gt;

	&lt;div data-role=&quot;content&quot;&gt;
		&lt;!-- Content goes here --&gt;
	&lt;/div&gt;&lt;!-- /content --&gt;

	&lt;div data-role=&quot;footer&quot;&gt;
		&lt;p&gt;Source code by &lt;a href=&quot;http://eisabainyo.net/weblog&quot; rel=&quot;external&quot;&gt;Web Development Blog&lt;/a&gt;.  Check out &lt;a href=&quot;http://eisabainyo.net/weblog/tips-resources&quot; rel=&quot;external&quot;&gt;tip &amp;amp; resources&lt;/a&gt; for Web Developers.&lt;/a&gt;&lt;/p&gt;
	&lt;/div&gt;&lt;!-- /footer --&gt;
&lt;/div&gt;&lt;!-- /page --&gt;

&lt;/body&gt;
&lt;/html&gt;
</pre>
<p><strong>3. Add HTML form in the content area</strong><br />
Add the following code into &lt;div data-role=&#8221;content&#8221;&gt;</p>
<pre>
		&lt;div class=&quot;contact-thankyou&quot; style="display: none;"&gt;
			Thank you.  Your message has been sent.  We will get back to you as soon as we can.
		&lt;/div&gt;
		&lt;div class=&quot;contact-form&quot;&gt;
			&lt;p class=&quot;mandatory&quot;&gt;* indicates Manadatory Field&lt;/p&gt;
			&lt;div data-role=&quot;fieldcontain&quot; class=&quot;text-field&quot;&gt;
				&lt;label for=&quot;firstname&quot;&gt;First Name*:&lt;/label&gt;
				&lt;input type=&quot;text&quot; name=&quot;firstname&quot; value=&quot;&quot; placeholder=&quot;&quot; class=&quot;required&quot; id=&quot;firstname&quot; /&gt;
			&lt;/div&gt;
			&lt;div data-role=&quot;fieldcontain&quot; class=&quot;text-field&quot;&gt;
				&lt;label for=&quot;surname&quot;&gt;Last Name:&lt;/label&gt;
				&lt;input type=&quot;text&quot; name=&quot;surname&quot; value=&quot;&quot; placeholder=&quot;&quot; id=&quot;surname&quot; /&gt;
			&lt;/div&gt;
			&lt;div data-role=&quot;fieldcontain&quot; class=&quot;text-field&quot;&gt;
				&lt;label for=&quot;email&quot;&gt;Email Address*:&lt;/label&gt;
				&lt;input type=&quot;email&quot; name=&quot;email&quot; value=&quot;&quot; placeholder=&quot;&quot; class=&quot;required&quot; id=&quot;email&quot;  /&gt;
			&lt;/div&gt;
			&lt;div data-role=&quot;fieldcontain&quot; class=&quot;text-field&quot;&gt;
				&lt;label for=&quot;mobilephone&quot;&gt;Mobile Number:&lt;/label&gt;
				&lt;input type=&quot;number&quot; name=&quot;mobilephone&quot; value=&quot;&quot; placeholder=&quot;&quot; id=&quot;mobilephone&quot; /&gt;
			&lt;/div&gt;
			&lt;div data-role=&quot;fieldcontain&quot;&gt;
				&lt;label for=&quot;state&quot;&gt;State:*&lt;/label&gt;
					&lt;select name=&quot;state&quot; class=&quot;required&quot; id=&quot;state&quot;&gt;
						&lt;option value=&quot;&quot; data-placeholder=&quot;true&quot;&gt;Please select your state&lt;/option&gt;
						&lt;option value=&quot;ACT&quot;&gt;ACT&lt;/option&gt;
						&lt;option value=&quot;NSW&quot;&gt;NSW&lt;/option&gt;
						&lt;option value=&quot;NT&quot;&gt;NT&lt;/option&gt;
						&lt;option value=&quot;QLD&quot;&gt;QLD&lt;/option&gt;
						&lt;option value=&quot;SA&quot;&gt;SA&lt;/option&gt;
						&lt;option value=&quot;TAS&quot;&gt;TAS&lt;/option&gt;
						&lt;option value=&quot;VIC&quot;&gt;VIC&lt;/option&gt;
						&lt;option value=&quot;WA&quot;&gt;WA&lt;/option&gt;
					&lt;/select&gt;
			&lt;/div&gt;
			&lt;div data-role=&quot;fieldcontain&quot;&gt;
				&lt;label for=&quot;message&quot;&gt;Message*:&lt;/label&gt;
				&lt;textarea name=&quot;message&quot; id=&quot;message&quot; placeholder=&quot;&quot; class=&quot;required&quot;&gt;&lt;/textarea&gt;
			&lt;/div&gt;
			&lt;div class=&quot;send&quot;&gt;&lt;a href=&quot;javascript:;&quot; data-role=&quot;button&quot; data-theme=&quot;a&quot; data-iconpos=&quot;right&quot; id=&quot;send-feedback&quot;&gt;send feedback&lt;/a&gt;&lt;/div&gt;
		&lt;/div&gt;&lt;!-- //.contact-form --&gt;
		</pre>
<p><strong>4. Create a web service in PHP to send email<br />
</strong>We have a folder called api and we will create a new file called send.php in the api folder.  You will need to change the $recipient variable.</p>
<pre>
&lt;?php
header('content-type: application/json; charset=utf-8');

if (isset($_GET[&quot;firstname&quot;])) {
	$firstname = strip_tags($_GET['firstname']);
	$surname = strip_tags($_GET['surname']);
	$email = strip_tags($_GET['email']);
	$mobilephone = strip_tags($_GET['mobilephone']);
	$state = strip_tags($_GET['state']);
	$message = strip_tags($_GET['message']);
	$header = &quot;From: &quot;. $firstname . &quot; &lt;&quot; . $email . &quot;&gt;rn&quot;; 

	$ip = $_SERVER['REMOTE_ADDR'];
	$httpref = $_SERVER['HTTP_REFERER'];
	$httpagent = $_SERVER['HTTP_USER_AGENT'];
	$today = date(&quot;F j, Y, g:i a&quot;);    

	$recipient = 'YOUREMAILADDRESS@DOMAIN.COM';
	$subject = 'Contact Form';
	$mailbody = &quot;
First Name: $firstname
Last Name: $surname
Email: $email
Mobile Phone: $mobilephone
State: $state
Message: $message

IP: $ip
Browser info: $httpagent
Referral: $httpref
Sent: $today
&quot;;
	$result = 'success';

	if (mail($recipient, $subject, $mailbody, $header)) {
		echo json_encode($result);
	}
}
?&gt;
</pre>
<p><strong>5. Add Javascript code to handle form onsubmit<br />
</strong>Create a file called contact.js with the following content and include it in your HTML file.</p>
<pre>
$('#send-feedback').live(&quot;click&quot;, function() {
	var url = 'api/send.php';
	var error = 0;
	var $contactpage = $(this).closest('.ui-page');
	var $contactform = $(this).closest('.contact-form');
	$('.required', $contactform).each(function (i) {
        if ($(this).val() === '') {
			error++;
        }
	}); // each
	if (error &gt; 0) {
			alert('Please fill in all the mandatory fields. Mandatory fields are marked with an asterisk *.');
	} else {
		var firstname = $contactform.find('input[name=&quot;firstname&quot;]').val();
		var surname = $contactform.find('input[name=&quot;surname&quot;]').val();
		var state = $contactform.find('select[name=&quot;state&quot;]').val();
		var mobilephone = $contactform.find('input[name=&quot;mobilephone&quot;]').val();
		var email = $contactform.find('input[name=&quot;email&quot;]').val();
		var message = $contactform.find('textarea[name=&quot;message&quot;]').val();	

		//submit the form
		$.ajax({
			type: &quot;GET&quot;,
			url: url,
			data: {firstname:firstname, surname:surname, state: state, mobilephone: mobilephone, email: email, message: message},
            success: function (data) {
				if (data == 'success') {
					// show thank you
					$contactpage.find('.contact-thankyou').show();
					$contactpage.find('.contact-form').hide();
				}  else {
					alert('Unable to send your message. Please try again.');
				}
			}
		}); //$.ajax

	}
	return false;
});
</pre>
<p>After completing all the above steps, you will have a fully functional contact form built using jQuery Mobile, HTML5, and PHP.</p>
<div class="download">
<h3>Download</h3>
<form id="edd_purchase_1910" action="" method="POST"><div class="edd_purchase_submit_wrapper"><span class="edd_button edd_add_to_cart_wrap edd_gray"><span class="edd_button_outer"><span class="edd_button_inner"><input type="submit" class="edd_button_text edd-submit edd-add-to-cart" name="edd_purchase_download" value="Download complete source code $10.00" data-action="edd_add_to_cart" data-download-id="1910"/></span></span></span><a href="http://eisabainyo.net/weblog/checkout/" class="edd_go_to_checkout edd_button edd_gray" style="display:none;"><span class="edd_button_outer"><span class="edd_button_inner"><span class="edd_button_text"><span>Checkout</span></span></span></span></a><img src="http://eisabainyo.net/weblog/wp-content/plugins/easy-digital-downloads/includes/images/loading.gif" class="edd-cart-ajax" style="display: none;"/>&nbsp;<span style="display:none;" class="edd-cart-added-alert">added to your cart</span></div><!--end .edd_purchase_submit_wrapper--><input type="hidden" name="download_id" value="1910"><input type="hidden" name="edd_action" value="add_to_cart"></form><!--end #edd_purchase_1910--></div>
<p><img src="http://eisabainyo.net/weblog/wp-content/uploads/2011/06/contact-jquerymobile.jpg" alt="" title="Contact Form in jQuery Mobile" width="320" height="928" class="alignnone size-full wp-image-1774" /><br />
Screenshot of Contact Form in jQuery Mobile</p>
]]></content:encoded>
			<wfw:commentRss>http://eisabainyo.net/weblog/2011/06/29/creating-a-contact-form-in-jquery-mobile-and-php/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>How to customise WordPress Admin Login page</title>
		<link>http://eisabainyo.net/weblog/2010/05/10/how-to-customise-wordpress-admin-login-page/</link>
		<comments>http://eisabainyo.net/weblog/2010/05/10/how-to-customise-wordpress-admin-login-page/#comments</comments>
		<pubDate>Mon, 10 May 2010 12:49:11 +0000</pubDate>
		<dc:creator>eisabai</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://eisabainyo.net/weblog/?p=1439</guid>
		<description><![CDATA[Here is a step-by-step tutorial on how to customise WordPress Login page for your website/blog. This tutorial will show you how to change the WordPress logo and link on the Login page without hacking the core code nor installing a plugin. 1. Copy and paste the following code into functions.php file of your current theme. [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a step-by-step tutorial on how to customise WordPress Login page for your website/blog.  This tutorial will show you how to change the WordPress logo and link on the Login page without hacking the core code nor installing a plugin.  </p>
<p>1.  Copy and paste the following code into functions.php file of your current theme.  If there is no functions.php in your current theme folder, create one.  </p>
<pre>
&lt;?php
function custom_header() {
    echo '&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;' . get_bloginfo('template_directory') . '/admin/login.css&quot; /&gt;';
    echo '&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;';
    echo '&lt;script type=&quot;text/javascript&quot; src=&quot;' . get_bloginfo('template_directory') . '/admin/login.js&quot;&gt;&lt;/script&gt;';
}
add_action('login_head', 'custom_header');
?&gt;
</pre>
<p>2. Create a folder called admin in your current theme folder.  This is where you will put all your css, js and images for the custom Login page.  I like to create a separate folder for admin css and images because it keeps things neat and clean.  </p>
<p>3.  Create a css file and name it login.css.  You can give it any name you wish but remember to change it accordingly in custom_header() function in functions.php file of your current WordPress theme.  In this css file, you will be putting CSS overrides for the WordPress login page.  Mine looks like this: </p>
<pre>
#login h1 a {
	background: transparent url(images/logo.gif) no-repeat scroll 0 0;
	display: block;
	height: 66px;
	text-indent: -5000em;
	width: 386px;
}

#login {
	width: 368px;
}
</pre>
<p>The above code simply replaces the WordPress logo above the Login box with the custom logo I have in images folder and makes the width of the login box a bit wider.   You can do many other things from this CSS file to customise your WordPress login page; for example, changing the background image, changing the text styles, changing the look and feel of buttons, etc.  </p>
<p>4. Create a javascript file called login.js in admin folder of the current WordPress theme that you have created earlier.   As with the css file, you can name it any thing you like, just as long as it matches the one used in custom_header() function.   And because I have also included jQuery library from <a href="http://code.google.com/apis/ajaxlibs/">Google AJAX Libraries API</a>, I can use jQuery methods to overwrite any event or perform new actions via login.js javascript.  My login.js file looks like below: </p>
<pre>
$(document).ready(function(){
	$("#login h1 a").attr("href", "/");
});
</pre>
<p>The above code replaces the href attribute of the logo link via DOM.  So rather than going to the WordPress website when someone clicks on the logo on Login page, it will go to the website&#8217;s homepage. </p>
<p>So, that&#8217;s it.  4 simple steps to customising your WordPress Admin Login page.   If you are using WordPress as a CMS, it is a good idea to customise the Admin Login page to ensure that you get a similar user experience and look and feel for both the front end of the website and the backend.    For your inspiration, have a look at this Flickr Group Pool featuring a collection of <a href="http://www.flickr.com/groups/bm-custom-login/pool/">Custom WordPress Logins</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://eisabainyo.net/weblog/2010/05/10/how-to-customise-wordpress-admin-login-page/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Display 5 latest posts in each category in WordPress</title>
		<link>http://eisabainyo.net/weblog/2010/03/10/display-5-latest-posts-in-each-category-in-wordpress/</link>
		<comments>http://eisabainyo.net/weblog/2010/03/10/display-5-latest-posts-in-each-category-in-wordpress/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 12:34:24 +0000</pubDate>
		<dc:creator>eisabai</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://eisabainyo.net/weblog/?p=1285</guid>
		<description><![CDATA[To display 5 latest posts in each parent category of your WordPress blog, add the following code into the template that you want the result to appear. In our case, we added the following code into our 404 template page (404.php of current theme). Other places that you might want to display a list of [...]]]></description>
			<content:encoded><![CDATA[<p>To display 5 latest posts in each parent category of your WordPress blog, add the following code into the template that you want the result to appear.   In our case, we added the following code into our <a href="http://eisabainyo.net/weblog/404">404</a> template page (404.php of current theme).  Other places that you might want to display a list of posts by category are: 1) Footer, 2) <a href="http://eisabainyo.net/weblog/archive/">WordPress Custom Archive Page</a>, 3) <a href="http://eisabainyo.net/weblog/search/">WordPress Custom Search Page</a>, 4) WordPress Landing Page and so on. </p>
<p><img src="http://eisabainyo.net/weblog/wp-content/uploads/2010/03/404-wide.gif" alt="" title="Screenshot of 404 page with a list of posts by category" width="400" height="276" class="alignnone size-full wp-image-1286" /><br />
<small>Screenshot of 404 page with a list of posts by category (Wide View)</small></p>
<p><img src="http://eisabainyo.net/weblog/wp-content/uploads/2010/03/404-narrow.gif" alt="" title="Screenshot of 404 page with a list of posts by category" width="330" class="alignnone size-full wp-image-1292" /><br />
<small>Screenshot of 404 page with a list of posts by category (Narrow View)</small></p>
<p><strong>WordPress PHP Code</strong></p>
<pre>&lt;div id=&quot;page-not-found&quot; class=&quot;post-page&quot;&gt;

&lt;?php
$cat_args = array(
  'orderby' =&gt; 'name',
  'order' =&gt; 'ASC',
  'child_of' =&gt; 0
);

$categories =   get_categories($cat_args); 

foreach($categories as $category) {
    echo '&lt;dl&gt;';
    echo '&lt;dt&gt; &lt;a href=&quot;' . get_category_link( $category-&gt;term_id ) . '&quot; title=&quot;' . sprintf( __( &quot;View all posts in %s&quot; ), $category-&gt;name ) . '&quot; ' . '&gt;' . $category-&gt;name.'&lt;/a&gt;&lt;/dt&gt;';

     $post_args = array(
      'numberposts' =&gt; 5,
      'category' =&gt; $category-&gt;term_id
    );

    $posts = get_posts($post_args);

	foreach($posts as $post) {
	?&gt;
		&lt;dd&gt;&lt;a href=&quot;&lt;?php the_permalink(); ?&gt;&quot;&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/dd&gt;
	&lt;?php
	}
	echo '&lt;dd class=&quot;view-all&quot;&gt; &lt;a href=&quot;' . get_category_link( $category-&gt;term_id ) . '&quot; title=&quot;' . sprintf( __( &quot;View all posts in %s&quot; ), $category-&gt;name ) . '&quot; ' . '&gt;View all posts in ' . $category-&gt;name.'&lt;/a&gt;&lt;/dd&gt;';
	echo '&lt;/dl&gt;';
}
?&gt;
&lt;div class=&quot;page-end&quot;&gt;&lt;!-- --&gt;&lt;/div&gt;

&lt;/div&gt;
</pre>
<p><strong>CSS</strong></p>
<pre>
#page-not-found dl {
width: 200px;
float: left;
padding: 0 18px 0 0;
height: 250px;
}

#page-not-found dt {
font-weight: bold;
font-size: 1.1em;
padding: 10px 0;
}

#page-not-found dt a {
color: #b0bf32;
}

#page-not-found dd.view-all {
border-top: 1px solid #c9c9c9;
font-size: 0.9em;
margin: 5px 0;
padding: 2px 0 0;
text-align: right;
}

#page-not-found dd.view-all a {
color: #999;
}

.page-end {
clear: both;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eisabainyo.net/weblog/2010/03/10/display-5-latest-posts-in-each-category-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>25 Most Dangerous Programming Errors</title>
		<link>http://eisabainyo.net/weblog/2010/02/23/25-most-dangerous-programming-errors/</link>
		<comments>http://eisabainyo.net/weblog/2010/02/23/25-most-dangerous-programming-errors/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 04:51:36 +0000</pubDate>
		<dc:creator>eisabai</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[WWW]]></category>

		<guid isPermaLink="false">http://eisabainyo.net/weblog/?p=1026</guid>
		<description><![CDATA[As you can see in the table below, Cross-Site Scripting, SQL Injection and Buffer overflows are three most common and serious programming errors that result in vulnerabilities. This list was published recently on 17 February 2010. Rank Name [1] Failure to Preserve Web Page Structure (&#39;Cross-site Scripting&#39;) [2] Improper Sanitization of Special Elements used in [...]]]></description>
			<content:encoded><![CDATA[<p>As you can see in the table below, Cross-Site Scripting, SQL Injection and Buffer overflows are three most common and serious programming errors that result in vulnerabilities.   This list was published recently on 17 February 2010.  </p>
<table border="0" cellpadding="0" cellspacing="5" width="100%">
<tbody>
<tr>
<th>
				Rank</th>
<th>
				Name</th>
</tr>
<tr>
<td>
				<b>[1]</b></td>
<td>
				Failure to Preserve Web Page Structure (&#39;Cross-site Scripting&#39;)</td>
</tr>
<tr>
<td>
				<b>[2]</b></td>
<td>
				Improper Sanitization of Special Elements used in an SQL Command (&#39;SQL Injection&#39;)</td>
</tr>
<tr>
<td>
				<b>[3]</b></td>
<td>
				Buffer Copy without Checking Size of Input (&#39;Classic Buffer Overflow&#39;)</td>
</tr>
<tr>
<td>
				<b>[4]</b></td>
<td>
				Cross-Site Request Forgery (CSRF)</td>
</tr>
<tr>
<td>
				<b>[5]</b></td>
<td>
				Improper Access Control (Authorization)</td>
</tr>
<tr>
<td>
				<b>[6]</b></td>
<td>
				Reliance on Untrusted Inputs in a Security Decision</td>
</tr>
<tr>
<td>
				<b>[7]</b></td>
<td>
				Improper Limitation of a Pathname to a Restricted Directory (&#39;Path Traversal&#39;)</td>
</tr>
<tr>
<td>
				<b>[8]</b></td>
<td>
				Unrestricted Upload of File with Dangerous Type</td>
</tr>
<tr>
<td>
				<b>[9]</b></td>
<td>
				Improper Sanitization of Special Elements used in an OS Command (&#39;OS Command Injection&#39;)</td>
</tr>
<tr>
<td>
				<b>[10]</b></td>
<td>
				Missing Encryption of Sensitive Data</td>
</tr>
<tr>
<td>
				<b>[11]</b></td>
<td>
				Use of Hard-coded Credentials</td>
</tr>
<tr>
<td>
				<b>[12]</b></td>
<td>
				Buffer Access with Incorrect Length Value</td>
</tr>
<tr>
<td>
				<b>[13]</b></td>
<td>
				Improper Control of Filename for Include/Require Statement in PHP Program (&#39;PHP File Inclusion&#39;)</td>
</tr>
<tr>
<td>
				<b>[14]</b></td>
<td>
				Improper Validation of Array Index</td>
</tr>
<tr>
<td>
				<b>[15]</b></td>
<td>
				Improper Check for Unusual or Exceptional Conditions</td>
</tr>
<tr>
<td>
				<b>[16]</b></td>
<td>
				Information Exposure Through an Error Message</td>
</tr>
<tr>
<td>
				<b>[17]</b></td>
<td>
				Integer Overflow or Wraparound</td>
</tr>
<tr>
<td>
				<b>[18]</b></td>
<td>
				Incorrect Calculation of Buffer Size</td>
</tr>
<tr>
<td>
				<b>[19]</b></td>
<td>
				Missing Authentication for Critical Function</td>
</tr>
<tr>
<td>
				<b>[20]</b></td>
<td>
				Download of Code Without Integrity Check</td>
</tr>
<tr>
<td>
				<b>[21]</b></td>
<td>
				Incorrect Permission Assignment for Critical Resource</td>
</tr>
<tr>
<td>
				<b>[22]</b></td>
<td>
				Allocation of Resources Without Limits or Throttling</td>
</tr>
<tr>
<td>
				<b>[23]</b></td>
<td>
				URL Redirection to Untrusted Site (&#39;Open Redirect&#39;)</td>
</tr>
<tr>
<td>
				<b>[24]</b></td>
<td>
				Use of a Broken or Risky Cryptographic Algorithm</td>
</tr>
<tr>
<td>
				<b>[25]</b></td>
<td>
				Race Condition</td>
</tr>
</tbody>
</table>
<p>Source: <a href="http://cwe.mitre.org/top25/">2010 CWE/SANS Top 25 Most Dangerous Programming Errors</a></p>
]]></content:encoded>
			<wfw:commentRss>http://eisabainyo.net/weblog/2010/02/23/25-most-dangerous-programming-errors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book Review: Drupal 6 Content Administration</title>
		<link>http://eisabainyo.net/weblog/2009/08/13/book-review-drupal-6-content-administration/</link>
		<comments>http://eisabainyo.net/weblog/2009/08/13/book-review-drupal-6-content-administration/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 03:17:57 +0000</pubDate>
		<dc:creator>eisabai</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://eisabainyo.net/weblog/?p=724</guid>
		<description><![CDATA[I have just finished reading Drupal 6 Content Administration by J. Ayen Green. It has 8 chapters (196 pages) in total but the writing style is very simple and easy to understand that I finished it quite quickly. This book is mainly for content editors who have not used Drupal before and want to know [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.packtpub.com/drupal-6-content-administration/mid/mid/120809r139yx?utm_source=eisabainyo.net%2Fweblog&#038;utm_medium=bookrev&#038;utm_content=blog&#038;utm_campaign=mdb_000229"><img src="http://eisabainyo.net/weblog/wp-content/uploads/2009/08/drupal-content-admin.jpg" alt="Drupal 6 Content Administration" title="Drupal 6 Content Administration" width="240" height="240" class="alignleft size-full wp-image-725" /></a>I have just finished reading Drupal 6 Content Administration by J. Ayen Green.  It has 8 chapters (196 pages) in total but the writing style is very simple and easy to understand that I finished it quite quickly.  </p>
<p>This book is mainly for content editors who have not used Drupal before and want to know how to run a website built on Drupal.  It will also come in handy for project managers who want to find out if Drupal is suitable for their website and what skills are required to manage a website built on Drupal. But it&#8217;s not for professional Drupal users and developers because they would probably already knew most of the topics covered in the book.  </p>
<p><strong>Pros:</strong></p>
<ul>
<li>Uses an example site with screenshots, which helps you understand how Drupal is used in a real-life website</li>
<li>Explains many Drupal lingo and their usages in a clear and concise manner</li>
<li>Shows different ways that content administrators may use to take more control of the website rather than just creating and editing content</li>
</ul>
<p><strong>Cons: </strong></p>
<ul>
<li>As mentioned, this book is not for professional Drupal users and developers because the book mostly covers the basics of running a Drupal website</li>
<li>Some chapters, in particular Chapter 4 Advanced Content Editing, requires technical and coding knowledge which most content producers do not have</li>
</ul>
<p><strong>My Quick Overview</strong><br />
<em>Read the full <a href="http://www.packtpub.com/drupal-6-content-administration/mid/mid/120809r139yx?utm_source=eisabainyo.net%2Fweblog&#038;utm_medium=bookrev&#038;utm_content=blog&#038;utm_campaign=mdb_000229">Table of Contents</a> at the Publisher&#8217;s website. </em></p>
<p>Chapter 1 &#8211; 3  &#8211; Introduction to Drupal and some basics to get you started.</p>
<p>Chapter 4 &#8211; Cover technical details.  For advanced content editors with HTML and coding knowledge. </p>
<p>Chapter 5 &#8211; Talks about how to set up Taxonomy, tag cloud and friendly URLs.  My favourite chapter of the book because it is specific to Drupal and I believe most producers will find this useful.   </p>
<p>Chapter 6 &#8211; Covers Rich Content Types.  It shows how powerful Drupal is by giving content producers more control to manage the website.  Another favourite chapter of mine! </p>
<p>Chapter 7 &#8211; Gives a comprehensive example of roles and permissions you can create.  It also shows how easy it is to block a certain user from certain areas of the website. </p>
<p>Chapter 8 &#8211; Explains three ways to create content outside Drupal environment.  </p>
<p>Appendix A is a bonus chapter which explains the steps involved in installing a Drupal website.  Being a technical person, I find it quite useful but it&#8217;s probably too technical for most content producers. </p>
<p>Overall, I find this book an easy read covering basics of content creation and maintenance for a Drupal website which the target audience will find useful.  </p>
]]></content:encoded>
			<wfw:commentRss>http://eisabainyo.net/weblog/2009/08/13/book-review-drupal-6-content-administration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Display a download dialog for pdf in PHP</title>
		<link>http://eisabainyo.net/weblog/2009/06/30/display-a-download-dialog-for-pdf-in-php/</link>
		<comments>http://eisabainyo.net/weblog/2009/06/30/display-a-download-dialog-for-pdf-in-php/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 03:15:41 +0000</pubDate>
		<dc:creator>eisabai</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Snippets]]></category>

		<guid isPermaLink="false">http://eisabainyo.net/weblog/?p=694</guid>
		<description><![CDATA[In order to display a download dialog for pdf file rather than opening it in the browser, we can put the following snippet of code in a php file and name the file download.php. The path to the pdf file is specified in $filename variable. You can also pass filename as a parameter in the [...]]]></description>
			<content:encoded><![CDATA[<p>In order to display a download dialog for pdf file rather than opening it in the browser, we can put the following snippet of code in a php file and name the file download.php.</p>
<p>The path to the pdf file is specified in $filename variable.  You can also pass filename as a parameter in the URL but you will need to check for Cross Site Scripting (XSS) and various script injection attempts if you decide to get the filename from the URL paramater.  </p>
<pre>
  $filename = '/path/to/your/file/download.pdf';
  header(&quot;Pragma: public&quot;);
  header(&quot;Expires: 0&quot;);
  header(&quot;Pragma: no-cache&quot;);
  header(&quot;Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0&quot;);
  header(&quot;Content-Type: application/force-download&quot;);
  header(&quot;Content-Type: application/octet-stream&quot;);
  header(&quot;Content-Type: application/download&quot;);
  header('Content-disposition: attachment; filename=' . basename($filename));
  header(&quot;Content-Type: application/pdf&quot;);
  header(&quot;Content-Transfer-Encoding: binary&quot;);
  header('Content-Length: ' . filesize($filename));
  @readfile($filename);
  exit(0);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eisabainyo.net/weblog/2009/06/30/display-a-download-dialog-for-pdf-in-php/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Building a real estate website using WordPress</title>
		<link>http://eisabainyo.net/weblog/2009/05/27/building-a-real-estate-website-using-wordpress/</link>
		<comments>http://eisabainyo.net/weblog/2009/05/27/building-a-real-estate-website-using-wordpress/#comments</comments>
		<pubDate>Wed, 27 May 2009 05:37:21 +0000</pubDate>
		<dc:creator>eisabai</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Development Blog]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://eisabainyo.net/weblog/?p=632</guid>
		<description><![CDATA[One of our latest projects at Anansi Web Development was to build a real estate website with a simple CMS. And I thought, rather than building something from the scratch, why don&#8217;t we use WordPress as a CMS and add necessary functionalities. And therefore, here are the steps involved in building a real estate website [...]]]></description>
			<content:encoded><![CDATA[<p>One of our latest projects at <a href="http://www.anansi.com.au">Anansi Web Development</a> was to build a real estate website with a simple CMS.   And I thought, rather than building something from the scratch, why don&#8217;t we use WordPress as a CMS and add necessary functionalities.   And therefore, here are the steps involved in building a real estate website using WordPress.  </p>
<p><strong>1.  Install WordPress</strong><br />
Download the latest WordPress software from  WordPress website and install it on your development server/ local machine. </p>
<p><strong>2.  Develop the backend</strong><br />
This step is more about enhancing the existing WordPress admin rather than building a custom bespoke CMS.  Our goal here is to make the backend as simple as possible for the content admin who will be looking after the website and uploading listings on a day-to-day basis.   There are 2 real estate plugins available for WordPress, however, data required for Australia Real Estate listing and US Real Estate listing are significantly different, which means it is impossible to use those plugins for our project without modifying a lot of code.   Therefore, we decided to build our own in WordPress.   We referred to Standard Real Estate XML Format for Australia &#8211; <a href="http://reaxml.realestate.com.au/docs/reaxml1-xml-format.html">REAXML1</a> to get the structure of a standard real estate listing data.  </p>
<p><strong>3. Install necessary plugins</strong><br />
Rather than reinventing the wheel, we installed the following plugins on the website.<br />
<a href="http://wordpressgogo.com/development/lightbox-gallery.html">Lightbox Gallery</a><br />
<a href="http://mondaybynoon.com/wordpress-post-gallery/">Post Gallery</a><br />
<a href="http://blog.ftwr.co.uk/wordpress/">WP-ContactForm</a><br />
<a href="http://wordpress.org/extend/plugins/all-in-one-seo-pack/">All in One SEO Pack</a></p>
<p><strong>4.  Develop the frontend</strong><br />
As we have the designs from our client, the next step is to develop the frontend for the WordPress real estate website.   Using the design mocks, we look at how each page looks like and how various real estate information will be displayed to the users of the website. The good thing about WordPress is that you can basically have a different look and feel for every single page on the website using Template.   In our case, we needed 5 templates; homepage template, listings category template (for Properties for Sale and Properties for Lease), listing template (for listing pages), page template (for the rest of the content like Our Team, Contact Us, Privacy Policy, etc) and default template (for fallback and any other pages).  </p>
<p><strong>5. Test, deploy, release</strong><br />
The last and final step of building a Real Estate website (or any other website, for that matter) is test, deploy and release.   Here, we tested the website by populating content and property listings into the database via the WordPress admin, viewing the site on a few different browsers, and ensuring that everything works and displays as expected.  We then deployed the website onto the live server, tested some more and made it available to the general public.  </p>
<p><strong>The final result</strong><br />
I have to say it saves us a lot of time using WordPress as a CMS compared to building a custom application and we were able to deliver the website with a complete CMS (using WordPress) at a very low cost within a week.  Many features, such as RSS, Search, Login, Registration, etc are already available in WordPress.   It also aligns with our overall development objectives as we are a big fan of using open source technologies.  And it works perfectly in this case because our client is already familiar with WordPress and he was able to step into uploading content and listings with minimal training.   </p>
<p>If you are trying to build a similar real estate website in WordPress, have a look at <a href="http://themeforest.net/item/elegant-real-estate/74277?ref=eisabai">Elegant Real Estate WordPress Theme</a>.  It comes with built in basic real estate listing filtering, featured slider banner, admin options to control settings and PSD file to customise the theme design if required. </p>
<p><strong>If you are interested in hiring us to build a real estate website in WordPress, please <a href="http://www.anansi.com.au/contact.php">contact us to obtain a quote</a>. </strong></p>
<p><a href="http://eisabainyo.net/weblog/wp-content/uploads/2009/05/listing-category.gif"><img src="http://eisabainyo.net/weblog/wp-content/uploads/2009/05/listing-category-300x88.gif" alt="listing-category" title="listing-category" width="300" height="88" class="alignnone size-medium wp-image-633" /></a><br />
<a href="http://eisabainyo.net/weblog/wp-content/uploads/2009/05/listing-page.jpg"><img src="http://eisabainyo.net/weblog/wp-content/uploads/2009/05/listing-page-221x300.jpg" alt="listing-page" title="listing-page" width="221" height="300" class="alignnone size-medium wp-image-635" /></a><br />
<a href="http://eisabainyo.net/weblog/wp-content/uploads/2009/05/realestate-backend.gif"><img src="http://eisabainyo.net/weblog/wp-content/uploads/2009/05/realestate-backend-226x300.gif" alt="realestate-backend" title="realestate-backend" width="226" height="300" class="alignnone size-medium wp-image-634" /></a></p>
<p><strong>Related Links</strong><br />
<a href="http://eisabainyo.net/website-templates/real-estate-templates/">Real Estate templates</a><br />
<a href="http://reaxml.realestate.com.au/docs/reaxml1-xml-format.html">Standard Real Estate XML Format for Australia</a><br />
<a href="http://themeforest.net/item/elegant-real-estate/74277?ref=eisabai">Elegant Real Estate Theme for WordPress</a></p>
]]></content:encoded>
			<wfw:commentRss>http://eisabainyo.net/weblog/2009/05/27/building-a-real-estate-website-using-wordpress/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>My list of essential Drupal modules</title>
		<link>http://eisabainyo.net/weblog/2009/01/07/my-list-of-essential-drupal-modules/</link>
		<comments>http://eisabainyo.net/weblog/2009/01/07/my-list-of-essential-drupal-modules/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 00:07:24 +0000</pubDate>
		<dc:creator>eisabai</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://eisabainyo.net/weblog/2009/01/07/my-list-of-essential-drupal-modules/</guid>
		<description><![CDATA[After setting up and configuring Drupal for a few websites, I have managed to compile a list of common/essential modules that I install for most websites. And here they are &#8211; my list of essential Drupal modules: Core &#8211; optional Contact - Enables the use of both personal and site-wide contact forms. PHP filter - [...]]]></description>
			<content:encoded><![CDATA[<p>After setting up and configuring <a href="http://drupal.org/">Drupal</a> for a few websites, I have managed to compile a list of common/essential <a href="http://drupal.org/node/206666">modules</a> that I install for most websites.  And here they are &#8211; my list of essential Drupal modules: </p>
<h3>Core &#8211; optional</h3>
<p>	Contact	- Enables the use of both personal and site-wide contact forms.</p>
<p>	PHP filter	- Allows embedded PHP code/snippets to be evaluated.</p>
<p>	Search	- Enables site-wide keyword searching.</p>
<p>	Poll &#8211; Allows your site to capture votes on different topics in the form of multiple choice questions.</p>
<p>	Taxonomy	-	Enables the categorization of content.</p>
<h3>Image</h3>
<p>	<a href="http://drupal.org/project/image">Image</a> &#8211; Allows uploading, resizing and viewing of images.</p>
<p>	<a href="http://drupal.org/project/img_assist">Image assist</a> &#8211; This module allows users to upload and insert inline images into posts. It automatically generates an Add image link under the textarea fields of your choice.</p>
<p>	Image Gallery &#8211; Allows sorting and displaying of image galleries based on categories.</p>
<h3>Others</h3>
<h3>SEO</h3>
<p>	<a href="http://drupal.org/project/nodewords">Meta tags</a> &#8211; Allows users to add meta tags, eg keywords or description.</p>
<p>	<a href="http://drupal.org/project/pathauto">Pathauto</a> &#8211; Provides a mechanism for modules to automatically generate aliases for the content they manage.</p>
<p>	<a href="http://drupal.org/project/token">Token</a> &#8211; Provides a shared API for replacement of textual placeholders with actual data.</p>
<h3>Menu</h3>
<p>	<a href="http://drupal.org/project/nice_menus">Nice Menus</a> &#8211; CSS/jQuery drop-down, drop-right and drop-left menus to be placed in blocks</p>
<h3>WYSIWYG HTML Editor</h3>
<p>	<a href="http://drupal.org/project/fckeditor">FCKeditor</a> &#8211; Enables the usage of FCKeditor (WYSIWYG) instead of plain text fields.</p>
<h3>Spam Control</h3>
<p>	<a href="http://drupal.org/project/captcha">CAPTCHAM</a> &#8211; Base CAPTCHA module for adding challenges to arbitrary forms.</p>
<p>	<a href="http://drupal.org/project/recaptcha">reCAPTCHA</a> &#8211; Uses the reCAPTCHA web service to improve the CAPTCHA system.</p>
<h3>Email a friend</h3>
<p>	<a href="http://drupal.org/project/forward">Forward</a>	- Forward this page module</p>
<p>Technorati Tags: <a href="http://technorati.com/tag/drupal" rel="tag">drupal</a>, <a href="http://technorati.com/tag/modules" rel="tag"> modules</a>, <a href="http://technorati.com/tag/cms" rel="tag"> cms</a>, <a href="http://technorati.com/tag/content+management+system" rel="tag"> content management system</a>, <a href="http://technorati.com/tag/web+development" rel="tag"> web development</a></p>
]]></content:encoded>
			<wfw:commentRss>http://eisabainyo.net/weblog/2009/01/07/my-list-of-essential-drupal-modules/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>15 useful cheat sheets for web developers</title>
		<link>http://eisabainyo.net/weblog/2008/11/09/15-useful-cheat-sheets-for-web-developers/</link>
		<comments>http://eisabainyo.net/weblog/2008/11/09/15-useful-cheat-sheets-for-web-developers/#comments</comments>
		<pubDate>Sun, 09 Nov 2008 13:49:45 +0000</pubDate>
		<dc:creator>eisabai</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WWW]]></category>
		<category><![CDATA[xHTML]]></category>

		<guid isPermaLink="false">http://eisabainyo.net/weblog/2008/11/09/15-useful-cheat-sheets-for-web-developers/</guid>
		<description><![CDATA[The followings are useful cheat sheets for web developers who need to refer to certain syntax and code quickly and easily. They are printer-friendly so you can print them out and stick them on your wall like posters. For those who want a little more than cheat sheets, check our our recommended web development books [...]]]></description>
			<content:encoded><![CDATA[<p>The followings are useful cheat sheets for web developers who need to refer to certain syntax and code quickly and easily.  They are printer-friendly so you can print them out and stick them on your wall like posters.  For those who want a little more than cheat sheets, check our our recommended <a href="http://eisabainyo.net/weblog/recommended-web-development-books/">web development books</a> for a list of books on Mobile Web Development, CSS, Javascript &#038; AJAX and API &#038; Web Services.</p>
<p><strong><a href="http://www.seomoz.org/user_files/SEO_Web_Developer_Cheat_Sheet.pdf">The Web Developer&#8217;s SEO Cheat Sheet</a></strong><br />
<img src='http://eisabainyo.net/weblog/wp-content/uploads/2008/11/seo-cheatsheet.gif' alt='The Web Developer&rsquo;s SEO Cheat Sheet' /> </p>
<p>&nbsp;</p>
<p><strong><a href="http://www.addedbytes.com/cheat-sheets/php-cheat-sheet/">PHP Cheat Sheet<br /> </a>  </strong> <img src='http://eisabainyo.net/weblog/wp-content/uploads/2008/11/php-cheatsheet.gif' alt='PHP Cheat Sheet' /> </p>
<p>&nbsp;</p>
<p><strong><a href="http://mentalaxis.com/ref/mysqlcheatsheet.pdf">MySQL Cheat Sheet</a></strong> <br />
<img src='http://eisabainyo.net/weblog/wp-content/uploads/2008/11/mysql-cheatsheet.gif' alt='MySQL Cheat Sheet' /></p>
<p>&nbsp;</p>
<p> <strong><a href="http://www.gscottolson.com/jquery/jQuery1.2.cheatsheet.v1.0.pdf">jQuery 1.2 Cheatsheet</a></strong> <br />
<img src='http://eisabainyo.net/weblog/wp-content/uploads/2008/11/jquery-cheatsheet.gif' alt='jQuery 1.2 Cheatsheet' /></p>
<p>&nbsp;</p>
<p> <strong><a href="http://www.usgs.gov/corecast/docs/rss_cheatsheet.pdf">Really Simple Syndication (RSS) Cheat Sheet</a></strong> <br />
<img src='http://eisabainyo.net/weblog/wp-content/uploads/2008/11/rss-cheatsheet.gif' alt='Really Simple Syndication (RSS) Cheat Sheet' /></p>
<p>&nbsp;</p>
<p> <strong><a href="http://fosswire.com/wp-content/uploads/2007/08/fwunixref.pdf">Unix/Linux Command Reference<br />
</a></strong><img src='http://eisabainyo.net/weblog/wp-content/uploads/2008/11/unix-cheatsheet.gif' alt='Unix/Linux Command Reference' /></p>
<p>&nbsp;</p>
<p> <strong><a href="http://floele.flyspray.org/htmlcheatsheet.pdf">xHTML Cheat Sheet</a> </strong> <br />
  <img src='http://eisabainyo.net/weblog/wp-content/uploads/2008/11/xhtml-cheatsheet.gif' alt='xHTML Cheat Sheet' /></p>
<p>&nbsp;</p>
<p><strong><a href="http://suda.co.uk/projects/microformats/cheatsheet/microformats.cheatsheet.pdf">Microformats Cheat Sheet</a></strong> <br />
  <img src='http://eisabainyo.net/weblog/wp-content/uploads/2008/11/microformats-cheatsheet.gif' alt='Microformats Cheat Sheet' /></p>
<p>&nbsp;</p>
<p><strong><a href="http://www.sm.luth.se/csee/courses/smd/139/smd139_vi.pdf">vi Editor Cheat Sheet</a></strong> <br />
  <img src='http://eisabainyo.net/weblog/wp-content/uploads/2008/11/vi-cheatsheet.gif' alt='vi Editor Cheat Sheet' /></p>
<p>&nbsp;</p>
<p><strong><a href="http://lesliefranke.com/sandbox/ref/csscheatsheet.pdf">CSS Cheat Sheet</a></strong> <br />
<img src='http://eisabainyo.net/weblog/wp-content/uploads/2008/11/css-cheatsheet.gif' alt='CSS Cheat Sheet' /></p>
<p>&nbsp;</p>
<p> <strong><a href="http://www.leigeber.com/wp-content/uploads/2008/04/css-cheat-sheet.pdf">CSS Shorthand Cheat Sheet</a></strong> <br />
  <img src='http://eisabainyo.net/weblog/wp-content/uploads/2008/11/css-shorthand-cheatsheet.gif' alt='CSS Shorthand Cheat Sheet' /></p>
<p>&nbsp;</p>
<p><strong><a href="http://www.addedbytes.com/apache/mod_rewrite-cheat-sheet/">mod_rewrite Cheat Sheet</a></strong> <br />
  <img src='http://eisabainyo.net/weblog/wp-content/uploads/2008/11/mod_rewrite-cheatsheet.gif' alt='mod_rewrite Cheat Sheet' /></p>
<p>&nbsp;</p>
<p><strong><a href="http://lesliefranke.com/files/reference/firefoxcheatsheet.pdf">Mozilla Firefox Cheat Sheet</a></strong> <br />
  <img src='http://eisabainyo.net/weblog/wp-content/uploads/2008/11/firefox-cheatsheet.gif' alt='Mozilla Firefox Cheat Sheet' /> <strong><a href="http://www.customguide.com/pdf/dreamweaver-quick-reference-cs3.pdf"><br />
  </a></strong></p>
<p>&nbsp;</p>
<p><strong><a href="http://www.customguide.com/pdf/dreamweaver-quick-reference-cs3.pdf"> Dreamweaver Quick Reference, Adobe Dreamweaver CS3 Cheat Sheet</a></strong> <img src='http://eisabainyo.net/weblog/wp-content/uploads/2008/11/dreamweaver-cheatsheet.gif' alt='Dreamweaver Quick Reference, Adobe Dreamweaver CS3 Cheat Sheet' /></p>
<p>&nbsp;</p>
<p><strong><a href="http://www.minezone.org/blog/wp-content/uploads/2007/12/drupal-theme-developers-cheat-sheet.pdf">Drupal Theme Developer&#8217;s Cheat Sheet</a></strong> <br />
  <img src='http://eisabainyo.net/weblog/wp-content/uploads/2008/11/drupal-cheatsheet.gif' alt='Drupal Theme Developer's="s" cheat="Cheat" sheet="Sheet"></p>
<p>Technorati Tags: <a href="http://technorati.com/tag/cheatsheets" rel="tag">cheatsheets</a>, <a href="http://technorati.com/tag/cheat+sheets" rel="tag"> cheat sheets</a>, <a href="http://technorati.com/tag/pdf" rel="tag"> pdf</a>, <a href="http://technorati.com/tag/web+developers" rel="tag"> web developers</a>, <a href="http://technorati.com/tag/web+development" rel="tag"> web development</a></p>
]]></content:encoded>
			<wfw:commentRss>http://eisabainyo.net/weblog/2008/11/09/15-useful-cheat-sheets-for-web-developers/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Enabling gd image library in PHP (Windows)</title>
		<link>http://eisabainyo.net/weblog/2008/10/21/enabling-gd-image-library-in-php-windows/</link>
		<comments>http://eisabainyo.net/weblog/2008/10/21/enabling-gd-image-library-in-php-windows/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 00:26:19 +0000</pubDate>
		<dc:creator>eisabai</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Troubleshooting]]></category>

		<guid isPermaLink="false">http://eisabainyo.net/weblog/2008/10/21/enabling-gd-image-library-in-php-windows/</guid>
		<description><![CDATA[1. Uncomment the following line in php.ini. php.ini file is located in the main directory of your PHP installation, for example: C:\PHP\php.ini. ;extension=php_gd2.dll 2. Make sure you have php_gd2.dll file in the extensions directory. The extension directory of my PHP installation is C:\PHP\ext. Look for the directive &#8220;extension_dir&#8221; in php.ini file to get the exact [...]]]></description>
			<content:encoded><![CDATA[<p>1. Uncomment the following line in php.ini.  php.ini file is located in the main directory of your PHP installation, for example: C:\PHP\php.ini.</p>
<p><code>;extension=php_gd2.dll</code></p>
<p>2.  Make sure you have php_gd2.dll file in the extensions directory.  The extension directory of my PHP installation is C:\PHP\ext.   Look for the directive &#8220;extension_dir&#8221; in php.ini file to get the exact location of your extensions directory.  </p>
<p>3.  Run php.exe from your PHP installation directory.  </p>
<p>3.1.  If you don&#8217;t have the dll file, you will have a similiar error message as below:</p>
<p><code>Unknown(): Unable to load dynamic library 'C:\PHP\ext\php_gd2.dll' - The specified module could not be found.</code></p>
<p>Download the appropriate Windows Binaries from the <a href="http://www.php.net/downloads.php">Official PHP Website Downloads</a> page and copy the required extension into your php extension directory.  </p>
<p>4.  Restart Apache server.</p>
<p>Technorati Tags: <a href="http://technorati.com/tag/troubleshooting" rel="tag">troubleshooting</a>, <a href="http://technorati.com/tag/gd+library" rel="tag"> gd library</a>, <a href="http://technorati.com/tag/php" rel="tag"> php</a>, <a href="http://technorati.com/tag/configuration" rel="tag"> configuration</a>, <a href="http://technorati.com/tag/apache" rel="tag"> apache</a></p>
]]></content:encoded>
			<wfw:commentRss>http://eisabainyo.net/weblog/2008/10/21/enabling-gd-image-library-in-php-windows/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

