<?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; PHP</title>
	<atom:link href="http://www.hektorparis.com/category/php/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>Upload Multiple Images at Once using PHP</title>
		<link>http://www.hektorparis.com/upload-multiple-images-at-once-using-php/</link>
		<comments>http://www.hektorparis.com/upload-multiple-images-at-once-using-php/#comments</comments>
		<pubDate>Tue, 26 May 2009 01:12:41 +0000</pubDate>
		<dc:creator>Hektor</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[ajax file upload]]></category>
		<category><![CDATA[ajax multiple file upload]]></category>
		<category><![CDATA[fancyupload]]></category>
		<category><![CDATA[file input]]></category>
		<category><![CDATA[file uploader]]></category>
		<category><![CDATA[multiple-file upload php]]></category>
		<category><![CDATA[php file uploader]]></category>
		<category><![CDATA[php upload files]]></category>
		<category><![CDATA[php upload images]]></category>
		<category><![CDATA[php upload multiple files]]></category>
		<category><![CDATA[upload images with php]]></category>

		<guid isPermaLink="false">http://www.hektorparis.com/?p=497</guid>
		<description><![CDATA[Using PHP and FancyUpload you can select multiple files to upload at once. FancyUpload is a powerful and elegant Ajax file uploading script that is easy to configure.]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-500" title="PHP and FancyUpload" src="http://www.hektorparis.com/wp-content/uploads/2009/05/php-fancy-upload.jpg" alt="PHP and FancyUpload" width="320" height="240" />Using PHP and <a title="FancyUpload - Swiff meets Ajax" href="http://digitarald.de/project/fancyupload/" target="_blank">FancyUpload</a> you can select multiple files to upload at once. FancyUpload is a powerful and elegant Ajax file uploading script that is easy to setup and configure. What makes FancyUpload attractive to use for uploading files is that it&#8217;s server independent and completely styliable using CSS and XHTML, plus it uses <a href="http://mootools.net/" target="_blank">MooTools</a> to function across modern browsers.</p>
<p>The purpose of this tutorial is to show you how to use FancyUpload for uploading multiple <u>images</u> at once using PHP. Please note that FancyUpload is able to upload other file types as well. I recommend you <a href="http://digitarald.de/project/fancyupload/#showcases" target="_blank" title="FancyUpload Showcases">visit</a> their website to see other showcases. <span id="more-497"></span></p>
<p><br clear="left" /><br />
<b>About PHP File Upload</b><br />
When posting form inputs of &#8220;file&#8221; type, PHP uses the global $_FILES array to upload a file from a client computer to the remote server. The $_FILES array contains the following parameters:</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="re0">$_FILES</span><span class="br0">&#91;</span><span class="st0">&quot;file&quot;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&quot;tmp_name&quot;</span><span class="br0">&#93;</span> <span class="co1">// A temporary name designated by the server</span><br />
<span class="re0">$_FILES</span><span class="br0">&#91;</span><span class="st0">&quot;file&quot;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&quot;name&quot;</span><span class="br0">&#93;</span> <span class="co1">// Original filename</span><br />
<span class="re0">$_FILES</span><span class="br0">&#91;</span><span class="st0">&quot;file&quot;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&quot;type&quot;</span><span class="br0">&#93;</span> <span class="co1">// Mime-type, in this case &quot;image-type&quot;</span><br />
<span class="re0">$_FILES</span><span class="br0">&#91;</span><span class="st0">&quot;file&quot;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&quot;size&quot;</span><span class="br0">&#93;</span> <span class="co1">// File size in bytes</span><br />
<span class="re0">$_FILES</span><span class="br0">&#91;</span><span class="st0">&quot;file&quot;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&quot;error&quot;</span><span class="br0">&#93;</span> <span class="co1">// Error code information about failed upload</span></div></td></tr></tbody></table></div>
<p><br clear="all" /><br />
<b>File Upload and Security</b><br />
It is important to use an upload mechanism that prevents malicious users from performing any unauthorized task. The code below uses the <a href="http://www.php.net/manual/en/function.move-uploaded-file.php" target="_blank">move_uploaded_file($filename, $destination)</a> function to ensure that the file designated by $filename  is a valid upload file (meaning that it was uploaded via PHP&#8217;s HTTP POST upload mechanism).</p>
<p>If the file is valid, it will be moved to the $filename given by the $destination parameter. However,  if $filename  is not a valid upload file, then no action will occur, and move_uploaded_file() will return FALSE. If $filename is a valid upload file, but cannot be moved for some reason, no action will occur, and move_uploaded_file() will return FALSE. Additionally, a warning will be issued. </p>
<p>This sort of check is especially important if there is any chance that anything done with uploaded files could reveal their contents to the user, or even to other users on the same system.</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 /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="coMULTI">/***BOF FILE UPLOAD***/</span><br />
<br />
<span class="co1">// Check that the images directory exists</span><br />
<span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/file_exists"><span class="kw3">file_exists</span></a><span class="br0">&#40;</span><span class="re0">$upload_directory</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">// Upload file or return error message information</span><br />
&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><a href="http://www.php.net/move_uploaded_file"><span class="kw3">move_uploaded_file</span></a><span class="br0">&#40;</span><span class="re0">$_FILES</span><span class="br0">&#91;</span><span class="st_h">'Filedata'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'tmp_name'</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="re0">$upload_directory</span> <span class="sy0">.</span><span class="re0">$_FILES</span><span class="br0">&#91;</span><span class="st_h">'Filedata'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'name'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$error</span> &nbsp;<span class="sy0">=</span> <span class="st0">&quot;Could not upload file &quot;</span> <span class="sy0">.</span><span class="re0">$_FILES</span><span class="br0">&#91;</span><span class="st0">&quot;Filedata&quot;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&quot;name&quot;</span><span class="br0">&#93;</span> <span class="sy0">.</span><span class="st0">&quot;&lt;br /&gt;&quot;</span> <span class="sy0">.</span><span class="re0">$_FILES</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
<span class="coMULTI">/***EOF FILE UPLOAD***/</span></div></td></tr></tbody></table></div>
<p><br clear="all" /><br />
<b>Before you Begin</b><br />
<a href="http://github.com/digitarald/digitarald-fancyupload/tree/master" target="_blank" title="Download UploadFancy">Download</a> the complete ActionScript and JavaScript source files, documentation and showcases from the FancyUpload website. The source code below is part of the &#8220;Photo Queue&#8221; showcase which is intended for uploading images only by restricting the file type.</p>
<p>Using <a href="http://filezilla-project.org/" target="_blank">FileZilla</a> or your favorite FTP client, upload the decompressed &#8220;fancyupload&#8221; directory to your web server. Next, create a directory where you want to upload images and assign it file permissions 777. Now let&#8217;s begin!</p>
<p><b>FancyUpload version 3.0 features:</b><br />
- Ability to select multiple files to upload at once<br />
- Filter file by type<br />
- A lot of possible Events to add your own behaviour<br />
- Show and filter useful file information before the upload starts<br />
- Limit uploads by file count, type or size<br />
- Platform and server independent, just needs Flash 9+ (> 95% penetration)<br />
- Graceful Degradation, since the element is replaced after the Flash is loaded successfully<br />
- Cancel running uploads, add files during upload<br />
- Everything is optional, documented and easy editable</p>
<p><b>Compatibility</b><br />
Fully compatible with all A-Grade Browsers (Internet Explorer 6+, Opera 9, Firefox 1.5+ and Safari 3+) with Adobe Flash 9 and 10 player.<br />
<br clear="all" /><br />
<b>Source Files:</b></p>
<p><b>CSS Stylesheet</b><br />
<a href="http://www.hektorparis.com/hp-lab/fancyupload/showcase/photoqueue/style.css" target="_blank">/fancyupload/showcase/<b>photoqueue</b>/style.css</a></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 />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 />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br /></div></td><td><div class="css codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="coMULTI">/**<br />
&nbsp;* FancyUpload Showcase<br />
&nbsp;*<br />
&nbsp;* @license &nbsp; &nbsp; MIT License<br />
&nbsp;* @author&nbsp; &nbsp; &nbsp; Harald Kirschner &lt;mail [at] digitarald [dot] de&gt;<br />
&nbsp;* @copyright &nbsp; Authors<br />
&nbsp;*/</span><br />
&nbsp;<br />
<span class="coMULTI">/* CSS vs. Adblock tabs */</span><br />
<span class="re1">.swiff-uploader-box</span> a <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">none</span> !important<span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
&nbsp;<br />
<span class="coMULTI">/* .hover simulates the flash interactions */</span><br />
a<span class="re2">:hover</span><span class="sy0">,</span> a<span class="re1">.hover</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span> <span class="kw2">red</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
&nbsp;<br />
<span class="re0">#demo-status</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">padding</span><span class="sy0">:</span> <span class="re3">10px</span> <span class="re3">15px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span> <span class="re3">420px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">border</span><span class="sy0">:</span> <span class="re3">1px</span> <span class="kw2">solid</span> <span class="re0">#eee</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
&nbsp;<br />
<span class="re0">#demo-status</span> <span class="re1">.progress</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="co2">../../assets/progress-bar/progress.gif</span><span class="br0">&#41;</span> <span class="kw2">no-repeat</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">background-position</span><span class="sy0">:</span> <span class="re3">+<span class="nu0">50</span>%</span> <span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">margin-right</span><span class="sy0">:</span> <span class="re3">0.5em</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">vertical-align</span><span class="sy0">:</span> <span class="kw2">middle</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
&nbsp;<br />
<span class="re0">#demo-status</span> <span class="re1">.progress-text</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">font-size</span><span class="sy0">:</span> <span class="re3">0.9em</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 />
<span class="br0">&#125;</span><br />
&nbsp;<br />
<span class="re0">#demo-list</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">list-style</span><span class="sy0">:</span> <span class="kw2">none</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span> <span class="re3">450px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">margin</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
&nbsp;<br />
<span class="re0">#demo-list</span> li<span class="re1">.validation-error</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">padding-left</span><span class="sy0">:</span> <span class="re3">44px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">block</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">clear</span><span class="sy0">:</span> <span class="kw1">left</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">line-height</span><span class="sy0">:</span> <span class="re3">40px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span> <span class="re0">#8a1f11</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">cursor</span><span class="sy0">:</span> <span class="kw2">pointer</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">border-bottom</span><span class="sy0">:</span> <span class="re3">1px</span> <span class="kw2">solid</span> <span class="re0">#fbc2c4</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span> <span class="re0">#fbe3e4</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="co2">assets/failed.png</span><span class="br0">&#41;</span> <span class="kw2">no-repeat</span> <span class="re3">4px</span> <span class="re3">4px</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
&nbsp;<br />
<span class="re0">#demo-list</span> li<span class="re1">.file</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">border-bottom</span><span class="sy0">:</span> <span class="re3">1px</span> <span class="kw2">solid</span> <span class="re0">#eee</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="co2">assets/file.png</span><span class="br0">&#41;</span> <span class="kw2">no-repeat</span> <span class="re3">4px</span> <span class="re3">4px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">overflow</span><span class="sy0">:</span> <span class="kw2">auto</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="re0">#demo-list</span> li<span class="re1">.file</span><span class="re1">.file-uploading</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">background-image</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="co2">assets/uploading.png</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">background-color</span><span class="sy0">:</span> <span class="re0">#D9DDE9</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="re0">#demo-list</span> li<span class="re1">.file</span><span class="re1">.file-success</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">background-image</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="co2">assets/success.png</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="re0">#demo-list</span> li<span class="re1">.file</span><span class="re1">.file-failed</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">background-image</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="co2">assets/failed.png</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
&nbsp;<br />
<span class="re0">#demo-list</span> li<span class="re1">.file</span> <span class="re1">.file-name</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">font-size</span><span class="sy0">:</span> <span class="re3">1.2em</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">margin-left</span><span class="sy0">:</span> <span class="re3">44px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">block</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">clear</span><span class="sy0">:</span> <span class="kw1">left</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">line-height</span><span class="sy0">:</span> <span class="re3">40px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">height</span><span class="sy0">:</span> <span class="re3">40px</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 />
<span class="br0">&#125;</span><br />
<span class="re0">#demo-list</span> li<span class="re1">.file</span> <span class="re1">.file-size</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">font-size</span><span class="sy0">:</span> <span class="re3">0.9em</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">line-height</span><span class="sy0">:</span> <span class="re3">18px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">float</span><span class="sy0">:</span> <span class="kw1">right</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">margin-top</span><span class="sy0">:</span> <span class="re3">2px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">margin-right</span><span class="sy0">:</span> <span class="re3">6px</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="re0">#demo-list</span> li<span class="re1">.file</span> <span class="re1">.file-info</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">block</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">margin-left</span><span class="sy0">:</span> <span class="re3">44px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">font-size</span><span class="sy0">:</span> <span class="re3">0.9em</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">line-height</span><span class="sy0">:</span> <span class="re3">20px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">clear</span><br />
<span class="br0">&#125;</span><br />
<span class="re0">#demo-list</span> li<span class="re1">.file</span> <span class="re1">.file-remove</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">clear</span><span class="sy0">:</span> <span class="kw1">right</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">float</span><span class="sy0">:</span> <span class="kw1">right</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">line-height</span><span class="sy0">:</span> <span class="re3">18px</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">margin-right</span><span class="sy0">:</span> <span class="re3">6px</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p><b>Javascript and MooTools</b><br />
<a href="http://www.hektorparis.com/hp-lab/fancyupload/showcase/photoqueue/script.js" target="_blank">/fancyupload/showcase/<b>photoqueue</b>/script.js</a></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 />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 />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br />119<br />120<br />121<br />122<br />123<br />124<br />125<br />126<br />127<br />128<br /></div></td><td><div class="javascript codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="coMULTI">/**<br />
&nbsp;* FancyUpload Showcase<br />
&nbsp;*<br />
&nbsp;* @license &nbsp; &nbsp; MIT License<br />
&nbsp;* @author&nbsp; &nbsp; &nbsp; Harald Kirschner &lt;mail [at] digitarald [dot] de&gt;<br />
&nbsp;* @copyright &nbsp; Authors<br />
&nbsp;*/</span><br />
&nbsp;<br />
window.<span class="me1">addEvent</span><span class="br0">&#40;</span><span class="st0">'domready'</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">// wait for the content</span><br />
&nbsp;<br />
&nbsp; &nbsp; <span class="co1">// our uploader instance </span><br />
&nbsp;<br />
&nbsp; &nbsp; <span class="kw2">var</span> up <span class="sy0">=</span> <span class="kw2">new</span> FancyUpload2<span class="br0">&#40;</span>$<span class="br0">&#40;</span><span class="st0">'demo-status'</span><span class="br0">&#41;</span><span class="sy0">,</span> $<span class="br0">&#40;</span><span class="st0">'demo-list'</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="br0">&#123;</span> <span class="co1">// options object</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// we console.log infos, remove that in production!!</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; verbose<span class="sy0">:</span> <span class="kw2">true</span><span class="sy0">,</span><br />
&nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// url is read from the form, so you just have to change one place</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; url<span class="sy0">:</span> $<span class="br0">&#40;</span><span class="st0">'form-demo'</span><span class="br0">&#41;</span>.<span class="me1">action</span><span class="sy0">,</span><br />
&nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// path to the SWF file</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; path<span class="sy0">:</span> <span class="st0">'../../source/Swiff.Uploader.swf'</span><span class="sy0">,</span><br />
&nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// remove that line to select all files, or edit it, add more items</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; typeFilter<span class="sy0">:</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">'Images (*.jpg, *.jpeg, *.gif, *.png)'</span><span class="sy0">:</span> <span class="st0">'*.jpg; *.jpeg; *.gif; *.png'</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="sy0">,</span><br />
&nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// this is our browse button, *target* is overlayed with the Flash movie</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; target<span class="sy0">:</span> <span class="st0">'demo-browse'</span><span class="sy0">,</span><br />
&nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// graceful degradation, onLoad is only called if all went well with Flash</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">onLoad</span><span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">'demo-status'</span><span class="br0">&#41;</span>.<span class="me1">removeClass</span><span class="br0">&#40;</span><span class="st0">'hide'</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// we show the actual UI</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">'demo-fallback'</span><span class="br0">&#41;</span>.<span class="me1">destroy</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// ... and hide the plain form</span><br />
&nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// We relay the interactions with the overlayed flash to the link</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">this</span>.<span class="me1">target</span>.<span class="me1">addEvents</span><span class="br0">&#40;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; click<span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">false</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mouseenter<span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">this</span>.<span class="me1">addClass</span><span class="br0">&#40;</span><span class="st0">'hover'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mouseleave<span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">this</span>.<span class="me1">removeClass</span><span class="br0">&#40;</span><span class="st0">'hover'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">this</span>.<span class="kw3">blur</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mousedown<span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">this</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; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Interactions for the 2 other buttons</span><br />
&nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">'demo-clear'</span><span class="br0">&#41;</span>.<span class="me1">addEvent</span><span class="br0">&#40;</span><span class="st0">'click'</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; up.<span class="me1">remove</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// remove all files</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">false</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">'demo-upload'</span><span class="br0">&#41;</span>.<span class="me1">addEvent</span><span class="br0">&#40;</span><span class="st0">'click'</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; up.<span class="me1">start</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// start upload</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">false</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="sy0">,</span><br />
&nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Edit the following lines, it is your custom event handling</span><br />
&nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/**<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* Is called when files were not added, &quot;files&quot; is an array of invalid File classes.<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* This example creates a list of error elements directly in the file list, which<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* hide on click.<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*/</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; onSelectFail<span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>files<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; files.<span class="me1">each</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span>file<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">new</span> Element<span class="br0">&#40;</span><span class="st0">'li'</span><span class="sy0">,</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">'class'</span><span class="sy0">:</span> <span class="st0">'validation-error'</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; html<span class="sy0">:</span> file.<span class="me1">validationErrorMessage</span> <span class="sy0">||</span> file.<span class="me1">validationError</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; title<span class="sy0">:</span> MooTools.<span class="me1">lang</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'FancyUpload'</span><span class="sy0">,</span> <span class="st0">'removeTitle'</span><span class="br0">&#41;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; events<span class="sy0">:</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; click<span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">this</span>.<span class="me1">destroy</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>.<span class="me1">inject</span><span class="br0">&#40;</span><span class="kw1">this</span>.<span class="me1">list</span><span class="sy0">,</span> <span class="st0">'top'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="sy0">,</span> <span class="kw1">this</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="sy0">,</span><br />
&nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/**<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* This one was directly in FancyUpload2 before, the event makes it<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* easier for you, to add your own response handling (you probably want<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* to send something else than JSON or different items).<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; onFileSuccess<span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>file<span class="sy0">,</span> response<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> json <span class="sy0">=</span> <span class="kw2">new</span> Hash<span class="br0">&#40;</span>JSON.<span class="me1">decode</span><span class="br0">&#40;</span>response<span class="sy0">,</span> <span class="kw2">true</span><span class="br0">&#41;</span> <span class="sy0">||</span> <span class="br0">&#123;</span><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>json.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'status'</span><span class="br0">&#41;</span> <span class="sy0">==</span> <span class="st0">'1'</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; file.<span class="me1">element</span>.<span class="me1">addClass</span><span class="br0">&#40;</span><span class="st0">'file-success'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; file.<span class="me1">info</span>.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">'html'</span><span class="sy0">,</span> <span class="st0">'&lt;strong&gt;Image was uploaded:&lt;/strong&gt; '</span> <span class="sy0">+</span> json.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'width'</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">' x '</span> <span class="sy0">+</span> json.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'height'</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">'px, &lt;em&gt;'</span> <span class="sy0">+</span> json.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'mime'</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">'&lt;/em&gt;)'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; file.<span class="me1">element</span>.<span class="me1">addClass</span><span class="br0">&#40;</span><span class="st0">'file-failed'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; file.<span class="me1">info</span>.<span class="me1">set</span><span class="br0">&#40;</span><span class="st0">'html'</span><span class="sy0">,</span> <span class="st0">'&lt;strong&gt;An error occured:&lt;/strong&gt; '</span> <span class="sy0">+</span> <span class="br0">&#40;</span>json.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'error'</span><span class="br0">&#41;</span> <span class="sy0">?</span> <span class="br0">&#40;</span>json.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'error'</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">' #'</span> <span class="sy0">+</span> json.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'code'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">:</span> response<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="sy0">,</span><br />
&nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/**<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* onFail is called when the Flash movie got bashed by some browser plugin<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* like Adblock or Flashblock.<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; onFail<span class="sy0">:</span> <span class="kw2">function</span><span class="br0">&#40;</span>error<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">switch</span> <span class="br0">&#40;</span>error<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">'hidden'</span><span class="sy0">:</span> <span class="co1">// works after enabling the movie and clicking refresh</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">alert</span><span class="br0">&#40;</span><span class="st0">'To enable the embedded uploader, unblock it in your browser and refresh (see Adblock).'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">'blocked'</span><span class="sy0">:</span> <span class="co1">// This no *full* fail, it works after the user clicks the button</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">alert</span><span class="br0">&#40;</span><span class="st0">'To enable the embedded uploader, enable the blocked Flash movie (see Flashblock).'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">'empty'</span><span class="sy0">:</span> <span class="co1">// Oh oh, wrong path</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">alert</span><span class="br0">&#40;</span><span class="st0">'A required file was not found, please be patient and we fix this.'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">'flash'</span><span class="sy0">:</span> <span class="co1">// no flash 9+ :(</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">alert</span><span class="br0">&#40;</span><span class="st0">'To enable the embedded uploader, install the latest Adobe Flash plugin.'</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp;<br />
&nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp;<br />
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
<p><b>PHP Image Upload Script</b><br />
<u>/fancyupload/<b>showcase</b>/script.php</u><br />
<b>Note:</b> This script has been modified from its original form and I&#8217;ve commented out lines 39 through 58 to disable the showcase&#8217;s test mode and implemented code for production mode.</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 />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br />119<br />120<br />121<br />122<br />123<br />124<br />125<br />126<br />127<br />128<br />129<br />130<br />131<br />132<br />133<br />134<br />135<br />136<br />137<br />138<br />139<br />140<br />141<br />142<br />143<br />144<br />145<br />146<br />147<br />148<br />149<br />150<br />151<br />152<br />153<br />154<br />155<br />156<br />157<br />158<br />159<br />160<br />161<br /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="co4">/**<br />
&nbsp; &nbsp; &nbsp;* Swiff.Uploader Example Backend<br />
&nbsp; &nbsp; &nbsp;*<br />
&nbsp; &nbsp; &nbsp;* This file represents a simple logging, validation and output.<br />
&nbsp; &nbsp; &nbsp;* &nbsp;*<br />
&nbsp; &nbsp; &nbsp;* WARNING: If you really copy these lines in your backend without<br />
&nbsp; &nbsp; &nbsp;* any modification, there is something seriously wrong! Drop me a line<br />
&nbsp; &nbsp; &nbsp;* and I can give you a good rate for fancy and customised installation.<br />
&nbsp; &nbsp; &nbsp;*<br />
&nbsp; &nbsp; &nbsp;* No showcase represents 100% an actual real world file handling,<br />
&nbsp; &nbsp; &nbsp;* you need to move and process the file in your own code!<br />
&nbsp; &nbsp; &nbsp;* Just like you would do it with other uploaded files, nothing<br />
&nbsp; &nbsp; &nbsp;* special.<br />
&nbsp; &nbsp; &nbsp;*<br />
&nbsp; &nbsp; &nbsp;* @license &nbsp; &nbsp; MIT License<br />
&nbsp; &nbsp; &nbsp;*<br />
&nbsp; &nbsp; &nbsp;* @author&nbsp; &nbsp; &nbsp; Harald Kirschner &lt;mail [at] digitarald [dot] de&gt;<br />
&nbsp; &nbsp; &nbsp;* @copyright &nbsp; Authors<br />
&nbsp; &nbsp; &nbsp;*<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co4">/**<br />
&nbsp; &nbsp; &nbsp;* Only needed if you have a logged in user, see option appendCookieData,<br />
&nbsp; &nbsp; &nbsp;* which adds session id and other available cookies to the sent data.<br />
&nbsp; &nbsp; &nbsp;*<br />
&nbsp; &nbsp; &nbsp;* session_id($_POST['SID']); // whatever your session name is, adapt that!<br />
&nbsp; &nbsp; &nbsp;* session_start();<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">// Request log</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co4">/**<br />
&nbsp; &nbsp; &nbsp;* You don't need to log, this is just for the showcase. Better remove<br />
&nbsp; &nbsp; &nbsp;* those lines for production since the log contains detailed file<br />
&nbsp; &nbsp; &nbsp;* information.<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="coMULTI">/*$result = array();<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; $result['time'] &nbsp;= date('r');<br />
&nbsp; &nbsp; $result['addr'] &nbsp;= substr_replace(gethostbyaddr($_SERVER['REMOTE_ADDR']), '******', 0, 6);<br />
&nbsp; &nbsp; $result['agent'] = $_SERVER['HTTP_USER_AGENT'];<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; if(count($_GET)) &nbsp; { $result['get'] = $_GET; }<br />
&nbsp; &nbsp; if(count($_POST)) &nbsp;{ $result['post'] = $_POST; }<br />
&nbsp; &nbsp; if(count($_FILES)) { $result['files'] = $_FILES; }<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; // we kill an old file to keep the size small<br />
&nbsp; &nbsp; if(file_exists('script.log') &amp;&amp; filesize('script.log') &gt; 102400) { unlink('script.log'); }<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; $log = @fopen('script.log', 'a');<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; if($log)<br />
&nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; fputs($log, print_r($result, true) . &quot;\n---\n&quot;);<br />
&nbsp; &nbsp; &nbsp; &nbsp; fclose($log);<br />
&nbsp; &nbsp; }*/</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">// Validation</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="re0">$error</span> <span class="sy0">=</span> <span class="kw2">false</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp;<span class="co1">// NOTE: You need to create a directory if it doesn't already exist</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<span class="co1">// Specify directory path for your images directory</span><br />
&nbsp; &nbsp; <span class="re0">$upload_directory</span> &nbsp;<span class="sy0">=</span> <span class="re0">$_SERVER</span><span class="br0">&#91;</span><span class="st_h">'DOCUMENT_ROOT'</span><span class="br0">&#93;</span> <span class="sy0">.</span><span class="st0">&quot;/fancyupload/uploads/&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$_FILES</span><span class="br0">&#91;</span><span class="st_h">'Filedata'</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">||</span> <span class="sy0">!</span><a href="http://www.php.net/is_uploaded_file"><span class="kw3">is_uploaded_file</span></a><span class="br0">&#40;</span><span class="re0">$_FILES</span><span class="br0">&#91;</span><span class="st_h">'Filedata'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'tmp_name'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="re0">$error</span> <span class="sy0">=</span> <span class="st_h">'Invalid Upload'</span><span class="sy0">;</span> <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co4">/**<br />
&nbsp; &nbsp; &nbsp;* You would add more validation, checking image type or user rights.<br />
&nbsp; &nbsp; &nbsp;*<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="re0">$error</span> <span class="sy0">&amp;&amp;</span> <span class="re0">$_FILES</span><span class="br0">&#91;</span><span class="st_h">'Filedata'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'size'</span><span class="br0">&#93;</span> <span class="sy0">&gt;</span> <span class="nu0">2</span> <span class="sy0">*</span> <span class="nu0">1024</span> <span class="sy0">*</span> <span class="nu0">1024</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="re0">$error</span> <span class="sy0">=</span> <span class="st_h">'Please upload only files smaller than 2Mb!'</span><span class="sy0">;</span> <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="kw1">else</span> <span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="re0">$error</span> <span class="sy0">&amp;&amp;</span> <span class="sy0">!</span><span class="br0">&#40;</span><span class="re0">$size</span> <span class="sy0">=</span> <span class="sy0">@</span><a href="http://www.php.net/getimagesize"><span class="kw3">getimagesize</span></a><span class="br0">&#40;</span><span class="re0">$_FILES</span><span class="br0">&#91;</span><span class="st_h">'Filedata'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'tmp_name'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="re0">$error</span> <span class="sy0">=</span> <span class="st_h">'Please upload only images, no other files are supported.'</span><span class="sy0">;</span> <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="kw1">else</span> <span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="re0">$error</span> <span class="sy0">&amp;&amp;</span> <span class="sy0">!</span><a href="http://www.php.net/in_array"><span class="kw3">in_array</span></a><span class="br0">&#40;</span><span class="re0">$size</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span><span class="sy0">,</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="nu0">1</span><span class="sy0">,</span> <span class="nu0">2</span><span class="sy0">,</span> <span class="nu0">3</span><span class="sy0">,</span> <span class="nu0">7</span><span class="sy0">,</span> <span class="nu0">8</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="re0">$error</span> <span class="sy0">=</span> <span class="st_h">'Please upload only images of type JPEG, GIF or PNG.'</span><span class="sy0">;</span> <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="kw1">else</span> <span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="re0">$error</span> <span class="sy0">&amp;&amp;</span> <span class="br0">&#40;</span><span class="re0">$size</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span> <span class="sy0">&lt;</span> <span class="nu0">25</span><span class="br0">&#41;</span> <span class="sy0">||</span> <span class="br0">&#40;</span><span class="re0">$size</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span> <span class="sy0">&lt;</span> <span class="nu0">25</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="re0">$error</span> <span class="sy0">=</span> <span class="st_h">'Please upload an image bigger than 25px.'</span><span class="sy0">;</span> <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="kw1">else</span> <span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="re0">$error</span> <span class="sy0">&amp;&amp;</span> <a href="http://www.php.net/file_exists"><span class="kw3">file_exists</span></a><span class="br0">&#40;</span><span class="re0">$upload_directory</span> <span class="sy0">.</span><span class="re0">$_FILES</span><span class="br0">&#91;</span><span class="st_h">'Filedata'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'tmp_name'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="re0">$error</span> <span class="sy0">=</span> <span class="re0">$_FILES</span><span class="br0">&#91;</span><span class="st0">&quot;Filedata&quot;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&quot;name&quot;</span><span class="br0">&#93;</span> <span class="sy0">.</span><span class="st0">&quot; already exists.&quot;</span><span class="sy0">;</span> <span class="br0">&#125;</span> &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">// Processing</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co4">/**<br />
&nbsp; &nbsp; &nbsp;* Its a demo, you would move or process the file like:<br />
&nbsp; &nbsp; &nbsp;*<br />
&nbsp; &nbsp; &nbsp;* move_uploaded_file($_FILES['Filedata']['tmp_name'], '../uploads/' . $_FILES['Filedata']['name']);<br />
&nbsp; &nbsp; &nbsp;* $return['src'] = '/uploads/' . $_FILES['Filedata']['name'];<br />
&nbsp; &nbsp; &nbsp;*<br />
&nbsp; &nbsp; &nbsp;* or<br />
&nbsp; &nbsp; &nbsp;*<br />
&nbsp; &nbsp; &nbsp;* $return['link'] = YourImageLibrary::createThumbnail($_FILES['Filedata']['tmp_name']);<br />
&nbsp; &nbsp; &nbsp;*<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$error</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="re0">$return</span> <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st_h">'status'</span> <span class="sy0">=&gt;</span> <span class="st_h">'0'</span><span class="sy0">,</span> <span class="st_h">'error'</span> <span class="sy0">=&gt;</span> <span class="re0">$error</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span> <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="kw1">else</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$return</span> <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st_h">'status'</span> <span class="sy0">=&gt;</span> <span class="st_h">'1'</span><span class="sy0">,</span> <span class="st_h">'name'</span> <span class="sy0">=&gt;</span> <span class="re0">$_FILES</span><span class="br0">&#91;</span><span class="st_h">'Filedata'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'name'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Our processing, we get a hash value from the file</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$return</span><span class="br0">&#91;</span><span class="st_h">'hash'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <a href="http://www.php.net/md5_file"><span class="kw3">md5_file</span></a><span class="br0">&#40;</span><span class="re0">$_FILES</span><span class="br0">&#91;</span><span class="st_h">'Filedata'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'tmp_name'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// ... and if available, we get image data</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$info</span> <span class="sy0">=</span> <span class="sy0">@</span><a href="http://www.php.net/getimagesize"><span class="kw3">getimagesize</span></a><span class="br0">&#40;</span><span class="re0">$_FILES</span><span class="br0">&#91;</span><span class="st_h">'Filedata'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'tmp_name'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/***BOF FILE UPLOAD***/</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Specify directory path for your images directory</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$upload_directory</span> &nbsp;<span class="sy0">=</span> <span class="re0">$_SERVER</span><span class="br0">&#91;</span><span class="st_h">'DOCUMENT_ROOT'</span><span class="br0">&#93;</span> <span class="sy0">.</span><span class="st0">&quot;/fancyupload/images/&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Check that the images directory exists</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/file_exists"><span class="kw3">file_exists</span></a><span class="br0">&#40;</span><span class="re0">$upload_directory</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Upload file or return error message information</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><a href="http://www.php.net/move_uploaded_file"><span class="kw3">move_uploaded_file</span></a><span class="br0">&#40;</span><span class="re0">$_FILES</span><span class="br0">&#91;</span><span class="st_h">'Filedata'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'tmp_name'</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="re0">$upload_directory</span> <span class="sy0">.</span><span class="re0">$_FILES</span><span class="br0">&#91;</span><span class="st_h">'Filedata'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'name'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$error</span> &nbsp;<span class="sy0">=</span> <span class="st0">&quot;Could not upload file &quot;</span> <span class="sy0">.</span><span class="re0">$_FILES</span><span class="br0">&#91;</span><span class="st0">&quot;Filedata&quot;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&quot;name&quot;</span><span class="br0">&#93;</span> <span class="sy0">.</span><span class="st0">&quot;&lt;br /&gt;&quot;</span> <span class="sy0">.</span><span class="re0">$_FILES</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/***EOF FILE UPLOAD***/</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$info</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$return</span><span class="br0">&#91;</span><span class="st_h">'width'</span><span class="br0">&#93;</span> &nbsp;<span class="sy0">=</span> <span class="re0">$info</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$return</span><span class="br0">&#91;</span><span class="st_h">'height'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$info</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$return</span><span class="br0">&#91;</span><span class="st_h">'mime'</span><span class="br0">&#93;</span> &nbsp; <span class="sy0">=</span> <span class="re0">$info</span><span class="br0">&#91;</span><span class="st_h">'mime'</span><span class="br0">&#93;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">// Output</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co4">/**<br />
&nbsp; &nbsp; &nbsp;* Again, a demo case. We can switch here, for different showcases<br />
&nbsp; &nbsp; &nbsp;* between different formats. You can also return plain data, like an URL<br />
&nbsp; &nbsp; &nbsp;* or whatever you want.<br />
&nbsp; &nbsp; &nbsp;*<br />
&nbsp; &nbsp; &nbsp;* The Content-type headers are uncommented, since Flash doesn't care for them<br />
&nbsp; &nbsp; &nbsp;* anyway. This way also the IFrame-based uploader sees the content.<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <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">$_REQUEST</span><span class="br0">&#91;</span><span class="st_h">'response'</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">&amp;&amp;</span> <span class="re0">$_REQUEST</span><span class="br0">&#91;</span><span class="st_h">'response'</span><span class="br0">&#93;</span> <span class="sy0">==</span> <span class="st_h">'xml'</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// header('Content-type: text/xml');</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Really dirty, use DOM and CDATA section!</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st_h">'&lt;response&gt;'</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$return</span> <span class="kw1">as</span> <span class="re0">$key</span> <span class="sy0">=&gt;</span> <span class="re0">$value</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;&lt;<span class="es4">$key</span>&gt;&lt;![CDATA[<span class="es4">$value</span>]]&gt;&lt;/<span class="es4">$key</span>&gt;&quot;</span><span class="sy0">;</span> <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st_h">'&lt;/response&gt;'</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span> <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="kw1">else</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// header('Content-type: application/json');</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> json_encode<span class="br0">&#40;</span><span class="re0">$return</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p><b>XHTML Markup</b><br />
<u>/fancyupload/showcase/<b>photoqueue</b>/index.html</u></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 /></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">action</span><span class="sy0">=</span><span class="st0">&quot;../script.php&quot;</span> <span class="kw3">method</span><span class="sy0">=</span><span class="st0">&quot;post&quot;</span> <span class="kw3">enctype</span><span class="sy0">=</span><span class="st0">&quot;multipart/form-data&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;form-demo&quot;</span>&gt;</span><br />
&nbsp;<br />
&nbsp; &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;demo-fallback&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/legend.html"><span class="kw2">legend</span></a>&gt;</span>File Upload<span class="sc2">&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; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; This form is just an example fallback for the unobtrusive behaviour of FancyUpload.<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If this part is not changed, something must be wrong with your code.<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/label.html"><span class="kw2">label</span></a> <span class="kw3">for</span><span class="sy0">=</span><span class="st0">&quot;demo-photoupload&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Upload a Photo:<br />
&nbsp; &nbsp; &nbsp; &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">type</span><span class="sy0">=</span><span class="st0">&quot;file&quot;</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;Filedata&quot;</span> <span class="sy0">/</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <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 />
&nbsp; &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 />
&nbsp;<br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;demo-status&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;hide&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;demo-browse&quot;</span>&gt;</span>Browse Files<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 />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;demo-clear&quot;</span>&gt;</span>Clear List<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 />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;demo-upload&quot;</span>&gt;</span>Start Upload<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 />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/strong.html"><span class="kw2">strong</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;overall-title&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/strong.html"><span class="kw2">strong</span></a>&gt;&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; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/img.html"><span class="kw2">img</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;../../assets/progress-bar/bar.gif&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;progress overall-progress&quot;</span> <span class="sy0">/</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/strong.html"><span class="kw2">strong</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;current-title&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/strong.html"><span class="kw2">strong</span></a>&gt;&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; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/img.html"><span class="kw2">img</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;../../assets/progress-bar/bar.gif&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;progress current-progress&quot;</span> <span class="sy0">/</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;current-text&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp;<br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;demo-list&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a>&gt;</span><br />
&nbsp;<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>Note that the &#8220;enctype&#8221; attribute for the form specifies the content-type  to use when submitting the form. The &#8220;multipart/form-data&#8221; is used when a form requires binary data, like the contents of a file, to be uploaded.</p>
<p><b>Putting it all together</b><br />
Modify <u>/fancyupload/showcase/<b>photoqueue</b>/index.html</u> to include all Javascript and CSS files necessary for FancyUpload to work properly.</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 />56<br />57<br />58<br />59<br />60<br />61<br /></div></td><td><div class="html4strict codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc0">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;</span><br />
<span class="sc0">&quot;http://www.w3.org/TR/html4/loose.dtd&quot;&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span>FancyUpload Photo Queue Showcase<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/meta.html"><span class="kw2">meta</span></a> <span class="kw3">http-equiv</span><span class="sy0">=</span><span class="st0">&quot;Content-Type&quot;</span> <span class="kw3">content</span><span class="sy0">=</span><span class="st0">&quot;text/html; charset=iso-8859-1&quot;</span>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/link.html"><span class="kw2">link</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;style.css&quot;</span> <span class="kw3">rel</span><span class="sy0">=</span><span class="st0">&quot;stylesheet&quot;</span> <span class="kw3">media</span><span class="sy0">=</span><span class="st0">&quot;screen&quot;</span> <span class="sy0">/</span>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;http://ajax.googleapis.com/ajax/libs/mootools/1.2.2/mootools.js&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;../../source/Swiff.Uploader.js&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;../../source/Fx.ProgressBar.js&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;../../source/Lang.js&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;../../source/FancyUpload2.js&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;script.js&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/script.html"><span class="kw2">script</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/style.html"><span class="kw2">style</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/css&quot;</span>&gt;</span><br />
&nbsp;body {<br />
&nbsp; &nbsp; font-family:Verdana, Arial, Helvetica, sans-serif;<br />
&nbsp; &nbsp; font-size:11px;<br />
&nbsp;}<br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/style.html"><span class="kw2">style</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
&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;<span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">&quot;width:500px; margin-left:auto; margin-right:auto;&quot;</span>&gt;</span><br />
&nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/h3.html"><span class="kw2">h3</span></a>&gt;</span>Upload Multiple Images at Once using PHP and FancyUpload<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/h3.html"><span class="kw2">h3</span></a>&gt;</span><br />
&nbsp;<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;../script.php&quot;</span> <span class="kw3">method</span><span class="sy0">=</span><span class="st0">&quot;post&quot;</span> <span class="kw3">enctype</span><span class="sy0">=</span><span class="st0">&quot;multipart/form-data&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;form-demo&quot;</span>&gt;</span><br />
<br />
&nbsp; &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;demo-fallback&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/legend.html"><span class="kw2">legend</span></a>&gt;</span>File Upload<span class="sc2">&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; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; This form is just an example fallback for the unobtrusive behaviour of FancyUpload.<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If this part is not changed, something must be wrong with your code.<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/label.html"><span class="kw2">label</span></a> <span class="kw3">for</span><span class="sy0">=</span><span class="st0">&quot;demo-photoupload&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Upload a Photo:<br />
&nbsp; &nbsp; &nbsp; &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">type</span><span class="sy0">=</span><span class="st0">&quot;file&quot;</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;Filedata&quot;</span> <span class="sy0">/</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <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 />
&nbsp; &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 />
<br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;demo-status&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;hide&quot;</span>&gt;</span><br />
&nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;demo-browse&quot;</span>&gt;</span>Browse Files<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> <span class="sc1">&amp;nbsp;</span> | <span class="sc1">&amp;nbsp;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;demo-clear&quot;</span>&gt;</span>Clear List<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> <span class="sc1">&amp;nbsp;</span> | <span class="sc1">&amp;nbsp;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/a.html"><span class="kw2">a</span></a> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;demo-upload&quot;</span>&gt;</span>Start Upload<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 />
&nbsp; &nbsp;<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/strong.html"><span class="kw2">strong</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;overall-title&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/strong.html"><span class="kw2">strong</span></a>&gt;&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; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/img.html"><span class="kw2">img</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;../../assets/progress-bar/bar.gif&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;progress overall-progress&quot;</span> <span class="sy0">/</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/strong.html"><span class="kw2">strong</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;current-title&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/strong.html"><span class="kw2">strong</span></a>&gt;&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; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/img.html"><span class="kw2">img</span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;../../assets/progress-bar/bar.gif&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;progress current-progress&quot;</span> <span class="sy0">/</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;current-text&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
<br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;demo-list&quot;</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a>&gt;</span><br />
<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 />
&nbsp;<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p><b>Note:</b> You will need to include the <u>MooTools.Lang.js</u> Javascript for FancyUpload to work properly. For my installation I chose to put the file in <a href="http://www.hektorparis.com/hp-lab/fancyupload/source/Lang.js" target="_blank">/fancyupload/source/Lang.js</a> to maintain consistency by keeping all source files in the same directory.</p>
<p>FancyUpload is a creation of <a href="http://github.com/digitarald" target="_blank" title="digitarald's Profile">Harald Kirschner</a> and is available free under the <a href="http://www.opensource.org/licenses/mit-license.php" target="_blank">MIT License</a>.<br />
<br clear="all" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hektorparis.com/upload-multiple-images-at-once-using-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Install FCKeditor in osCommerce</title>
		<link>http://www.hektorparis.com/how-to-install-fckeditor-in-oscommerce/</link>
		<comments>http://www.hektorparis.com/how-to-install-fckeditor-in-oscommerce/#comments</comments>
		<pubDate>Mon, 18 May 2009 06:57:08 +0000</pubDate>
		<dc:creator>Hektor</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[osCommerce]]></category>
		<category><![CDATA[fckeditor]]></category>
		<category><![CDATA[fckeditor for oscommerce]]></category>
		<category><![CDATA[oscommerce product descriptions]]></category>
		<category><![CDATA[oscommerce wysiwyg editor]]></category>

		<guid isPermaLink="false">http://www.hektorparis.com/?p=415</guid>
		<description><![CDATA[Learn how to install WYSIWYG editor FCKeditor in osCommerce to use for product descriptions.]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-423" title="fckeditor-in-oscommerce" src="http://www.hektorparis.com/wp-content/uploads/2009/05/fckeditor-in-oscommerce.jpg" alt="fckeditor-in-oscommerce" width="320" height="240" />Learn how to install WYSIWYG editor <a title="FCKeditor - The text editor for the Internet" href="http://www.fckeditor.net/" target="_blank">FCKeditor</a> in osCommerce to use for product descriptions.</p>
<p>FCKeditor is a web-based HTML text editor with similar functions as desktop applications like MS Word (<a title="FCKeditor Demo" href="http://www.fckeditor.net/demo" target="_blank">see demo</a>),Â  making it useful for creating esthetically pleasing product descriptions in osCommerce. </p>
<p>FCKeditor is compatible with IE 5.5+, Firefox 1.5+, Safari 3.0+, Opera 9.50+, Chrome, Camino 1.0+, Apple, Linux and Windows.  </p>
<p><span id="more-415"></span><br />
<br clear="left" /></p>
<h3>Read Me</h3>
<p>Before you begin work I recommend you backup your osCommerce database and that for any modifications you implement, instead of overwriting the original source code you should comment it out, this way you can revert changes in case you &#8220;FCKup&#8221; ha, ha, ha.</p>
<h3>Pre-Installation</h3>
<p><a title="Download FCKeditor" href="http://www.fckeditor.net/download" target="_blank">Download</a> the latest version of FCKeditor for free.</p>
<p>Decompress the FCKeditor file to your catalog&#8217;s admin directory.</p>
<p>Create a directory in your catalog&#8217;s root directory titled &#8220;userfiles&#8221; and within this directory create four more sub-directories titled &#8220;file&#8221;, &#8220;image&#8221;, &#8220;flash&#8221; and &#8220;media&#8221;.</p>
<p>Using <a title="FileZilla - The free FTP solution" href="http://filezilla-project.org/" target="_target">FileZilla</a> or your favorite FTP client upload the directories you&#8217;ve created,  <u>catalog/admin/fckeditor/</u> and <u>catalog/userfiles/</u> to your server.</p>
<p>Change read and write permissions to 777 for these directories:</p>
<p><u>catalog/userfiles/</u><br />
<u>catalog/userfiles/file</u><br />
<u>catalog/userfiles/media</u><br />
<u>catalog/userfiles/image</u><br />
<u>catalog/userfiles/flash</u></p>
<p>If you&#8217;re using  FileZilla right click on each directory and select &#8220;File Attributes&#8221; (or &#8220;File Permissions&#8221; in some versions).</p>
<h3 style="padding-top:10px;">Install FCKeditor for Products Description</h3>
<p>Open <span style="text-decoration: underline;"><a href="http://www.hektorparis.com/oscommerce/admin/categories.php.source.php">catalog/admin/categories.php</a></span></p>
<p><strong>Find Around <a href="http://www.hektorparis.com/oscommerce/admin/categories.php.source.php#l541">Line 541</a></strong></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 /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><a href="http://www.php.net/echo"><span class="kw3">echo</span></a> tep_draw_textarea_field<span class="br0">&#40;</span><span class="st_h">'products_description['</span> <span class="sy0">.</span><span class="re0">$languages</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'id'</span><span class="br0">&#93;</span> <span class="sy0">.</span><span class="st_h">']'</span><span class="sy0">,</span> <span class="st_h">'soft'</span><span class="sy0">,</span> <span class="st_h">'70'</span><span class="sy0">,</span> <span class="st_h">'15'</span><span class="sy0">,</span><br />
<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">$products_description</span><span class="br0">&#91;</span><span class="re0">$languages</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'id'</span><span class="br0">&#93;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><br />
? <a href="http://www.php.net/stripslashes"><span class="kw3">stripslashes</span></a><span class="br0">&#40;</span><span class="re0">$products_description</span><span class="br0">&#91;</span><span class="re0">$languages</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'id'</span><span class="br0">&#93;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><br />
<span class="sy0">:</span> tep_get_products_description<span class="br0">&#40;</span><span class="re0">$pInfo</span><span class="sy0">-&gt;</span><span class="me1">products_id</span><span class="sy0">,</span> <span class="re0">$languages</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'id'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
<p><strong>Replace With</strong></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 /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="coMULTI">/***BOF FCKeditor v2.6.4***/</span><br />
<a href="http://www.php.net/echo"><span class="kw3">echo</span></a> tep_draw_fckeditor<span class="br0">&#40;</span><span class="st_h">'products_description['</span> <span class="sy0">.</span><span class="re0">$languages</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'id'</span><span class="br0">&#93;</span> <span class="sy0">.</span><span class="st_h">']'</span><span class="sy0">,</span> <span class="st_h">'600'</span><span class="sy0">,</span> <span class="st_h">'420'</span><span class="sy0">,</span><br />
<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">$products_description</span><span class="br0">&#91;</span><span class="re0">$languages</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'id'</span><span class="br0">&#93;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><br />
? <a href="http://www.php.net/stripslashes"><span class="kw3">stripslashes</span></a><span class="br0">&#40;</span><span class="re0">$products_description</span><span class="br0">&#91;</span><span class="re0">$languages</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'id'</span><span class="br0">&#93;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><br />
<span class="sy0">:</span> tep_get_products_description<span class="br0">&#40;</span><span class="re0">$pInfo</span><span class="sy0">-&gt;</span><span class="me1">products_id</span><span class="sy0">,</span> <span class="re0">$languages</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'id'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="coMULTI">/***EOF FCKeditor v2.6.4***/</span></div></td></tr></tbody></table></div>
<p>The <span style="color: #0000ff;">tep_draw_fckeditor()</span> function returns an instance of FCKeditor to replace the native  content editing textarea field created by the <a href="http://www.hektorparis.com/oscommerce/_functions/tep_draw_textarea_field.php" target="_blank">tep_draw_textarea_field()</a> function. You can change the width and height values (&#8216;600&#8242;, &#8216;420&#8242;) to fit your workspace.</p>
<p>Open <span style="text-decoration: underline;"><a title="osCommerce Admin html_output Function" href="http://www.hektorparis.com/oscommerce/admin/includes/functions/html_output.php.source.php" target="_blank">catalog/admin/includes/functions/html_ouput.php</a></span></p>
<p><strong>Around <a href="http://www.hektorparis.com/oscommerce/admin/includes/functions/html_output.php.php">Line 13</a></strong><br />
Insert the following <span style="color: #0000ff;">include_once()</span> just before this comment &nbsp; <i style="color:#FF9900;">// The HTML href link wrapper function</i></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 /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="coMULTI">/***BOF FCKeditor v2.6.4***/</span><br />
<span class="kw1">include_once</span><span class="br0">&#40;</span><span class="st0">&quot;fckeditor/fckeditor.php&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="coMULTI">/***EOF FCKeditor v2.6.4***/</span></div></td></tr></tbody></table></div>
<p><strong>Find Around <a href="http://www.hektorparis.com/oscommerce/admin/includes/functions/html_output.php.source.php#l246" target="_blank">Line 245</a></strong></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 /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw2">function</span> tep_draw_textarea_field<span class="br0">&#40;</span><span class="re0">$name</span><span class="sy0">,</span> <span class="re0">$wrap</span><span class="sy0">,</span> <span class="re0">$width</span><span class="sy0">,</span> <span class="re0">$height</span><span class="sy0">,</span> <span class="re0">$text</span> <span class="sy0">=</span> <span class="st_h">''</span><span class="sy0">,</span> <span class="re0">$parameters</span> <span class="sy0">=</span> <span class="st_h">''</span><span class="sy0">,</span> <span class="re0">$reinsert_value</span> <span class="sy0">=</span> <span class="kw2">true</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; <a href="http://www.php.net/global"><span class="kw3">global</span></a> <span class="re0">$HTTP_GET_VARS</span><span class="sy0">,</span> <span class="re0">$HTTP_POST_VARS</span><span class="sy0">;</span><br />
&nbsp;<br />
&nbsp; <span class="re0">$field</span> <span class="sy0">=</span> <span class="st_h">'&lt;textarea name=&quot;'</span> <span class="sy0">.</span> tep_output_string<span class="br0">&#40;</span><span class="re0">$name</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">'&quot; wrap=&quot;'</span> <span class="sy0">.</span> tep_output_string<span class="br0">&#40;</span><span class="re0">$wrap</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">'&quot; cols=&quot;'</span> <span class="sy0">.</span> tep_output_string<span class="br0">&#40;</span><span class="re0">$width</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">'&quot; rows=&quot;'</span> <span class="sy0">.</span> tep_output_string<span class="br0">&#40;</span><span class="re0">$height</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">'&quot;'</span><span class="sy0">;</span><br />
&nbsp; <br />
&nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>tep_not_null<span class="br0">&#40;</span><span class="re0">$parameters</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="re0">$field</span> <span class="sy0">.=</span> <span class="st_h">' '</span> <span class="sy0">.</span> <span class="re0">$parameters</span><span class="sy0">;</span><br />
&nbsp; <br />
&nbsp; <span class="re0">$field</span> <span class="sy0">.=</span> <span class="st_h">'&gt;'</span><span class="sy0">;</span><br />
<br />
&nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span> <span class="br0">&#40;</span><span class="re0">$reinsert_value</span> <span class="sy0">==</span> <span class="kw2">true</span><span class="br0">&#41;</span> <span class="sy0">&amp;&amp;</span> <span class="br0">&#40;</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">$HTTP_GET_VARS</span><span class="br0">&#91;</span><span class="re0">$name</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">&amp;&amp;</span> <a href="http://www.php.net/is_string"><span class="kw3">is_string</span></a><span class="br0">&#40;</span><span class="re0">$HTTP_GET_VARS</span><span class="br0">&#91;</span><span class="re0">$name</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">||</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">$HTTP_POST_VARS</span><span class="br0">&#91;</span><span class="re0">$name</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">&amp;&amp;</span> <a href="http://www.php.net/is_string"><span class="kw3">is_string</span></a><span class="br0">&#40;</span><span class="re0">$HTTP_POST_VARS</span><span class="br0">&#91;</span><span class="re0">$name</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp;<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">$HTTP_GET_VARS</span><span class="br0">&#91;</span><span class="re0">$name</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">&amp;&amp;</span> <a href="http://www.php.net/is_string"><span class="kw3">is_string</span></a><span class="br0">&#40;</span><span class="re0">$HTTP_GET_VARS</span><span class="br0">&#91;</span><span class="re0">$name</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="re0">$field</span> <span class="sy0">.=</span> tep_output_string_protected<span class="br0">&#40;</span><a href="http://www.php.net/stripslashes"><span class="kw3">stripslashes</span></a><span class="br0">&#40;</span><span class="re0">$HTTP_GET_VARS</span><span class="br0">&#91;</span><span class="re0">$name</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">elseif</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">$HTTP_POST_VARS</span><span class="br0">&#91;</span><span class="re0">$name</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">&amp;&amp;</span> <a href="http://www.php.net/is_string"><span class="kw3">is_string</span></a><span class="br0">&#40;</span><span class="re0">$HTTP_POST_VARS</span><span class="br0">&#91;</span><span class="re0">$name</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$field</span> <span class="sy0">.=</span> tep_output_string_protected<span class="br0">&#40;</span><a href="http://www.php.net/stripslashes"><span class="kw3">stripslashes</span></a><span class="br0">&#40;</span><span class="re0">$HTTP_POST_VARS</span><span class="br0">&#91;</span><span class="re0">$name</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span><br />
&nbsp; <span class="br0">&#125;</span> <br />
&nbsp; <br />
&nbsp; <span class="kw1">elseif</span> <span class="br0">&#40;</span>tep_not_null<span class="br0">&#40;</span><span class="re0">$text</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$field</span> <span class="sy0">.=</span> tep_output_string_protected<span class="br0">&#40;</span><span class="re0">$text</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; <span class="re0">$field</span> <span class="sy0">.=</span> <span class="st_h">'&lt;/textarea&gt;'</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; <span class="kw1">return</span> <span class="re0">$field</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p><strong>After the Function Above Add</strong></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 /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="coMULTI">/***BOF FCKeditor v2.6.4***/</span><br />
<span class="co1">////</span><br />
<span class="co1">// Output a form textarea field using FCKeditor v2.6.4</span><br />
<span class="kw2">function</span> tep_draw_fckeditor<span class="br0">&#40;</span><span class="re0">$name</span><span class="sy0">,</span> <span class="re0">$width</span><span class="sy0">,</span> <span class="re0">$height</span><span class="sy0">,</span> <span class="re0">$text</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<span class="re0">$oFCKeditor</span> <span class="sy0">=</span> <span class="kw2">new</span> FCKeditor<span class="br0">&#40;</span><span class="re0">$name</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="re0">$oFCKeditor</span><span class="sy0">-&gt;</span><span class="me1">BasePath</span> <span class="sy0">=</span> <span class="st0">&quot;/admin/fckeditor/&quot;</span><span class="sy0">;</span><br />
<span class="re0">$oFCKeditor</span><span class="sy0">-&gt;</span><span class="me1">Width</span> &nbsp;<span class="sy0">=</span> <span class="re0">$width</span><span class="sy0">;</span><br />
<span class="re0">$oFCKeditor</span><span class="sy0">-&gt;</span><span class="me1">Height</span> <span class="sy0">=</span> <span class="re0">$height</span><span class="sy0">;</span><br />
<span class="re0">$oFCKeditor</span><span class="sy0">-&gt;</span><span class="me1">Config</span><span class="br0">&#91;</span><span class="st0">&quot;SkinPath&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$oFCKeditor</span><span class="sy0">-&gt;</span><span class="me1">BasePath</span> <span class="sy0">.</span><span class="st0">&quot;editor/skins/silver/&quot;</span><span class="sy0">;</span><br />
<span class="re0">$oFCKeditor</span><span class="sy0">-&gt;</span><span class="me1">Value</span> <span class="sy0">=</span> <span class="re0">$text</span><span class="sy0">;</span><br />
<br />
<span class="re0">$editor</span> <span class="sy0">=</span> <span class="re0">$oFCKeditor</span><span class="sy0">-&gt;</span><span class="me1">Create</span><span class="br0">&#40;</span><span class="re0">$name</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
<span class="kw1">return</span> <span class="re0">$editor</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="coMULTI">/***EOF FCKeditor v2.6.4***/</span></div></td></tr></tbody></table></div>
<p>The <span style="color: #0000ff;">tep_draw_fckeditor()</span> function returns an instance of FCKeditor using parameters $name, $width, $height and inserts $text into the editor&#8217;s body. The $oFCKeditor->BasePath variable is self-explanatory, it defines the directory path for FCKeditor relative to the html_output.php file. This object variable is then used to <a title="Configuration Options - FCKeditor Docs" href="http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/Configuration/Configuration_Options" target="_blank">customize the configuration options</a> for the editor to use a &#8220;Silver&#8221; skin &amp; which <a title="SkinPath - FCKeditor Docs" href="http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/Configuration/Configuration_Options/SkinPath" target="_blank">you can change</a> if you&#8217;d like.</p>
<p>Open <u>catalog/admin/fckeditor/editor/filemanager/connectors/php/config.php</u> and configure this file by specifying the following values.</p>
<p><strong>Find at Line 27</strong></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 /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="co1">// SECURITY: You must explicitly enable this &quot;connector&quot;. (Set it to &quot;true&quot;).</span><br />
<span class="co1">// WARNING: don't just set &quot;$Config['Enabled'] = true ;&quot;, you must be sure that only</span><br />
<span class="co1">// authenticated users can access this file or use some kind of session checking.</span><br />
<span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'Enabled'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="kw2">true</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
<p><strong>Find at Line 36</strong></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">// Fill the following value it you prefer to specify the absolute path for the</span><br />
<span class="co1">// user files directory. Useful if you are using a virtual directory, symbolic</span><br />
<span class="co1">// link or alias. Examples: 'C:\\MySite\\userfiles\' or '/root/mysite/userfiles/'.</span><br />
<span class="co1">// Attention: The above 'UserFilesPath' must point to the same directory.</span><br />
<span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'UserFilesAbsolutePath'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st_h">'/YOUR/SERVERS/ABSOLUTE/PATH/TO/USERFILES/'</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
<p>To specify the absolute directory path to &#8220;userfiles&#8221; go to <u>osCommerce->Tools->Server Info</u>, scroll down to &#8220;Environtment&#8221; and copy the &#8220;DOCUMENT_ROOT&#8221; variable value. Paste it for $Config['UserFilesAbsolutePath'] and append &#8220;/userfiles/&#8221; at the end of the absolute path. For example, if your website is hosted on a Linux environment your absolute path might look like &#8220;/home/content/user/public_html&#8221; and you will append &#8220;/userfiles/&#8221; after &#8220;public_html&#8221; to complete the full path.</p>
<p><strong>Find at Line 127 &amp; 128</strong></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 /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'QuickUploadPath'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'File'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'UserFilesPath'</span><span class="br0">&#93;</span> <span class="sy0">;</span><br />
<span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'QuickUploadAbsolutePath'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'File'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'UserFilesAbsolutePath'</span><span class="br0">&#93;</span> <span class="sy0">;</span></div></td></tr></tbody></table></div>
<p><strong>Replace With</strong></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 /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'QuickUploadPath'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'File'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'UserFilesPath'</span><span class="br0">&#93;</span> <span class="sy0">.</span><span class="st_h">'file/'</span><span class="sy0">;</span><br />
<span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'QuickUploadAbsolutePath'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'File'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'UserFilesAbsolutePath'</span><span class="br0">&#93;</span> <span class="sy0">.</span><span class="st_h">'file/'</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
<p><strong>Find at Line 134 &amp; 135</strong></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 /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'QuickUploadPath'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'Image'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'UserFilesPath'</span><span class="br0">&#93;</span> <span class="sy0">;</span><br />
<span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'QuickUploadAbsolutePath'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'Image'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'UserFilesAbsolutePath'</span><span class="br0">&#93;</span> <span class="sy0">;</span></div></td></tr></tbody></table></div>
<p><strong>Replace With</strong></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 /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'QuickUploadPath'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'Image'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'UserFilesPath'</span><span class="br0">&#93;</span> <span class="sy0">.</span><span class="st_h">'image/'</span><span class="sy0">;</span><br />
<span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'QuickUploadAbsolutePath'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'Image'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'UserFilesAbsolutePath'</span><span class="br0">&#93;</span> <span class="sy0">.</span><span class="st_h">'image/'</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
<p><strong>Find at Line 141 &amp; 142</strong></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 /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'QuickUploadPath'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'Flash'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'UserFilesPath'</span><span class="br0">&#93;</span> <span class="sy0">;</span><br />
<span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'QuickUploadAbsolutePath'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'Flash'</span><span class="br0">&#93;</span><span class="sy0">=</span> <span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'UserFilesAbsolutePath'</span><span class="br0">&#93;</span> <span class="sy0">;</span></div></td></tr></tbody></table></div>
<p><strong>Replace With</strong></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 /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'QuickUploadPath'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'Flash'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'UserFilesPath'</span><span class="br0">&#93;</span> <span class="sy0">.</span><span class="st_h">'flash/'</span><span class="sy0">;</span><br />
<span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'QuickUploadAbsolutePath'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'Flash'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'UserFilesAbsolutePath'</span><span class="br0">&#93;</span> <span class="sy0">.</span><span class="st_h">'flash/'</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
<p><strong>Find at Line 148 &amp; 149</strong></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 /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'QuickUploadPath'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'Media'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'UserFilesPath'</span><span class="br0">&#93;</span> <span class="sy0">;</span><br />
<span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'QuickUploadAbsolutePath'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'Media'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'UserFilesAbsolutePath'</span><span class="br0">&#93;</span> <span class="sy0">;</span></div></td></tr></tbody></table></div>
<p><strong>Replace With</strong></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 /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'QuickUploadPath'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'Media'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'UserFilesPath'</span><span class="br0">&#93;</span> <span class="sy0">.</span><span class="st_h">'media/'</span><span class="sy0">;</span><br />
<span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'QuickUploadAbsolutePath'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st_h">'Media'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$Config</span><span class="br0">&#91;</span><span class="st_h">'UserFilesAbsolutePath'</span><span class="br0">&#93;</span> <span class="sy0">.</span><span class="st_h">'media/'</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
<p>These fixes allow FCKeditor to upload files, images, flash and media to their directories in &#8220;userfiles&#8221; and allow the &#8220;browse server&#8221; button in the &#8220;Insert/Edit&#8221; window to list files previously uploaded.</p>
<p><a href="http://www.hektorparis.com/wp-content/uploads/2009/05/fckeditor-products-description.jpg"></a><br />
<strong>FCKeditor Installation Complete</strong><br />
Test the installation by going to <u>osCommerce->Catalog->Categories / Products</u>, select a product and click &#8220;Edit&#8221; from the right column. You should see an instance of FCKeditor in place for the products description.</p>
<p><a href="http://www.hektorparis.com/wp-content/uploads/2009/05/fckeditor-products-description.jpg"><img class="aligncenter size-full wp-image-465" title="fckeditor-products-description" src="http://www.hektorparis.com/wp-content/uploads/2009/05/fckeditor-products-description.jpg" alt="fckeditor-products-description" width="590" height="368" /></a></p>
<p><br clear="all"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hektorparis.com/how-to-install-fckeditor-in-oscommerce/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>US States List in Select Menu with PHP</title>
		<link>http://www.hektorparis.com/us-states-list-in-select-menu-with-php/</link>
		<comments>http://www.hektorparis.com/us-states-list-in-select-menu-with-php/#comments</comments>
		<pubDate>Sat, 18 Apr 2009 19:21:36 +0000</pubDate>
		<dc:creator>Hektor</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[dynamically generated select menu]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[us states list]]></category>

		<guid isPermaLink="false">http://www.hektorparis.com/?p=345</guid>
		<description><![CDATA[Create a dynamically generated select menu using PHP and without spending a lot of time hand coding the entire list.]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-346" title="us_states_list" src="http://www.hektorparis.com/wp-content/uploads/2009/04/us_states_list.gif" alt="us_states_list" width="320" height="240" />Creating a dynamically generated select menu with PHP has some advantages, such as tidier code,Â  consistency and form validation. The purpose of this tutorial is to show you a quicker way to generate select menu &lt;options&gt; without spending a lot of time hand coding a list that, in this case, may contain 50 entries.  <span id="more-345"></span></p>
<p style="clear:both;">
<p>Before the greatest thing since sliced bread, that would be PHP, a select menu list of the states would&#8217;ve looked like this:</p>
<div class="codecolorer-container html4strict mac-classic" style="overflow:auto;white-space:nowrap;width:590px;height:300px"><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 />62<br />63<br />64<br />65<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/html.html"><span class="kw2">html</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/meta.html"><span class="kw2">meta</span></a> <span class="kw3">http-equiv</span><span class="sy0">=</span><span class="st0">&quot;Content-Type&quot;</span> <span class="kw3">content</span><span class="sy0">=</span><span class="st0">&quot;text/html; charset=iso-8859-1&quot;</span>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span>US States List in Select Menu with PHP<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
&nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/form.html"><span class="kw2">form</span></a> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;us_states&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;us_states_list.php&quot;</span>&gt;</span><br />
&nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/select.html"><span class="kw2">select</span></a> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;us_states&quot;</span>&gt;</span><br />
&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;&quot;</span>&gt;</span>Select State<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;<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;AL&quot;</span>&gt;</span>Alabama<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;<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;AK&quot;</span>&gt;</span>Alaska<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;<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;AZ&quot;</span>&gt;</span>Arizona<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;<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;AR&quot;</span>&gt;</span>Arkansas<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;<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;CA&quot;</span>&gt;</span>California<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;<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;CO&quot;</span>&gt;</span>Colorado<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;<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;CT&quot;</span>&gt;</span>Connecticut<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;<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;DE&quot;</span>&gt;</span>Delaware<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;<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;DC&quot;</span>&gt;</span>District Of Columbia<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;<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;FL&quot;</span>&gt;</span>Florida<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;<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;GA&quot;</span>&gt;</span>Georgia<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;<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;HI&quot;</span>&gt;</span>Hawaii<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;<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;ID&quot;</span>&gt;</span>Idaho<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;<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;IL&quot;</span>&gt;</span>Illinois<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;<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;IN&quot;</span>&gt;</span>Indiana<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;<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;IA&quot;</span>&gt;</span>Iowa<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;<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;KS&quot;</span>&gt;</span>Kansas<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;<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;KY&quot;</span>&gt;</span>Kentucky<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;<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;LA&quot;</span>&gt;</span>Louisiana<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;<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;ME&quot;</span>&gt;</span>Maine<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;<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;MD&quot;</span>&gt;</span>Maryland<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;<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;MA&quot;</span>&gt;</span>Massachusetts<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;<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;MI&quot;</span>&gt;</span>Michigan<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;<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;MN&quot;</span>&gt;</span>Minnesota<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;<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;MS&quot;</span>&gt;</span>Mississippi<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;<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;MO&quot;</span>&gt;</span>Missouri<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;<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;MT&quot;</span>&gt;</span>Montana<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;<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;NE&quot;</span>&gt;</span>Nebraska<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;<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;NV&quot;</span>&gt;</span>Nevada<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;<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;NH&quot;</span>&gt;</span>New Hampshire<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;<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;NJ&quot;</span>&gt;</span>New Jersey<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;<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;NM&quot;</span>&gt;</span>New Mexico<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;<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;NY&quot;</span>&gt;</span>New York<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;<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;NC&quot;</span>&gt;</span>North Carolina<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;<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;ND&quot;</span>&gt;</span>North Dakota<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;<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;OH&quot;</span>&gt;</span>Ohio<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;<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;OK&quot;</span>&gt;</span>Oklahoma<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;<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;OR&quot;</span>&gt;</span>Oregon<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;<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;PA&quot;</span>&gt;</span>Pennsylvania<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;<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;RI&quot;</span>&gt;</span>Rhode Island<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;<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;SC&quot;</span>&gt;</span>South Carolina<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;<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;SD&quot;</span>&gt;</span>South Dakota<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;<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;TN&quot;</span>&gt;</span>Tennessee<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;<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;TX&quot;</span>&gt;</span>Texas<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;<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;UT&quot;</span>&gt;</span>Utah<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;<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;VT&quot;</span>&gt;</span>Vermont<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;<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;VA&quot;</span>&gt;</span>Virginia<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;<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;WA&quot;</span>&gt;</span>Washington<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;<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;WV&quot;</span>&gt;</span>West Virginia<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;<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;WI&quot;</span>&gt;</span>Wisconsin<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;<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;WY&quot;</span>&gt;</span>Wyoming<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; <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;</span><br />
&nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;&lt;<a href="http://december.com/html/4/element/input.html"><span class="kw2">input</span></a> <span class="kw3">name</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;submit&quot;</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;Submit&quot;</span> <span class="sy0">/</span>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span><br />
&nbsp;<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 />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p><br clear="all" /><br />
The same HTML output can be possible using an array() and the good ol&#8217; echo function in PHP:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;width:590px;height:300px"><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 />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace">&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=iso-8859-1&quot;&gt;<br />
&lt;title&gt;US States List in Select Menu with PHP&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&nbsp;&lt;form name=&quot;us_states&quot; method=&quot;post&quot; action=&quot;us_states_list.php&quot;&gt;<br />
&nbsp; <span class="kw2">&lt;?php</span><br />
&nbsp; &nbsp; <span class="co1">// Credit for the USA states list as a PHP array belongs to DZone Snippets, thanks mates!</span><br />
&nbsp; &nbsp; <span class="co1">// http://snippets.dzone.com/posts/show/1038</span><br />
&nbsp; &nbsp; <span class="re0">$us_states</span> <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st_h">'AL'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Alabama&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'AK'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Alaska&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'AZ'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Arizona&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'AR'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Arkansas&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'CA'</span><span class="sy0">=&gt;</span><span class="st0">&quot;California&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'CO'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Colorado&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'CT'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Connecticut&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'DE'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Delaware&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'DC'</span><span class="sy0">=&gt;</span><span class="st0">&quot;District Of Columbia&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'FL'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Florida&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'GA'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Georgia&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'HI'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Hawaii&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'ID'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Idaho&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'IL'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Illinois&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'IN'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Indiana&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'IA'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Iowa&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'KS'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Kansas&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'KY'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Kentucky&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'LA'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Louisiana&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'ME'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Maine&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'MD'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Maryland&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'MA'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Massachusetts&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'MI'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Michigan&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'MN'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Minnesota&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'MS'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Mississippi&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'MO'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Missouri&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'MT'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Montana&quot;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'NE'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Nebraska&quot;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'NV'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Nevada&quot;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'NH'</span><span class="sy0">=&gt;</span><span class="st0">&quot;New Hampshire&quot;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'NJ'</span><span class="sy0">=&gt;</span><span class="st0">&quot;New Jersey&quot;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'NM'</span><span class="sy0">=&gt;</span><span class="st0">&quot;New Mexico&quot;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'NY'</span><span class="sy0">=&gt;</span><span class="st0">&quot;New York&quot;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'NC'</span><span class="sy0">=&gt;</span><span class="st0">&quot;North Carolina&quot;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'ND'</span><span class="sy0">=&gt;</span><span class="st0">&quot;North Dakota&quot;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'OH'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Ohio&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'OK'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Oklahoma&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'OR'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Oregon&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'PA'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Pennsylvania&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'RI'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Rhode Island&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'SC'</span><span class="sy0">=&gt;</span><span class="st0">&quot;South Carolina&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'SD'</span><span class="sy0">=&gt;</span><span class="st0">&quot;South Dakota&quot;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'TN'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Tennessee&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'TX'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Texas&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'UT'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Utah&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'VT'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Vermont&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'VA'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Virginia&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'WA'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Washington&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'WV'</span><span class="sy0">=&gt;</span><span class="st0">&quot;West Virginia&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'WI'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Wisconsin&quot;</span><span class="sy0">,</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'WY'</span><span class="sy0">=&gt;</span><span class="st0">&quot;Wyoming&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">// Create the &lt;select&gt; tag and set a default &lt;option&gt; with an empty value &nbsp; &nbsp; &nbsp; </span><br />
&nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st_h">'&lt;select name=&quot;us_states&quot;&gt;'</span> <span class="sy0">.</span><span class="st0">&quot;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st_h">' &nbsp; &lt;option value=&quot;&quot;&gt;Select State&lt;/option&gt;'</span> <span class="sy0">.</span><span class="st0">&quot;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">// Using the foreach function is much better than using the for function to get the array elements.</span><br />
&nbsp; &nbsp; <span class="co1">// Instead of writing $us_states[$i] as is the case with the for function, you can make each element</span><br />
&nbsp; &nbsp; <span class="co1">// a variable and assign it its corresponding value</span><br />
&nbsp; &nbsp; <span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$us_states</span> <span class="kw1">as</span> <span class="re0">$option</span> <span class="sy0">=&gt;</span> <span class="re0">$value</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st_h">' &nbsp; &lt;option value=&quot;'</span> <span class="sy0">.</span><span class="re0">$option</span> <span class="sy0">.</span><span class="st_h">'&quot;'</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// If you're validating your form using the same page, this will append &quot;selected&quot; to </span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// the &lt;option&gt; after you submit the form. Else just closes the &lt;option&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;us_states&quot;</span><span class="br0">&#93;</span> <span class="sy0">==</span> <span class="re0">$option</span><span class="br0">&#41;</span> ? <span class="st0">&quot; selected&gt;&quot;</span> <span class="sy0">:</span> <span class="st0">&quot;&gt;&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="re0">$value</span> <span class="sy0">.</span><span class="st0">&quot;&lt;/option&gt;&quot;</span> <span class="sy0">.</span><span class="st0">&quot;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot; &nbsp;&lt;/select&gt;&quot;</span> <span class="sy0">.</span><span class="st0">&quot;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span><br />
&nbsp; <span class="sy1">?&gt;</span><br />
&nbsp; &lt;p&gt;&lt;input name=&quot;submit&quot; type=&quot;submit&quot; value=&quot;Submit&quot; /&gt;&lt;/p&gt;<br />
&nbsp;&lt;/form&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</div></td></tr></tbody></table></div>
<p>See <a href="http://www.hektorparis.com/hp-lab/us_states_list.php">Demo</a> here.<br />
<br clear="all" /><br />
You can take advantage of dynamically generated HTML by PHP to output just about anything and I recommend it whenever possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hektorparis.com/us-states-list-in-select-menu-with-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Website template using PHP</title>
		<link>http://www.hektorparis.com/website-layout-using-php/</link>
		<comments>http://www.hektorparis.com/website-layout-using-php/#comments</comments>
		<pubDate>Sat, 11 Apr 2009 22:44:39 +0000</pubDate>
		<dc:creator>Hektor</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[dynamic meta tags with php]]></category>
		<category><![CDATA[dynamic title tag with php]]></category>
		<category><![CDATA[how to create website template with php]]></category>

		<guid isPermaLink="false">http://www.hektorparis.com/?p=239</guid>
		<description><![CDATA[By creating a template-based website you isolate elements that makeup the web page so they can be easily updated.]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.hektorparis.com/wp-content/uploads/2009/04/webpage_template1.gif" alt="webpage_template1" title="webpage_template1" width="320" height="240" class="alignleft size-full wp-image-306" style="border:none;" />Many times I&#8217;ve had to take over a website and update or redesign it. There is nothing more stressful than repetitious work especially when you&#8217;re dealing with a website for which the layout was poorly planned and implemented. I recommend creating a template-based website that is easy to maintain and keeps consistency throughout. In this tutorial I will show you how to create a master header with dynamic &lt;title&gt; and &lt;meta&gt; tags as well as a static footer to insert into as many pages as you need to create. </p>
<p><span id="more-239"></span></p>
<p><br clear="all" /><br />
A typical web page might look like this:</p>
<div class="codecolorer-container html4strict mac-classic" style="overflow:auto;white-space:nowrap;width:590px;height:300px"><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 /></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/html.html"><span class="kw2">html</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/meta.html"><span class="kw2">meta</span></a> <span class="kw3">http-equiv</span><span class="sy0">=</span><span class="st0">&quot;Content-Type&quot;</span> <span class="kw3">content</span><span class="sy0">=</span><span class="st0">&quot;text/html; charset=iso-8859-1&quot;</span> <span class="sy0">/</span>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span>My Page<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/title.html"><span class="kw2">title</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/meta.html"><span class="kw2">meta</span></a> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;description&quot;</span> <span class="kw3">content</span><span class="sy0">=</span><span class="st0">&quot;This is my page&quot;</span> <span class="sy0">/</span>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/meta.html"><span class="kw2">meta</span></a> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;keywords&quot;</span> <span class="kw3">content</span><span class="sy0">=</span><span class="st0">&quot;keyword 1, keyword 2&quot;</span> <span class="sy0">/</span>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/link.html"><span class="kw2">link</span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/css&quot;</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;style.css&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/head.html"><span class="kw2">head</span></a>&gt;</span><br />
<span class="sc2">&lt;<a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
&nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;header&quot;</span>&gt;</span><br />
&nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;menu&quot;</span>&gt;</span><br />
&nbsp; &nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span>Home<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span>Page 1<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span>Page 2<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span>Page 3<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/li.html"><span class="kw2">li</span></a>&gt;</span><br />
&nbsp; &nbsp;<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/ul.html"><span class="kw2">ul</span></a>&gt;</span><br />
&nbsp; <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp;<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;content&quot;</span>&gt;</span><br />
&nbsp; The quick smart fox jumped over the lazy dog.<br />
&nbsp;<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
&nbsp;<span class="sc2">&lt;<a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;footer&quot;</span>&gt;</span>mysite.com<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>Now assume that you need to rename a menu option or insert new header tags. You will spend a lot of time making the same update to all pages that need updating. That&#8217;s a lot of work and this method of implementation is prone to inconsistency and mistakes. A better solution would be to create a template in which you insert the header and footer as separate files so you can make updates to these files only once.</p>
<p>header.php</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;width:590px;height:300px"><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 /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace">&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=iso-8859-1&quot; /&gt;<br />
<span class="kw2">&lt;?php</span><br />
&nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;&lt;title&gt;&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="re0">$page</span> <span class="sy0">=</span> <span class="re0">$_SERVER</span><span class="br0">&#91;</span><span class="st_h">'REQUEST_URI'</span><span class="br0">&#93;</span><span class="sy0">;</span> <span class="co1">//capture the file name</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">//create a list of all your pages and let the switch() function match the $page variable with the proper title</span><br />
&nbsp; &nbsp; <span class="kw1">switch</span><span class="br0">&#40;</span><span class="re0">$page</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">&quot;/index.php&quot;</span><span class="sy0">:</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;Home Page&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">&quot;/page1.php&quot;</span><span class="sy0">:</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;Page 1&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">&quot;/page2.php&quot;</span><span class="sy0">:</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;Page 2&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//And so forth</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;&lt;/title&gt;&quot;</span> <span class="sy0">.</span><span class="st0">&quot;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">//for the description and keywords meta tags you can use array elements that contain arrays with you meta tags information</span><br />
&nbsp; &nbsp; <span class="re0">$tags_array</span> <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st0">&quot;/index.php&quot;</span> <span class="sy0">=&gt;</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st0">&quot;This is the hompage&quot;</span><span class="sy0">,</span> <span class="st0">&quot;keyword 1, keyword 2&quot;</span><span class="br0">&#41;</span><span class="sy0">,</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;/page1.php&quot;</span> <span class="sy0">=&gt;</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st0">&quot;This is page 1&quot;</span><span class="sy0">,</span> <span class="st0">&quot;keyword 1, keyword 2&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="co1">//since the meta tag information is within an array you have to use the foreach() function to match the $page variable</span><br />
&nbsp; &nbsp; <span class="co1">//with the corresponding file name and echo the proper description and keywords. the description will always be in </span><br />
&nbsp; &nbsp; <span class="co1">//the 0 element of the array and the keywords in element 1</span><br />
&nbsp; &nbsp; <span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$tags_array</span> <span class="kw1">as</span> <span class="re0">$file</span> <span class="sy0">=&gt;</span> <span class="re0">$properties</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$file</span> <span class="sy0">==</span> <span class="re0">$page</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st_h">'&lt;meta name=&quot;description&quot; content=&quot;'</span> <span class="sy0">.</span><span class="re0">$properties</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span> <span class="sy0">.</span><span class="st_h">'&quot; /&gt;'</span> <span class="sy0">.</span><span class="st0">&quot;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st_h">'&lt;meta name=&quot;keywords&quot; content=&quot;'</span> <span class="sy0">.</span><span class="re0">$properties</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span> <span class="sy0">.</span><span class="st_h">'&quot; /&gt;'</span> <span class="sy0">.</span><span class="st0">&quot;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="sy1">?&gt;</span><br />
&lt;link type=&quot;text/css&quot; href=&quot;style.css&quot; /&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&nbsp;&lt;div id=&quot;header&quot;&gt;<br />
&nbsp; &lt;div id=&quot;menu&quot;&gt;<br />
&nbsp; &nbsp;&lt;ul&gt;<br />
&nbsp; &nbsp; &lt;li&gt;Home&lt;/li&gt;<br />
&nbsp; &nbsp; &lt;li&gt;Page 1&lt;/li&gt;<br />
&nbsp; &nbsp; &lt;li&gt;Page 2&lt;/li&gt;<br />
&nbsp; &nbsp; &lt;li&gt;Page 3&lt;/li&gt;<br />
&nbsp; &nbsp;&lt;/ul&gt;<br />
&nbsp; &lt;/div&gt;<br />
&nbsp;&lt;/div&gt;</div></td></tr></tbody></table></div>
<p>page.php</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 /></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/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;content&quot;</span>&gt;</span><br />
&nbsp; The quick smart fox jumped over the lazy dog.<br />
&nbsp;<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>footer.php</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 /></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/div.html"><span class="kw2">div</span></a> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;footer&quot;</span>&gt;</span>mysite.com<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/div.html"><span class="kw2">div</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/body.html"><span class="kw2">body</span></a>&gt;</span><br />
<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>template.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 /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw2">&lt;?php</span> <span class="kw1">include</span><span class="br0">&#40;</span><span class="st0">&quot;header&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span><br />
&nbsp;&lt;div id=&quot;content&quot;&gt;<br />
&nbsp; The quick smart fox jumped over the lazy dog.<br />
&nbsp;&lt;/div&gt;<br />
<span class="kw2">&lt;?php</span> <span class="kw1">include</span><span class="br0">&#40;</span><span class="st0">&quot;footer&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="sy1">?&gt;</span></div></td></tr></tbody></table></div>
<p>By creating a template-based website you isolate elements that makeup the web page so they can be easily updated. Using PHP to dynamically generate page titles and meta tags will allow you to create SEO friendly web pages that contain only relevant information.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hektorparis.com/website-layout-using-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
