<?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>Hektor Paris &#187; Javascript</title>
	<atom:link href="http://www.hektorparis.com/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hektorparis.com</link>
	<description>Web developer &#38; designer in New York City.</description>
	<lastBuildDate>Sat, 15 May 2010 07:01:42 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>MySQL and jQuery Sliding Login Panel</title>
		<link>http://www.hektorparis.com/mysql-and-jquery-sliding-login-panel/</link>
		<comments>http://www.hektorparis.com/mysql-and-jquery-sliding-login-panel/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 15:49:27 +0000</pubDate>
		<dc:creator>Hektor</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jquery login]]></category>
		<category><![CDATA[mysql login]]></category>
		<category><![CDATA[mysql login tutorial]]></category>
		<category><![CDATA[php login tutorial]]></category>
		<category><![CDATA[sliding login panel]]></category>

		<guid isPermaLink="false">http://www.hektorparis.com/?p=783</guid>
		<description><![CDATA[The purpose of having a sliding login panel is to make your website user-friendly as well as practical, by providing a login and logout feature without redirecting users away from any content on your website.]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-785" title="Nice and Clean Sliding Login Panel built with jQuery" src="http://www.hektorparis.com/wp-content/uploads/2009/09/sliding_login_panel_built_with_jquery.gif" alt="Nice and Clean Sliding Login Panel built with jQuery" width="320" height="240" />The <a title="Nice &amp; Clean Sliding Login Panel built with jQuery" href="http://web-kreation.com/index.php/tutorials/nice-clean-sliding-login-panel-built-with-jquery/" target="_blank">Sliding Login Panel with jQuery</a> (v 1.3.2) is easy to integrate and an extremely efficient way to allow users to login from any page throughout your website. Using the <a title="jQuery jQuery is a new kind of JavaScript Library." href="http://jquery.com/" target="_blank">jQuery</a> JS framework, the sliding panel works like a charm in <a title="Firefox web browser | Faster, more secure, &amp; customizable" href="http://www.mozilla.com/firefox/" target="_blank">Firefox</a>, <a title="The world's fastest and most innovative web browser for Mac and PC" href="http://www.apple.com/safari/" target="_blank">Safari</a>, <a title="Opera gives you the full Web experience everywhere." href="http://www.opera.com/" target="_blank">Opera</a>, <a title="Google Chrome is a browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier." href="http://www.google.com/chrome" target="_blank">Chrome</a> and even inferior browsers like IE6, IE7 and IE8!</p>
<p>The purpose of having a sliding login panel is to make your website user-friendly as well as practical, by providing a login and logout feature without redirecting users away from any content on your website. The Sliding Login Panel with jQuery overlaps content instead of shifting it down, and since all images are transparent that means you can retain the background content intact.  <span id="more-783"></span></p>
<p><strong><a title="Nice &amp; Clean Sliding Login Panel built with jQuery" href="http://www.hektorparis.com/hp-lab/mysql-and-jquery-sliding-login-panel/" target="_blank">See Demo Here &gt;&gt;</a></strong><br />
<br class="clear" /><br />
<strong>Read Me</strong><br />
This tutorial will demonstrate how to create a login system using <a title="PHP: Hypertext Preprocessor" href="http://www.php.net/" target="_blank">PHP</a>, <a title="The software's official homepage with news, downloads and documentation." href="http://www.mysql.com/" target="_blank">MySQL</a> and the Sliding Login Panel with jQuery. If you don&#8217;t already have a MySQL database with an users table, below I will show you how to begin from scratch. To proceed with this tutorial you will need to have a <a title="Comprehensive information and resources about the Linux Operating System." href="http://www.linux.org" target="_blank">Linux</a> web hosting environment with a MySQL database accessible preferably via <a title="phpMyAdmin is a free software tool written in PHP intended to handle the administration of MySQL over the World Wide Web." href="http://www.phpmyadmin.net" target="_blank">phpMyAdmin</a>.</p>
<p>You will also need to download the Sliding_login_panel_jquery.zip file <a title="Sliding Login Panel with jQuery (v 1.3.2)" href="http://web-kreation.com/index.php/tutorials/nice-clean-sliding-login-panel-built-with-jquery/" target="_blank">from here</a>.</p>
<p><strong>Create &#8220;Members&#8221; Table</strong><br />
Using phpMyAdmin create a &#8220;members&#8221; table to use for storing user accounts. The following SQL query will create a table with two fields to store an username and password. However, you can add more fields to log IP address, last login time, user verified, etc.</p>
<p><strong><a title="CREATE TABLE Syntax" href="http://dev.mysql.com/doc/refman/5.1/en/create-table.html" target="_blank">CREATE TABLE</a></strong> `members` (`members_id` <a title="Using AUTO_INCREMENT" href="http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html" target="_blank">SERIAL</a> <a title="Working with NULL Values" href="http://dev.mysql.com/doc/refman/5.0/en/working-with-null.html" target="_blank">NOT NULL</a>, `members_username` <a title="The CHAR and VARCHAR Types" href="http://dev.mysql.com/doc/refman/5.0/en/char.html" target="_blank">VARCHAR</a>(65) NOT NULL, `members_password` VARCHAR(65) NOT NULL, <a title="PRIMARY KEY and UNIQUE Index Constraints" href="http://dev.mysql.com/doc/refman/5.0/en/constraint-primary-key.html" target="_blank">PRIMARY KEY</a> (`members_id`))<br />
<strong>TYPE</strong> = <a title="The MyISAM Storage Engine" href="http://dev.mysql.com/doc/refman/5.0/en/myisam-storage-engine.html" target="_blank">MyISAM</a> <a title="Using AUTO_INCREMENT" href="http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html" target="_blank">AUTO_INCREMENT</a> = 1;</p>
<p>&#8211;<br />
&#8211; Now dump data for table &#8220;members&#8221;<br />
&#8211;</p>
<p><strong><a title="INSERT Syntax" href="http://dev.mysql.com/doc/refman/5.1/en/insert.html" target="_blank">INSERT</a> INTO</strong> `members`Â  <a title="Data Type Default Values" href="http://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html" target="_blank"><strong>VALUES</strong> </a>(NULL, &#8216;hektor@myserver.com&#8217;, md5(&#8216;testPW123&#8242;));</p>
<p>This SQL query will result in:</p>
<p style="text-align: center;"><img src="http://www.hektorparis.com/wp-content/uploads/2009/09/members_table_snapshot.gif" alt="Members Table" title="Members Table" width="602" height="143" class="aligncenter size-full wp-image-813" /></p>
<p><br class="clear" /><br />
<strong>Security</strong><br />
SQL injections are a common method that allow malicious access to your database. Such SQL injection attacks are the act of hackers using an HTML form to submit a MySQL statement that exploits raw processing of user input data. For example, a login form has two input fields, username and password, which are submitted to a MySQL SELECT query that returns matches found. However, an SQL injection will attempt to make the query behave differently.</p>
<p>SQL injection example:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;width:590px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="re0">$username</span> <span class="sy0">=</span> <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;username&quot;</span><span class="br0">&#93;</span><span class="sy0">;</span> <span class="co1">//Suppose the input value is &quot;hektor&quot;</span><br />
<span class="re0">$query</span> <span class="sy0">=</span> <span class="st0">&quot;SELECT * FROM members WHERE username = 'hektor@myserver.com'&quot;</span><span class="sy0">;</span> <span class="co1">//Valid SQL statement</span><br />
<br />
<span class="co1">//Now the same variable with an SQL injection</span><br />
<span class="re0">$username</span> <span class="sy0">=</span> <span class="st0">&quot;' OR 1'&quot;</span><span class="sy0">;</span><br />
<span class="co1">//The SQL query will be compromised and behave differently</span><br />
<span class="re0">$query</span> <span class="sy0">=</span> <span class="st0">&quot;SELECT * FROM member WHERE username = '' OR 1'&quot;</span> <span class="co1">//SQL injection</span></div></td></tr></tbody></table></div>
<p>By using the OR operand in conjunction with the single quote symbol (&#8216;), the SQL query conditional statement ends the username string prematurely, resulting in a valid SQL statement that will always return true. The MySQL WHERE clause followed by the OR operand accompanied with a 1 alters the conditional statement to always return true. The consequences of using username = &#8221; OR 1 will be that the entire members table will be selected by this SQL injection.</p>
<p>To prevent SQL injection attacks, use the <a title="mysql_real_escape_string() escapes special characters in a string for use in a SQL statement" href="http://us3.php.net/mysql_real_escape_string" target="_blank">mysql_real_escape_string()</a> PHP function to escape special characters in a string for use in a SQL statement. The function escapes special characters while taking into account the current character set of the connection so that it is safe to place it in the <a title="mysql_query sends a MySQL query" href="http://us3.php.net/manual/en/function.mysql-query.php" target="_blank">mysql_query()</a> function. A call to the MySQL library function    <span style="color: #0000ff;">mysql_real_escape_string()</span> prepends backslashes to the following characters:    <em>\x00</em>, <em>\n</em>,    <em>\r</em>, <em>\</em>, <em>&#8216;</em>,    <em>&#8220;</em> and <em>\x1a</em>.</p>
<p><u> This function must always (with few exceptions) be used to make data    safe before sending a query to MySQL. </u></p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;width:590px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="co1">//escape the string before assigning it to the variable</span><br />
<span class="re0">$username</span> <span class="sy0">=</span> <a href="http://www.php.net/mysql_real_escape_string"><span class="kw3">mysql_real_escape_string</span></a><span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;username&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// ' OR 1'</span><br />
<br />
<span class="co1">//SELECT * FROM members WHERE members_username = '\' OR 1\''</span><br />
<span class="re0">$query</span> <span class="sy0">=</span> <span class="st0">&quot;SELECT * FROM members WHERE members_username = '<span class="es4">$username</span>'&quot;</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
<p><br class="clear" /><br />
<strong>Create Database Configuration File</strong><br />
The next step is to create a database configuration file to connect to the member&#8217;s table and validate login attempts.</p>
<p>db_config.inc.php</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;width:590px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="co1">//Define database connection</span><br />
<span class="re0">$hostname</span> <span class="sy0">=</span> <span class="st0">&quot;db.myserver.com&quot;</span><span class="sy0">;</span><br />
<span class="re0">$username</span> <span class="sy0">=</span> <span class="st0">&quot;hektor&quot;</span><span class="sy0">;</span><br />
<span class="re0">$password</span> <span class="sy0">=</span> <span class="st0">&quot;testPW123&quot;</span><span class="sy0">;</span><br />
<span class="re0">$dbname</span> &nbsp; <span class="sy0">=</span> <span class="st0">&quot;sqldb&quot;</span><span class="sy0">;</span><br />
<br />
<a href="http://www.php.net/mysql_connect"><span class="kw3">mysql_connect</span></a><span class="br0">&#40;</span><span class="re0">$hostname</span><span class="sy0">,</span> <span class="re0">$username</span><span class="sy0">,</span> <span class="re0">$password</span><span class="br0">&#41;</span> or <a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span><span class="st0">&quot;Cannot connect: &quot;</span> <span class="sy0">.</span><a href="http://www.php.net/mysql_error"><span class="kw3">mysql_error</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<a href="http://www.php.net/mysql_select_db"><span class="kw3">mysql_select_db</span></a><span class="br0">&#40;</span><span class="re0">$dbname</span><span class="br0">&#41;</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
<p><br class="clear" /><br />
<strong>Create a Registration and Login Script</strong><br />
If you would like to retain the Sliding Login Panel&#8217;s default columns, member login and registration, you can process both using a single script.</p>
<p>login.php</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;width:590px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><a href="http://www.php.net/session_start"><span class="kw3">session_start</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
<span class="kw1">include</span><span class="br0">&#40;</span><span class="st0">&quot;db_config.inc.php&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">//establish DB connection</span><br />
<br />
<span class="co1">//capture all form fields and set as variables</span><br />
<span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$_POST</span> <span class="kw1">as</span> <span class="re0">$field</span> <span class="sy0">=&gt;</span> <span class="re0">$value</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="re0">$$field</span> <span class="sy0">=</span> <a href="http://www.php.net/mysql_real_escape_string"><span class="kw3">mysql_real_escape_string</span></a><span class="br0">&#40;</span><span class="re0">$value</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span><br />
<br />
<span class="co1">//authenticate login attempts</span><br />
<span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;login&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><a href="http://www.php.net/empty"><span class="kw3">empty</span></a><span class="br0">&#40;</span><span class="re0">$email</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
&nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="re0">$query</span> <span class="sy0">=</span> <span class="st0">&quot;SELECT * FROM members WHERE members_username = '&quot;</span> <span class="sy0">.</span><span class="re0">$email</span> <span class="sy0">.</span><span class="st0">&quot;' AND members_password = '&quot;</span> <span class="sy0">.</span><a href="http://www.php.net/md5"><span class="kw3">md5</span></a><span class="br0">&#40;</span><span class="re0">$password</span><span class="br0">&#41;</span> <span class="sy0">.</span><span class="st0">&quot;'&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="re0">$find_user</span> <span class="sy0">=</span> <a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="re0">$query</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/mysql_num_rows"><span class="kw3">mysql_num_rows</span></a><span class="br0">&#40;</span><span class="re0">$find_user</span><span class="br0">&#41;</span> <span class="sy0">&gt;</span> <span class="nu0">0</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span class="re0">$result</span> <span class="sy0">=</span> <a href="http://www.php.net/mysql_fetch_array"><span class="kw3">mysql_fetch_array</span></a><span class="br0">&#40;</span><span class="re0">$find_user</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; <span class="co1">//register user session</span><br />
&nbsp; &nbsp; &nbsp; <span class="re0">$_SESSION</span><span class="br0">&#91;</span><span class="st0">&quot;user_sid&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <a href="http://www.php.net/md5"><span class="kw3">md5</span></a><span class="br0">&#40;</span><span class="re0">$result</span><span class="br0">&#91;</span><span class="st0">&quot;members_username&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; <span class="co1">//redirect authenticated users</span><br />
&nbsp; &nbsp; &nbsp; <a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span><span class="st0">&quot;Location: login_success.php&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<br />
&nbsp; &nbsp; <span class="kw1">else</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span class="co1">//implement your custom error handling method</span><br />
&nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;Cannot validate your login credentials.&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="co1">//register new users</span><br />
<span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;register&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><a href="http://www.php.net/empty"><span class="kw3">empty</span></a><span class="br0">&#40;</span><span class="re0">$signup_email</span><span class="br0">&#41;</span> <span class="sy0">&amp;&amp;</span> <span class="sy0">!</span><a href="http://www.php.net/empty"><span class="kw3">empty</span></a><span class="br0">&#40;</span><span class="re0">$signup_password</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
&nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="re0">$insert_user</span> <span class="sy0">=</span> <span class="st0">&quot;INSERT INTO members(members_username, members_password) VALUES('&quot;</span> <span class="sy0">.</span><span class="re0">$signup_email</span> <span class="sy0">.</span><span class="st0">&quot;', '&quot;</span> <span class="sy0">.</span><a href="http://www.php.net/md5"><span class="kw3">md5</span></a><span class="br0">&#40;</span><span class="re0">$signup_password</span><span class="br0">&#41;</span> <span class="sy0">.</span><span class="st0">&quot;')&quot;</span><span class="sy0">;</span><br />
<br />
&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="re0">$insert_user</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span class="co1">//implement your custom success method</span><br />
&nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;User account created successfully&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<br />
&nbsp; &nbsp; <span class="kw1">else</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span class="co1">//implement your custom error handling method</span><br />
&nbsp; &nbsp; &nbsp; <a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <a href="http://www.php.net/mysql_error"><span class="kw3">mysql_error</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; <span class="br0">&#125;</span><br />
<br />
&nbsp; <span class="kw1">else</span><br />
&nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="co1">//implement your custom error handling method</span><br />
&nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;You must provide a valid email address and password.&quot;</span><span class="sy0">;</span><br />
&nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p><br class="clear" /><br />
<strong>Modify Sliding Login Panel</strong><br />
Now rename the input fields in the form to make it work with the <b>login.php</b> script.</p>
<p>index.html</p>
<div class="codecolorer-container html4strict mac-classic" style="overflow:auto;white-space:nowrap;width:590px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br /></div></td><td><div class="html4strict codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc-1">&lt;!-- Login Form --&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/form.html"><span class="kw2">form</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;clearfix&quot;</span> <span class="kw3">action</span><span class="sy0">=</span><span class="st0">&quot;login.php&quot;</span> <span class="kw3">method</span><span class="sy0">=</span><span class="st0">&quot;post&quot;</span>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/h1.html"><span class="kw2">h1</span></a>&gt;</span>Member Login<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/h1.html"><span class="kw2">h1</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/label.html"><span class="kw2">label</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;grey&quot;</span> <span class="kw3">for</span><span class="sy0">=</span><span class="st0">&quot;log&quot;</span>&gt;</span>Email:<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/label.html"><span class="kw2">label</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/input.html"><span class="kw2">input</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;email&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;field&quot;</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;email&quot;</span> <span class="kw3">size</span><span class="sy0">=</span><span class="st0">&quot;23&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text&quot;</span> <span class="sy0">/</span>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/label.html"><span class="kw2">label</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;grey&quot;</span> <span class="kw3">for</span><span class="sy0">=</span><span class="st0">&quot;pwd&quot;</span>&gt;</span>Password:<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/label.html"><span class="kw2">label</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/input.html"><span class="kw2">input</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;password&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;field&quot;</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;password&quot;</span> <span class="kw3">size</span><span class="sy0">=</span><span class="st0">&quot;23&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;password&quot;</span> <span class="sy0">/</span>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/input.html"><span class="kw2">input</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;bt_login&quot;</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;login&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;submit&quot;</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;Login&quot;</span> <span class="sy0">/</span>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;lost-pwd&quot;</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>Lost your password?<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/form.html"><span class="kw2">form</span></a>&gt;</span><br />
<br />
<span class="sc-1">&lt;!-- Register Form --&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/form.html"><span class="kw2">form</span></a> <span class="kw3">action</span><span class="sy0">=</span><span class="st0">&quot;login.php&quot;</span> <span class="kw3">method</span><span class="sy0">=</span><span class="st0">&quot;post&quot;</span>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/h1.html"><span class="kw2">h1</span></a>&gt;</span>Not a member yet? Sign Up!<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/h1.html"><span class="kw2">h1</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/label.html"><span class="kw2">label</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;grey&quot;</span> <span class="kw3">for</span><span class="sy0">=</span><span class="st0">&quot;signup&quot;</span>&gt;</span>Email:<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/label.html"><span class="kw2">label</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/input.html"><span class="kw2">input</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;signup_email&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;field&quot;</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;signup_email&quot;</span> <span class="kw3">size</span><span class="sy0">=</span><span class="st0">&quot;23&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text&quot;</span> <span class="sy0">/</span>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/label.html"><span class="kw2">label</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;grey&quot;</span> <span class="kw3">for</span><span class="sy0">=</span><span class="st0">&quot;email&quot;</span>&gt;</span>Password:<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/label.html"><span class="kw2">label</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/input.html"><span class="kw2">input</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;signup_password&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;field&quot;</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;signup_password&quot;</span> <span class="kw3">size</span><span class="sy0">=</span><span class="st0">&quot;23&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text&quot;</span> <span class="sy0">/</span>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/label.html"><span class="kw2">label</span></a>&gt;</span>A password will be e-mailed to you.<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/label.html"><span class="kw2">label</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/input.html"><span class="kw2">input</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;bt_register&quot;</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;register&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;submit&quot;</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;Register&quot;</span> <span class="sy0">/</span>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/form.html"><span class="kw2">form</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p><br class="clear" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hektorparis.com/mysql-and-jquery-sliding-login-panel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript Form Validation Before Submit</title>
		<link>http://www.hektorparis.com/javascript-form-validation-before-submit/</link>
		<comments>http://www.hektorparis.com/javascript-form-validation-before-submit/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 09:32:57 +0000</pubDate>
		<dc:creator>Hektor</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[how to validate form]]></category>
		<category><![CDATA[html form validation]]></category>
		<category><![CDATA[javascript field validation]]></category>
		<category><![CDATA[javascript form validation]]></category>
		<category><![CDATA[validate form fields]]></category>
		<category><![CDATA[validate form with javascript]]></category>
		<category><![CDATA[validate html form]]></category>

		<guid isPermaLink="false">http://www.hektorparis.com/?p=771</guid>
		<description><![CDATA[Client-side form validation with Javascript is easy to implement and convenient to use as it allows you to verify input fields before submitting the data to a server-side script.]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-773" title="Validate inputs using javascript before submitting the form" src="http://www.hektorparis.com/wp-content/uploads/2009/09/js_form_validation.png" alt="Validate inputs using javascript before submitting the form" width="320" height="240" /><a title="Client-Side Scripting 101" href="http://www.webreference.com/html/tutorial16/" target="_blank">Client-side</a> form validation with <a title="Javascript" href="http://www.javascript.com/" target="_blank">Javascript</a> is easy to implement and convenient to use as it allows you to verify input fields before submitting the data to a <a title="Server-side Scripting Techniques" href="http://www.w3.org/TR/2008/WD-WCAG20-TECHS-20080430/server-side-script.html" target="_blank">server-side script</a>. Using Javascript to check required form fields is important in avoiding spam, blank submissions and to help you maintain data consistency.</p>
<p>Learn how to validate input fields in <a title="Introduction to HTML forms" href="http://www.w3.org/TR/html401/interact/forms.html#h-17.1" target="_blank">HTML forms</a> using a single Javascript function that highlights empty required fields before sending the content off to a <a title="Hypertext Preprocessor" href="http://www.php.net/" target="_blank">PHP</a> script, for example. <span id="more-771"></span><br />
<br class="clear" /></p>
<p><strong><a title="Javascript Form Validation" href="http://www.hektorparis.com/hp-lab/javascript_form_validation/" target="_blank">See Demo</a></strong></p>
<p><strong>Required Fields</strong><br />
The <span style="color:#0033ff;">validateForm()</span> function below contains a list of conditional statements that check the value of each specified input. If a required field is empty, the CSS class for that input will change to highlight the field in red, then the variable &#8220;error&#8221; which begins as false, will be set to true to prevent form submission until all required fields are satisfied. Highlighted fields that have been filled out will return to the default CSS class upon re-validating the form. The function below also checks the general syntax of an email address. The input data must contain the @ symbol and a dot (.)<br />
<br class="clear" /></p>
<div class="codecolorer-container javascript mac-classic" style="overflow:auto;white-space:nowrap;width:590px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br /></div></td><td><div class="javascript codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw2">function</span> validateForm<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw2">var</span> input <span class="sy0">=</span> document.<span class="me1">myForm</span><span class="sy0">;</span>&nbsp; &nbsp; <span class="co1">// Your form name</span><br />
&nbsp; &nbsp; <span class="kw2">var</span> error <span class="sy0">=</span> <span class="kw2">false</span><span class="sy0">;</span> &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// No erros by default</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">// Restore CSS classes to the default so that when the form is re-checked the UI updates</span><br />
&nbsp; &nbsp; input.<span class="me1">inquiry</span>.<span class="me1">className</span> <span class="sy0">=</span> input.<span class="kw3">name</span>.<span class="me1">className</span> <span class="sy0">=</span> input.<span class="me1">email</span>.<span class="me1">className</span> <span class="sy0">=</span> input.<span class="me1">message</span>.<span class="me1">className</span> <span class="sy0">=</span> <span class="st0">''</span><span class="sy0">;</span><br />
&nbsp; &nbsp; document.<span class="me1">getElementById</span><span class="br0">&#40;</span><span class="st0">'inquiryLabel'</span><span class="br0">&#41;</span>.<span class="me1">className</span> <span class="sy0">=</span> document.<span class="me1">getElementById</span><span class="br0">&#40;</span><span class="st0">'nameLabel'</span><span class="br0">&#41;</span>.<span class="me1">className</span> <span class="sy0">=</span> <br />
&nbsp; &nbsp; document.<span class="me1">getElementById</span><span class="br0">&#40;</span><span class="st0">'emailLabel'</span><span class="br0">&#41;</span>.<span class="me1">className</span> &nbsp; <span class="sy0">=</span> document.<span class="me1">getElementById</span><span class="br0">&#40;</span><span class="st0">'messageLabel'</span><span class="br0">&#41;</span>.<span class="me1">className</span> <span class="sy0">=</span> <span class="st0">'label'</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>input.<span class="me1">inquiry</span>.<span class="me1">value</span> <span class="sy0">==</span> <span class="st0">'null'</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; input.<span class="me1">inquiry</span>.<span class="me1">className</span> <span class="sy0">=</span> <span class="st0">'inputError'</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; document.<span class="me1">getElementById</span><span class="br0">&#40;</span><span class="st0">'inquiryLabel'</span><span class="br0">&#41;</span>.<span class="me1">className</span> <span class="sy0">=</span> <span class="st0">'errorLabel'</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; input.<span class="me1">inquiry</span>.<span class="kw3">focus</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; error <span class="sy0">=</span> <span class="kw2">true</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>input.<span class="kw3">name</span>.<span class="me1">value</span> <span class="sy0">==</span> <span class="st0">''</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; input.<span class="kw3">name</span>.<span class="me1">className</span> <span class="sy0">=</span> <span class="st0">'inputError'</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; document.<span class="me1">getElementById</span><span class="br0">&#40;</span><span class="st0">'nameLabel'</span><span class="br0">&#41;</span>.<span class="me1">className</span> <span class="sy0">=</span> <span class="st0">'errorLabel'</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; input.<span class="kw3">name</span>.<span class="kw3">focus</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; error <span class="sy0">=</span> <span class="kw2">true</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>input.<span class="me1">email</span>.<span class="me1">value</span>.<span class="me1">indexOf</span><span class="br0">&#40;</span><span class="st0">&quot;@&quot;</span><span class="br0">&#41;</span> <span class="sy0">&gt;</span> <span class="nu0">0</span> <span class="sy0">&amp;&amp;</span> input.<span class="me1">email</span>.<span class="me1">value</span>.<span class="me1">indexOf</span><span class="br0">&#40;</span><span class="st0">&quot;.&quot;</span><span class="br0">&#41;</span> <span class="sy0">&gt;</span> <span class="nu0">2</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Email address seems well formed</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; input.<span class="me1">email</span>.<span class="me1">className</span> <span class="sy0">=</span> <span class="st0">'inputError'</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; document.<span class="me1">getElementById</span><span class="br0">&#40;</span><span class="st0">'emailLabel'</span><span class="br0">&#41;</span>.<span class="me1">className</span> <span class="sy0">=</span> <span class="st0">'errorLabel'</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; input.<span class="me1">email</span>.<span class="kw3">focus</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; error <span class="sy0">=</span> <span class="kw2">true</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>input.<span class="me1">message</span>.<span class="me1">value</span> <span class="sy0">==</span> <span class="st0">''</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; input.<span class="me1">message</span>.<span class="me1">className</span> <span class="sy0">=</span> <span class="st0">'inputError'</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; document.<span class="me1">getElementById</span><span class="br0">&#40;</span><span class="st0">'messageLabel'</span><span class="br0">&#41;</span>.<span class="me1">className</span> <span class="sy0">=</span> <span class="st0">'errorLabel'</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; input.<span class="me1">message</span>.<span class="kw3">focus</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; error <span class="sy0">=</span> <span class="kw2">true</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">// Submit form if after validation error = false</span><br />
&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span>error<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; document.<span class="me1">myForm</span>.<span class="me1">submit</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; <span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p><br class="clear" /><br />
<b>Styling</b><br />
The CSS classes are very simple and use the color red to highlight empty input fields.</p>
<div class="codecolorer-container css mac-classic" style="overflow:auto;white-space:nowrap;width:590px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br /></div></td><td><div class="css codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="re1">.label</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#000000</span><span class="sy0">;</span><br />
&nbsp;<span class="br0">&#125;</span><br />
&nbsp;<br />
&nbsp;<span class="re1">.errorLabel</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span><span class="re0">#FF0000</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">font-weight</span><span class="sy0">:</span><span class="kw2">bold</span><span class="sy0">;</span><br />
&nbsp;<span class="br0">&#125;</span><br />
&nbsp;<br />
&nbsp;<span class="re1">.inputError</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">border</span><span class="sy0">:</span><span class="re3">1px</span> <span class="re0">#FF0000</span> <span class="kw2">solid</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">background-color</span><span class="sy0">:</span><span class="re0">#FFDDDD</span><span class="sy0">;</span><br />
&nbsp;<span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p><br class="clear" /><br />
<b>HTML Form</b><br />
The form below contains commonly used input types including text, textarea and select.</p>
<div class="codecolorer-container html4strict mac-classic" style="overflow:auto;white-space:nowrap;width:590px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br /></div></td><td><div class="html4strict codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc2">&lt;<a href="http://december.com/html/4/element/form.html"><span class="kw2">form</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;myForm&quot;</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;myForm&quot;</span> <span class="kw3">method</span><span class="sy0">=</span><span class="st0">&quot;post&quot;</span> <span class="kw3">action</span><span class="sy0">=</span><span class="st0">&quot;test.php&quot;</span>&gt;</span><br />
&nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/fieldset.html"><span class="kw2">fieldset</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;content&quot;</span>&gt;</span><br />
&nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/legend.html"><span class="kw2">legend</span></a>&gt;&lt;<a href="http://december.com/html/4/element/b.html"><span class="kw2">b</span></a>&gt;</span>Javascript Form Validation<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/b.html"><span class="kw2">b</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/legend.html"><span class="kw2">legend</span></a>&gt;</span><br />
&nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/table.html"><span class="kw2">table</span></a> <span class="kw3">width</span><span class="sy0">=</span><span class="st0">&quot;100%&quot;</span> <span class="kw3">cellspacing</span><span class="sy0">=</span><span class="st0">&quot;0&quot;</span> <span class="kw3">cellpadding</span><span class="sy0">=</span><span class="st0">&quot;0&quot;</span> <span class="kw3">border</span><span class="sy0">=</span><span class="st0">&quot;0&quot;</span>&gt;</span><br />
&nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/tr.html"><span class="kw2">tr</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/td.html"><span class="kw2">td</span></a> <span class="kw3">align</span><span class="sy0">=</span><span class="st0">&quot;right&quot;</span>&gt;&lt;<a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;required-field&quot;</span>&gt;</span>*<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a>&gt;</span> Required<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/td.html"><span class="kw2">td</span></a>&gt;</span><br />
&nbsp; &nbsp;<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/tr.html"><span class="kw2">tr</span></a>&gt;</span><br />
&nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/tr.html"><span class="kw2">tr</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/td.html"><span class="kw2">td</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;inquiryLabel&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;label&quot;</span>&gt;</span>Inquiry Type<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/br.html"><span class="kw2">br</span></a> <span class="sy0">/</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/select.html"><span class="kw2">select</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;inquiry&quot;</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;inquiry_type&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/option.html"><span class="kw2">option</span></a> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;null&quot;</span> selected&gt;</span>Select<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/option.html"><span class="kw2">option</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/option.html"><span class="kw2">option</span></a> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;1&quot;</span>&gt;</span>Support<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/option.html"><span class="kw2">option</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/option.html"><span class="kw2">option</span></a> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;2&quot;</span>&gt;</span>Get a Quote<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/option.html"><span class="kw2">option</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp;<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/select.html"><span class="kw2">select</span></a>&gt;&lt;<a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;required-field&quot;</span>&gt;</span>*<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/td.html"><span class="kw2">td</span></a>&gt;</span><br />
&nbsp; &nbsp;<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/tr.html"><span class="kw2">tr</span></a>&gt;</span><br />
&nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/tr.html"><span class="kw2">tr</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/td.html"><span class="kw2">td</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;nameLabel&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;label&quot;</span>&gt;</span>Full Name:<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/br.html"><span class="kw2">br</span></a> <span class="sy0">/</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/input.html"><span class="kw2">input</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;name&quot;</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;ull_name&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text&quot;</span> <span class="kw3">size</span><span class="sy0">=</span><span class="st0">&quot;30&quot;</span> <span class="sy0">/</span>&gt;&lt;<a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;required-field&quot;</span>&gt;</span>*<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/td.html"><span class="kw2">td</span></a>&gt;</span><br />
&nbsp; &nbsp;<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/tr.html"><span class="kw2">tr</span></a>&gt;</span><br />
&nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/tr.html"><span class="kw2">tr</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/td.html"><span class="kw2">td</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp;Website:<br />
&nbsp; &nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/br.html"><span class="kw2">br</span></a> <span class="sy0">/</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/input.html"><span class="kw2">input</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;url&quot;</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;website&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text&quot;</span> <span class="kw3">size</span><span class="sy0">=</span><span class="st0">&quot;30&quot;</span> <span class="sy0">/</span>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/td.html"><span class="kw2">td</span></a>&gt;</span><br />
&nbsp; &nbsp;<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/tr.html"><span class="kw2">tr</span></a>&gt;</span><br />
&nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/tr.html"><span class="kw2">tr</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/td.html"><span class="kw2">td</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;emailLabel&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;label&quot;</span>&gt;</span>Email address:<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/br.html"><span class="kw2">br</span></a> <span class="sy0">/</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/input.html"><span class="kw2">input</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;email&quot;</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;email_address&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text&quot;</span> <span class="kw3">size</span><span class="sy0">=</span><span class="st0">&quot;30&quot;</span> <span class="sy0">/</span>&gt;&lt;<a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;required-field&quot;</span>&gt;</span>*<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/td.html"><span class="kw2">td</span></a>&gt;</span><br />
&nbsp; &nbsp;<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/tr.html"><span class="kw2">tr</span></a>&gt;</span><br />
&nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/tr.html"><span class="kw2">tr</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/td.html"><span class="kw2">td</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;messageLabel&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;label&quot;</span>&gt;</span>Message:<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/br.html"><span class="kw2">br</span></a> <span class="sy0">/</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/textarea.html"><span class="kw2">textarea</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;message&quot;</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;email_message&quot;</span> <span class="kw3">rows</span><span class="sy0">=</span><span class="st0">&quot;5&quot;</span> <span class="kw3">cols</span><span class="sy0">=</span><span class="st0">&quot;40&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/textarea.html"><span class="kw2">textarea</span></a>&gt;&lt;<a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;required-field&quot;</span>&gt;</span>*<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/td.html"><span class="kw2">td</span></a>&gt;</span><br />
&nbsp; &nbsp;<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/tr.html"><span class="kw2">tr</span></a>&gt;</span><br />
&nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/tr.html"><span class="kw2">tr</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/td.html"><span class="kw2">td</span></a> <span class="kw3">align</span><span class="sy0">=</span><span class="st0">&quot;center&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/br.html"><span class="kw2">br</span></a> <span class="sy0">/</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/input.html"><span class="kw2">input</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;submit&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;button&quot;</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;Submit&quot;</span> <span class="kw3">onclick</span><span class="sy0">=</span><span class="st0">&quot;validateForm()&quot;</span> <span class="sy0">/</span>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/td.html"><span class="kw2">td</span></a>&gt;</span><br />
&nbsp; &nbsp;<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/tr.html"><span class="kw2">tr</span></a>&gt;</span><br />
&nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/table.html"><span class="kw2">table</span></a>&gt;</span><br />
&nbsp;<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/fieldset.html"><span class="kw2">fieldset</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/form.html"><span class="kw2">form</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>You will notice that the id tag for required fields is different from its name tag. Javascript utilizes the <a href="http://www.tizag.com/javascriptT/javascript-getelementbyid.php" target="_blank" title="Javascript getElementById Tutorial">getDocumentById()</a> method to manipulate the input&#8217;s CSS styling, however, your server-side script will use the name tag to process the data entered.<br />
<br class="clear" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hektorparis.com/javascript-form-validation-before-submit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
