<?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>The Web Solutions Company</title>
	<atom:link href="http://www.w3it.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.w3it.com</link>
	<description>Internet Services from The Web Solutions Company</description>
	<lastBuildDate>Fri, 16 Dec 2011 00:26:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Lingerie Store Design</title>
		<link>http://www.w3it.com/portfolio/lingerie-store-design/</link>
		<comments>http://www.w3it.com/portfolio/lingerie-store-design/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 22:40:28 +0000</pubDate>
		<dc:creator>Web IT Expert</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[e-Commerce Websites]]></category>
		<category><![CDATA[Ideas and Creativity]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[osCommerce]]></category>
		<category><![CDATA[Project Portfolio]]></category>
		<category><![CDATA[lingerie store design]]></category>

		<guid isPermaLink="false">http://www.w3it.com/?p=415</guid>
		<description><![CDATA[Elegant and clean design for a lingerie e-commerce store]]></description>
			<content:encoded><![CDATA[An elegant and clean design was chosen for a new e-commerce store within the lingerie business. Project description was for a design that reflected an elegant range of lingerie products. We incorporated a clean interface with plenty of white so as not to distract the visitor from the product detail. The design is integrated to both Magento and osCommerce e-commerce platforms.
<ul>
	<li>View the <a title="full design" href="http://www.w3it.com/wp-content/uploads/2011/12/lingerie-store-design1.jpg" target="_blank">front page</a>.</li>
	<li><a title="Request" href="http://www.w3it.com/contact-form">Request</a> a demo of the completed solution.</li>
</ul>
&nbsp;

&nbsp;]]></content:encoded>
			<wfw:commentRss>http://www.w3it.com/portfolio/lingerie-store-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scrum and Kanban board demo. Ideal for team collaboration.</title>
		<link>http://www.w3it.com/project-management/scrum-kanban-board/scrum-and-kanban-board-demo-ideal-for-project-management-and-team-collaboration/</link>
		<comments>http://www.w3it.com/project-management/scrum-kanban-board/scrum-and-kanban-board-demo-ideal-for-project-management-and-team-collaboration/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 16:01:55 +0000</pubDate>
		<dc:creator>Web IT Expert</dc:creator>
				<category><![CDATA[Scrum and Kanban board]]></category>

		<guid isPermaLink="false">http://www.w3it.com/portfolio/scrum-and-kanban-board-demo-ideal-for-project-management-and-team-collaboration/</guid>
		<description><![CDATA[This post was created by a web based implementation of a class room white board. View the project page Request a demo]]></description>
			<content:encoded><![CDATA[This post was created by a web based implementation of a class room white board.
<ul>
	<li><a title="View" href="http://www.w3it.com/portfolio/white-board/">View</a> the project page</li>
	<li><a title="Request " href="http://www.w3it.com/contact-form/">Request</a> a demo</li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.w3it.com/project-management/scrum-kanban-board/scrum-and-kanban-board-demo-ideal-for-project-management-and-team-collaboration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Request a demo and try this for yourself&#8230;</title>
		<link>http://www.w3it.com/project-management/scrum-kanban-board/demo/</link>
		<comments>http://www.w3it.com/project-management/scrum-kanban-board/demo/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 15:35:11 +0000</pubDate>
		<dc:creator>Web IT Expert</dc:creator>
				<category><![CDATA[Scrum and Kanban board]]></category>
		<category><![CDATA[Kanban board]]></category>
		<category><![CDATA[Scrum board]]></category>

		<guid isPermaLink="false">http://www.w3it.com/portfolio/try-this-for-yourself-and-add-a-note-to-the-board/</guid>
		<description><![CDATA[Scrum and Kanban board. Ideal for project management and team collaboration.]]></description>
			<content:encoded><![CDATA[Task created by web based <a title="Scrum and Kanban board" href="http://www.w3it.com/portfolio/white-board/">Scrum and Kanban board</a>. Ideal for project management and team collaboration.]]></content:encoded>
			<wfw:commentRss>http://www.w3it.com/project-management/scrum-kanban-board/demo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Single page checkout solution</title>
		<link>http://www.w3it.com/project-management/scrum-kanban-board/single-page-checkout-solution/</link>
		<comments>http://www.w3it.com/project-management/scrum-kanban-board/single-page-checkout-solution/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 15:32:16 +0000</pubDate>
		<dc:creator>Web IT Expert</dc:creator>
				<category><![CDATA[Scrum and Kanban board]]></category>

		<guid isPermaLink="false">http://www.w3it.com/portfolio/single-page-checkout-solution/</guid>
		<description><![CDATA[This post was created by a web based implementation of a class room white board. View the project page Request a demo]]></description>
			<content:encoded><![CDATA[This post was created by a web based implementation of a class room white board.
<ul>
	<li><a title="View" href="http://www.w3it.com/portfolio/white-board/">View</a> the project page</li>
	<li><a title="Request " href="http://www.w3it.com/contact-form/">Request</a> a demo</li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.w3it.com/project-management/scrum-kanban-board/single-page-checkout-solution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Japan Post EMS Shipping module</title>
		<link>http://www.w3it.com/project-management/scrum-kanban-board/japan-post-ems-shipping-module/</link>
		<comments>http://www.w3it.com/project-management/scrum-kanban-board/japan-post-ems-shipping-module/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 15:31:27 +0000</pubDate>
		<dc:creator>Web IT Expert</dc:creator>
				<category><![CDATA[Scrum and Kanban board]]></category>

		<guid isPermaLink="false">http://www.w3it.com/portfolio/japan-post-ems-shipping-module/</guid>
		<description><![CDATA[This post was created by a web based implementation of a class room white board. View the project page Request a demo]]></description>
			<content:encoded><![CDATA[This post was created by a web based implementation of a class room white board.
<ul>
	<li><a title="View" href="http://www.w3it.com/portfolio/white-board/">View</a> the project page</li>
	<li><a title="Request " href="http://www.w3it.com/contact-form/">Request</a> a demo</li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.w3it.com/project-management/scrum-kanban-board/japan-post-ems-shipping-module/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PayPal integration module</title>
		<link>http://www.w3it.com/project-management/scrum-kanban-board/test/</link>
		<comments>http://www.w3it.com/project-management/scrum-kanban-board/test/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 15:16:50 +0000</pubDate>
		<dc:creator>Web IT Expert</dc:creator>
				<category><![CDATA[Scrum and Kanban board]]></category>

		<guid isPermaLink="false">http://www.w3it.com/portfolio/test/</guid>
		<description><![CDATA[This post was created by a web based implementation of a class room white board. View the project page Request a demo]]></description>
			<content:encoded><![CDATA[This post was created by a web based implementation of a class room white board.
<ul>
	<li><a title="View" href="http://www.w3it.com/portfolio/white-board/">View</a> the project page</li>
	<li><a title="Request " href="http://www.w3it.com/contact-form/">Request</a> a demo</li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.w3it.com/project-management/scrum-kanban-board/test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>osCommerce Update for 2.2ms2 Stores</title>
		<link>http://www.w3it.com/e-commerce-websites/oscommerce-update-for-2-2ms2-stores/</link>
		<comments>http://www.w3it.com/e-commerce-websites/oscommerce-update-for-2-2ms2-stores/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 14:13:24 +0000</pubDate>
		<dc:creator>Web IT Expert</dc:creator>
				<category><![CDATA[e-Commerce Websites]]></category>
		<category><![CDATA[osCommerce]]></category>
		<category><![CDATA[os commerce]]></category>
		<category><![CDATA[os commerce update]]></category>
		<category><![CDATA[os commerce upgrade]]></category>
		<category><![CDATA[oscommerce]]></category>
		<category><![CDATA[oscommerce update]]></category>
		<category><![CDATA[oscommerce upgrade]]></category>
		<category><![CDATA[upgrading os commerce]]></category>
		<category><![CDATA[upgrading oscommerce]]></category>

		<guid isPermaLink="false">http://www.w3it.com/?p=387</guid>
		<description><![CDATA[Update osCommerce help for stores running old versions of os commerce. Pre November 2005.]]></description>
			<content:encoded><![CDATA[<p>A lot of people are still using old versions of software to power their sites. A recent customer had an osCommerce version prior to November 2005 and I found this document that might be useful to a few of you who like getting your hands dirty:</p>

<p>osCommerce 2.2 Milestone 2 Update 051113</p>

<p>Update Package 13th November 2005</p>

<p>Table of Contents</p>

<p>Update 051113</p>

<p>customer_country_id in addressbook</p>

<p>Update 051112</p>

<p>Cannot re-assign $this</p>

<p>limit -20, 20</p>

<p>Database Input Enhancement</p>

<p>Adding Non-Existing Products To Cart</p>

<p>Session ID XSS Issue</p>

<p>Validate Session ID</p>

<p>File Manager Problem</p>

<p>HTTP Header Injection</p>

<p>E-Mail Header Injection</p>

<p>Contact Us Form XSS Issue</p>

<p>Open Redirector</p>

<p>Extra Slashes In New Products</p>

<p>Order Status Filtering</p>

<p>MySQL 5.0 Compatibility</p>

<p>customer_country_id in addressbook</p>

<p>http://www.oscommerce.com/community/bugs,1662</p>

<p>Problem:</p>

<p>When the customer updates their address in the My Account page, their country value is being stored in an incorrect variable that can cause an incorrect tax rate value being used in product prices.</p>

<p>Solution:</p>

<p>The following lines must be replaced in catalog/address_book_process.php:</p>

<p>Line 150, from:</p>

<p>$customer_country_id = $country_id;</p>

<p>to:</p>

<p>$customer_country_id = $country;</p>

<p>Line 171, from:</p>

<p>$customer_country_id = $country_id;</p>

<p>to:</p>

<p>$customer_country_id = $country;</p>

<p>Cannot re-assign $this</p>

<p>http://www.oscommerce.com/community/bugs,1650</p>

<p>Problem:</p>

<p>Fatal error: Cannot re-assign $this in /path/to/catalog/admin/includes/classes/upload.php on line 31</p>

<p>Solution:</p>

<p>Lines 27-34 in catalog/admin/includes/classes/upload.php must be changed from:</p>

<p>if ( ($this-&gt;parse() == true) &amp;&amp; ($this-&gt;save() == true) ) {</p>

<p>return true;</p>

<p>} else {</p>

<p>// self destruct</p>

<p>$this = null;</p>

<p>return false;</p>

<p>}</p>

<p>to:</p>

<p>if ( ($this-&gt;parse() == true) &amp;&amp; ($this-&gt;save() == true) ) {</p>

<p>return true;</p>

<p>} else {</p>

<p>return false;</p>

<p>}</p>

<p>limit -20, 20</p>

<p>http://www.oscommerce.com/community/bugs,1605</p>

<p>Problem:</p>

<p>1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-20, 20' at line 1</p>

<p>Solution:</p>

<p>Line 67 in catalog/includes/classes/split_page_results.php must be changed from:</p>

<p>$this-&gt;sql_query .= " limit " . $offset . ", " . $this-&gt;number_of_rows_per_page;</p>

<p>to:</p>

<p>$this-&gt;sql_query .= " limit " . max($offset, 0) . ", " . $this-&gt;number_of_rows_per_page;</p>

<p>Line 38 in catalog/admin/includes/classes/split_page_results.php must be changed from:</p>

<p>$sql_query .= " limit " . $offset . ", " . $max_rows_per_page;</p>

<p>to:</p>

<p>$sql_query .= " limit " . max($offset, 0) . ", " . $max_rows_per_page;</p>

<p>Database Input Enhancement</p>

<p>Problem:</p>

<p>Native MySQL functions should be used in preference to the addslashes() function, to properly protect the SQL queries being executed on the database server.</p>

<p>Solution:</p>

<p>The following function must be replaced in catalog/includes/functions/database.php.</p>

<p>Lines 126-128, from:</p>

<p>function tep_db_input($string) {</p>

<p>return addslashes($string);</p>

<p>}</p>

<p>to:</p>

<p>function tep_db_input($string, $link = 'db_link') {</p>

<p>global $$link;</p>

<p>if (function_exists('mysql_real_escape_string')) {</p>

<p>return mysql_real_escape_string($string, $$link);</p>

<p>} elseif (function_exists('mysql_escape_string')) {</p>

<p>return mysql_escape_string($string);</p>

<p>}</p>

<p>return addslashes($string);</p>

<p>}</p>

<p>The following function must be replaced in catalog/admin/includes/functions/database.php.</p>

<p>Lines 130-132, from:</p>

<p>function tep_db_input($string) {</p>

<p>return addslashes($string);</p>

<p>}</p>

<p>to:</p>

<p>function tep_db_input($string, $link = 'db_link') {</p>

<p>global $$link;</p>

<p>if (function_exists('mysql_real_escape_string')) {</p>

<p>return mysql_real_escape_string($string, $$link);</p>

<p>} elseif (function_exists('mysql_escape_string')) {</p>

<p>return mysql_escape_string($string);</p>

<p>}</p>

<p>return addslashes($string);</p>

<p>}</p>

<p>Adding Non-Existing Products To Cart</p>

<p>http://www.oscommerce.com/community/bugs,1617</p>

<p>Problem:</p>

<p>It is possible to add non-existing products into the shopping cart which may prevent customers from removing the products from their cart.</p>

<p>Solution:</p>

<p>The following functions must be replaced in catalog/includes/functions/general.php.</p>

<p>Lines 912-921, from:</p>

<p>function tep_get_uprid($prid, $params) {</p>

<p>$uprid = $prid;</p>

<p>if ( (is_array($params)) &amp;&amp; (!strstr($prid, '{')) ) {</p>

<p>while (list($option, $value) = each($params)) {</p>

<p>$uprid = $uprid . '{' . $option . '}' . $value;</p>

<p>}</p>

<p>}</p>

<p>return $uprid;</p>

<p>}</p>

<p>to:</p>

<p>function tep_get_uprid($prid, $params) {</p>

<p>if (is_numeric($prid)) {</p>

<p>$uprid = $prid;</p>

<p>if (is_array($params) &amp;&amp; (sizeof($params) &gt; 0)) {</p>

<p>$attributes_check = true;</p>

<p>$attributes_ids = '';</p>

<p>reset($params);</p>

<p>while (list($option, $value) = each($params)) {</p>

<p>if (is_numeric($option) &amp;&amp; is_numeric($value)) {</p>

<p>$attributes_ids .= '{' . (int)$option . '}' . (int)$value;</p>

<p>} else {</p>

<p>$attributes_check = false;</p>

<p>break;</p>

<p>}</p>

<p>}</p>

<p>if ($attributes_check == true) {</p>

<p>$uprid .= $attributes_ids;</p>

<p>}</p>

<p>}</p>

<p>} else {</p>

<p>$uprid = tep_get_prid($prid);</p>

<p>if (is_numeric($uprid)) {</p>

<p>if (strpos($prid, '{') !== false) {</p>

<p>$attributes_check = true;</p>

<p>$attributes_ids = '';</p>

<p>// strpos()+1 to remove up to and including the first { which would create an empty array element in explode()</p>

<p>$attributes = explode('{', substr($prid, strpos($prid, '{')+1));</p>

<p>for ($i=0, $n=sizeof($attributes); $iin_cart($products_id)) {</p>

<p>$this-&gt;update_quantity($products_id, $qty, $attributes);</p>

<p>} else {</p>

<p>$this-&gt;contents[] = array($products_id);</p>

<p>$this-&gt;contents[$products_id] = array('qty' =&gt; $qty);</p>

<p>// insert into database</p>

<p>if (tep_session_is_registered('customer_id')) tep_db_query("insert into " . TABLE_CUSTOMERS_BASKET . " (customers_id, products_id, customers_basket_quantity, customers_basket_date_added) values ('" . (int)$customer_id . "', '" . tep_db_input($products_id) . "', '" . $qty . "', '" . date('Ymd') . "')");</p>

<p>if (is_array($attributes)) {</p>

<p>reset($attributes);</p>

<p>while (list($option, $value) = each($attributes)) {</p>

<p>$this-&gt;contents[$products_id]['attributes'][$option] = $value;</p>

<p>// insert into database</p>

<p>if (tep_session_is_registered('customer_id')) tep_db_query("insert into " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " (customers_id, products_id, products_options_id, products_options_value_id) values ('" . (int)$customer_id . "', '" . tep_db_input($products_id) . "', '" . (int)$option . "', '" . (int)$value . "')");</p>

<p>}</p>

<p>}</p>

<p>}</p>

<p>$this-&gt;cleanup();</p>

<p>// assign a temporary unique ID to the order contents to prevent hack attempts during the checkout procedure</p>

<p>$this-&gt;cartID = $this-&gt;generate_cart_id();</p>

<p>}</p>

<p>to:</p>

<p>function add_cart($products_id, $qty = '1', $attributes = '', $notify = true) {</p>

<p>global $new_products_id_in_cart, $customer_id;</p>

<p>$products_id_string = tep_get_uprid($products_id, $attributes);</p>

<p>$products_id = tep_get_prid($products_id_string);</p>

<p>if (is_numeric($products_id) &amp;&amp; is_numeric($qty)) {</p>

<p>$check_product_query = tep_db_query("select products_status from " . TABLE_PRODUCTS . " where products_id = '" . (int)$products_id . "'");</p>

<p>$check_product = tep_db_fetch_array($check_product_query);</p>

<p>if (($check_product !== false) &amp;&amp; ($check_product['products_status'] == '1')) {</p>

<p>if ($notify == true) {</p>

<p>$new_products_id_in_cart = $products_id;</p>

<p>tep_session_register('new_products_id_in_cart');</p>

<p>}</p>

<p>if ($this-&gt;in_cart($products_id_string)) {</p>

<p>$this-&gt;update_quantity($products_id_string, $qty, $attributes);</p>

<p>} else {</p>

<p>$this-&gt;contents[$products_id_string] = array('qty' =&gt; $qty);</p>

<p>// insert into database</p>

<p>if (tep_session_is_registered('customer_id')) tep_db_query("insert into " . TABLE_CUSTOMERS_BASKET . " (customers_id, products_id, customers_basket_quantity, customers_basket_date_added) values ('" . (int)$customer_id . "', '" . tep_db_input($products_id_string) . "', '" . (int)$qty . "', '" . date('Ymd') . "')");</p>

<p>if (is_array($attributes)) {</p>

<p>reset($attributes);</p>

<p>while (list($option, $value) = each($attributes)) {</p>

<p>$this-&gt;contents[$products_id_string]['attributes'][$option] = $value;</p>

<p>// insert into database</p>

<p>if (tep_session_is_registered('customer_id')) tep_db_query("insert into " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " (customers_id, products_id, products_options_id, products_options_value_id) values ('" . (int)$customer_id . "', '" . tep_db_input($products_id_string) . "', '" . (int)$option . "', '" . (int)$value . "')");</p>

<p>}</p>

<p>}</p>

<p>}</p>

<p>$this-&gt;cleanup();</p>

<p>// assign a temporary unique ID to the order contents to prevent hack attempts during the checkout procedure</p>

<p>$this-&gt;cartID = $this-&gt;generate_cart_id();</p>

<p>}</p>

<p>}</p>

<p>}</p>

<p>Lines 110-127, from:</p>

<p>function update_quantity($products_id, $quantity = '', $attributes = '') {</p>

<p>global $customer_id;</p>

<p>if (empty($quantity)) return true; // nothing needs to be updated if theres no quantity, so we return true..</p>

<p>$this-&gt;contents[$products_id] = array('qty' =&gt; $quantity);</p>

<p>// update database</p>

<p>if (tep_session_is_registered('customer_id')) tep_db_query("update " . TABLE_CUSTOMERS_BASKET . " set customers_basket_quantity = '" . $quantity . "' where customers_id = '" . (int)$customer_id . "' and products_id = '" . tep_db_input($products_id) . "'");</p>

<p>if (is_array($attributes)) {</p>

<p>reset($attributes);</p>

<p>while (list($option, $value) = each($attributes)) {</p>

<p>$this-&gt;contents[$products_id]['attributes'][$option] = $value;</p>

<p>// update database</p>

<p>if (tep_session_is_registered('customer_id')) tep_db_query("update " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " set products_options_value_id = '" . (int)$value . "' where customers_id = '" . (int)$customer_id . "' and products_id = '" . tep_db_input($products_id) . "' and products_options_id = '" . (int)$option . "'");</p>

<p>}</p>

<p>}</p>

<p>}</p>

<p>to:</p>

<p>function update_quantity($products_id, $quantity = '', $attributes = '') {</p>

<p>global $customer_id;</p>

<p>$products_id_string = tep_get_uprid($products_id, $attributes);</p>

<p>$products_id = tep_get_prid($products_id_string);</p>

<p>if (is_numeric($products_id) &amp;&amp; isset($this-&gt;contents[$products_id_string]) &amp;&amp; is_numeric($quantity)) {</p>

<p>$this-&gt;contents[$products_id_string] = array('qty' =&gt; $quantity);</p>

<p>// update database</p>

<p>if (tep_session_is_registered('customer_id')) tep_db_query("update " . TABLE_CUSTOMERS_BASKET . " set customers_basket_quantity = '" . (int)$quantity . "' where customers_id = '" . (int)$customer_id . "' and products_id = '" . tep_db_input($products_id_string) . "'");</p>

<p>if (is_array($attributes)) {</p>

<p>reset($attributes);</p>

<p>while (list($option, $value) = each($attributes)) {</p>

<p>$this-&gt;contents[$products_id_string]['attributes'][$option] = $value;</p>

<p>// update database</p>

<p>if (tep_session_is_registered('customer_id')) tep_db_query("update " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " set products_options_value_id = '" . (int)$value . "' where customers_id = '" . (int)$customer_id . "' and products_id = '" . tep_db_input($products_id_string) . "' and products_options_id = '" . (int)$option . "'");</p>

<p>}</p>

<p>}</p>

<p>}</p>

<p>}</p>

<p>Session ID XSS Issue</p>

<p>http://www.oscommerce.com/community/bugs,1546</p>

<p>Problem:</p>

<p>A cross site scripting issue exists with malformed session IDs being used in the tep_href_link() function.</p>

<p>Solution:</p>

<p>Line 66 in catalog/includes/functions/html_output.php must be changed from:</p>

<p>$link .= $separator . $_sid;</p>

<p>to:</p>

<p>$link .= $separator . tep_output_string($_sid);</p>

<p>Validate Session ID</p>

<p>Problem:</p>

<p>Validate the session ID and redirect to the front page when an invalid session ID is requested.</p>

<p>Solution:</p>

<p>The following function must be replaced in catalog/includes/functions/sessions.php.</p>

<p>Lines 66-68, from:</p>

<p>function tep_session_start() {</p>

<p>return session_start();</p>

<p>}</p>

<p>to:</p>

<p>function tep_session_start() {</p>

<p>global $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS;</p>

<p>$sane_session_id = true;</p>

<p>if (isset($HTTP_GET_VARS[tep_session_name()])) {</p>

<p>if (preg_match('/^[a-zA-Z0-9]+$/', $HTTP_GET_VARS[tep_session_name()]) == false) {</p>

<p>unset($HTTP_GET_VARS[tep_session_name()]);</p>

<p>$sane_session_id = false;</p>

<p>}</p>

<p>} elseif (isset($HTTP_POST_VARS[tep_session_name()])) {</p>

<p>if (preg_match('/^[a-zA-Z0-9]+$/', $HTTP_POST_VARS[tep_session_name()]) == false) {</p>

<p>unset($HTTP_POST_VARS[tep_session_name()]);</p>

<p>$sane_session_id = false;</p>

<p>}</p>

<p>} elseif (isset($HTTP_COOKIE_VARS[tep_session_name()])) {</p>

<p>if (preg_match('/^[a-zA-Z0-9]+$/', $HTTP_COOKIE_VARS[tep_session_name()]) == false) {</p>

<p>$session_data = session_get_cookie_params();</p>

<p>setcookie(tep_session_name(), '', time()-42000, $session_data['path'], $session_data['domain']);</p>

<p>$sane_session_id = false;</p>

<p>}</p>

<p>}</p>

<p>if ($sane_session_id == false) {</p>

<p>tep_redirect(tep_href_link(FILENAME_DEFAULT, '', 'NONSSL', false));</p>

<p>}</p>

<p>return session_start();</p>

<p>}</p>

<p>File Manager Problem</p>

<p>http://www.oscommerce.com/community/bugs,1391</p>

<p>Problem:</p>

<p>Parsing errors occur when saving edited files through the File Manager.</p>

<p>Solution:</p>

<p>Line 148 in catalog/admin/file_manager.php must be changed from:</p>

<p>$file_contents = htmlspecialchars(implode('', $file_array));</p>

<p>to:</p>

<p>$file_contents = addslashes(implode('', $file_array));</p>

<p>Note: This update also requires the Contact Us Form XSS Issue update in order to function correctly.</p>

<p>HTTP Header Injection</p>

<p>Problem:</p>

<p>By using malicious data it is possible to inject headers into HTTP requests.</p>

<p>Solution:</p>

<p>The following function must be replaced in catalog/includes/functions/general.php.</p>

<p>Lines 22-32, from:</p>

<p>function tep_redirect($url) {</p>

<p>if ( (ENABLE_SSL == true) &amp;&amp; (getenv('HTTPS') == 'on') ) { // We are loading an SSL page</p>

<p>if (substr($url, 0, strlen(HTTP_SERVER)) == HTTP_SERVER) { // NONSSL url</p>

<p>$url = HTTPS_SERVER . substr($url, strlen(HTTP_SERVER)); // Change it to SSL</p>

<p>}</p>

<p>}</p>

<p>header('Location: ' . $url);</p>

<p>tep_exit();</p>

<p>}</p>

<p>to:</p>

<p>function tep_redirect($url) {</p>

<p>if ( (strstr($url, "\n") != false) || (strstr($url, "\r") != false) ) {</p>

<p>tep_redirect(tep_href_link(FILENAME_DEFAULT, '', 'NONSSL', false));</p>

<p>}</p>

<p>if ( (ENABLE_SSL == true) &amp;&amp; (getenv('HTTPS') == 'on') ) { // We are loading an SSL page</p>

<p>if (substr($url, 0, strlen(HTTP_SERVER)) == HTTP_SERVER) { // NONSSL url</p>

<p>$url = HTTPS_SERVER . substr($url, strlen(HTTP_SERVER)); // Change it to SSL</p>

<p>}</p>

<p>}</p>

<p>header('Location: ' . $url);</p>

<p>tep_exit();</p>

<p>}</p>

<p>The following function must be replaced in catalog/admin/includes/functions/general.php.</p>

<p>Lines 15-26, from:</p>

<p>function tep_redirect($url) {</p>

<p>global $logger;</p>

<p>header('Location: ' . $url);</p>

<p>if (STORE_PAGE_PARSE_TIME == 'true') {</p>

<p>if (!is_object($logger)) $logger = new logger;</p>

<p>$logger-&gt;timer_stop();</p>

<p>}</p>

<p>exit;</p>

<p>}</p>

<p>to:</p>

<p>function tep_redirect($url) {</p>

<p>global $logger;</p>

<p>if ( (strstr($url, "\n") != false) || (strstr($url, "\r") != false) ) {</p>

<p>tep_redirect(tep_href_link(FILENAME_DEFAULT, '', 'NONSSL', false));</p>

<p>}</p>

<p>header('Location: ' . $url);</p>

<p>if (STORE_PAGE_PARSE_TIME == 'true') {</p>

<p>if (!is_object($logger)) $logger = new logger;</p>

<p>$logger-&gt;timer_stop();</p>

<p>}</p>

<p>exit;</p>

<p>}</p>

<p>E-Mail Header Injection</p>

<p>http://www.oscommerce.com/community/bugs,2488</p>

<p>Problem:</p>

<p>By using malicious data it is possible to inject headers into emails the online store sends.</p>

<p>Solution:</p>

<p>The following function must be replaced in catalog/includes/classes/email.php and catalog/admin/includes/classes/email.php.</p>

<p>Lines 473-504, from:</p>

<p>function send($to_name, $to_addr, $from_name, $from_addr, $subject = '', $headers = '') {</p>

<p>$to = (($to_name != '') ? '"' . $to_name . '"</p>

<p>$from = (($from_name != '') ? '"' . $from_name . '"</p>

<p>if (is_string($headers)) {</p>

<p>$headers = explode($this-&gt;lf, trim($headers));</p>

<p>}</p>

<p>for ($i=0; $i</p>

<p>if (is_array($headers[$i])) {</p>

<p>for ($j=0; $joutput, 'From: ' . $from . $this-&gt;lf . 'To: ' . $to . $this-&gt;lf . implode($this-&gt;lf, $this-&gt;headers) . $this-&gt;lf . implode($this-&gt;lf, $xtra_headers));</p>

<p>} else {</p>

<p>return mail($to, $subject, $this-&gt;output, 'From: '.$from.$this-&gt;lf.implode($this-&gt;lf, $this-&gt;headers).$this-&gt;lf.implode($this-&gt;lf, $xtra_headers));</p>

<p>}</p>

<p>}</p>

<p>to:</p>

<p>function send($to_name, $to_addr, $from_name, $from_addr, $subject = '', $headers = '') {</p>

<p>if ((strstr($to_name, "\n") != false) || (strstr($to_name, "\r") != false)) {</p>

<p>return false;</p>

<p>}</p>

<p>if ((strstr($to_addr, "\n") != false) || (strstr($to_addr, "\r") != false)) {</p>

<p>return false;</p>

<p>}</p>

<p>if ((strstr($subject, "\n") != false) || (strstr($subject, "\r") != false)) {</p>

<p>return false;</p>

<p>}</p>

<p>if ((strstr($from_name, "\n") != false) || (strstr($from_name, "\r") != false)) {</p>

<p>return false;</p>

<p>}</p>

<p>if ((strstr($from_addr, "\n") != false) || (strstr($from_addr, "\r") != false)) {</p>

<p>return false;</p>

<p>}</p>

<p>$to = (($to_name != '') ? '"' . $to_name . '"</p>

<p>$from = (($from_name != '') ? '"' . $from_name . '"</p>

<p>if (is_string($headers)) {</p>

<p>$headers = explode($this-&gt;lf, trim($headers));</p>

<p>}</p>

<p>for ($i=0; $i</p>

<p>if (is_array($headers[$i])) {</p>

<p>for ($j=0; $joutput, 'From: ' . $from . $this-&gt;lf . 'To: ' . $to . $this-&gt;lf . implode($this-&gt;lf, $this-&gt;headers) . $this-&gt;lf . implode($this-&gt;lf, $xtra_headers));</p>

<p>} else {</p>

<p>return mail($to, $subject, $this-&gt;output, 'From: '.$from.$this-&gt;lf.implode($this-&gt;lf, $this-&gt;headers).$this-&gt;lf.implode($this-&gt;lf, $xtra_headers));</p>

<p>}</p>

<p>}</p>

<p>Contact Us Form XSS Issue</p>

<p>http://www.oscommerce.com/community/bugs,2422</p>

<p>Problem:</p>

<p>By using malicious data it is possible to inject HTML into the page.</p>

<p>Solution:</p>

<p>Lines 221-225 in catalog/includes/functions/html_output.php must be changed from:</p>

<p>if ( (isset($GLOBALS[$name])) &amp;&amp; ($reinsert_value == true) ) {</p>

<p>$field .= stripslashes($GLOBALS[$name]);</p>

<p>} elseif (tep_not_null($text)) {</p>

<p>$field .= $text;</p>

<p>}</p>

<p>to:</p>

<p>if ( (isset($GLOBALS[$name])) &amp;&amp; ($reinsert_value == true) ) {</p>

<p>$field .= tep_output_string_protected(stripslashes($GLOBALS[$name]));</p>

<p>} elseif (tep_not_null($text)) {</p>

<p>$field .= tep_output_string_protected($text);</p>

<p>}</p>

<p>Lines 244-248 in catalog/admin/includes/functions/html_output.php must be changed from:</p>

<p>if ( (isset($GLOBALS[$name])) &amp;&amp; ($reinsert_value == true) ) {</p>

<p>$field .= stripslashes($GLOBALS[$name]);</p>

<p>} elseif (tep_not_null($text)) {</p>

<p>$field .= $text;</p>

<p>}</p>

<p>to:</p>

<p>if ( (isset($GLOBALS[$name])) &amp;&amp; ($reinsert_value == true) ) {</p>

<p>$field .= tep_output_string_protected(stripslashes($GLOBALS[$name]));</p>

<p>} elseif (tep_not_null($text)) {</p>

<p>$field .= tep_output_string_protected($text);</p>

<p>}</p>

<p>Open Redirector</p>

<p>http://www.oscommerce.com/community/bugs,2970</p>

<p>Problem:</p>

<p>There is no URL checking being performed on the redirection page, and allows external sources to use the page as an open redirect relay.</p>

<p>Solution:</p>

<p>Lines 27-29 in catalog/redirect.php must be changed from:</p>

<p>if (isset($HTTP_GET_VARS['goto']) &amp;&amp; tep_not_null($HTTP_GET_VARS['goto'])) {</p>

<p>tep_redirect('http://' . $HTTP_GET_VARS['goto']);</p>

<p>}</p>

<p>to:</p>

<p>if (isset($HTTP_GET_VARS['goto']) &amp;&amp; tep_not_null($HTTP_GET_VARS['goto'])) {</p>

<p>$check_query = tep_db_query("select products_url from " . TABLE_PRODUCTS_DESCRIPTION . " where products_url = '" . tep_db_input($HTTP_GET_VARS['goto']) . "' limit 1");</p>

<p>if (tep_db_num_rows($check_query)) {</p>

<p>tep_redirect('http://' . $HTTP_GET_VARS['goto']);</p>

<p>}</p>

<p>}</p>

<p>Extra Slashes In New Products</p>

<p>Problem:</p>

<p>When new products are entered and previewed, hitting the back button to edit the product data again adds extra slashes to apostrophes in the products name and description.</p>

<p>Solution:</p>

<p>The following lines must be replaced in catalog/admin/categories.php:</p>

<p>Line 504, from:</p>

<p>to:</p>

<p>Line 538, from:</p>

<p>to:</p>

<p>Line 574, from:</p>

<p>to:</p>

<p>Order Status Filtering</p>

<p>http://www.oscommerce.com/community/bugs,1543</p>

<p>Problem:</p>

<p>After changing the order status filtering on the Administration Tool -&gt; Customers -&gt; Orders page, selecting "All Orders" would show an empty listing of orders.</p>

<p>Solution:</p>

<p>Line 357 in catalog/admin/orders.php must be changed from:</p>

<p>} elseif (isset($HTTP_GET_VARS['status'])) {</p>

<p>to:</p>

<p>} elseif (isset($HTTP_GET_VARS['status']) &amp;&amp; is_numeric($HTTP_GET_VARS['status']) &amp;&amp; ($HTTP_GET_VARS['status'] &gt; 0)) {</p>

<p>MySQL 5.0 Compatibility</p>

<p>Problem:</p>

<p>MySQL 5.0 introduces Server SQL modes as part of its SQL 2003 standards support, and uses a more stricter approach to executing SQL queries. This is performed by default with setting STRICT_TRANS_TABLES as a Server SQL mode.</p>

<p>Due to this new setting, MySQL fails on certain SQL queries and produces error messages on the screen.</p>

<p>Solution:</p>

<p>Lines 213-223 in catalog/advanced_search_result.php must be changed from:</p>

<p>$from_str = "from " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m using(manufacturers_id) left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_CATEGORIES . " c, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c";</p>

<p>if ( (DISPLAY_PRICE_WITH_TAX == 'true') &amp;&amp; (tep_not_null($pfrom) || tep_not_null($pto)) ) {</p>

<p>if (!tep_session_is_registered('customer_country_id')) {</p>

<p>$customer_country_id = STORE_COUNTRY;</p>

<p>$customer_zone_id = STORE_ZONE;</p>

<p>}</p>

<p>$from_str .= " left join " . TABLE_TAX_RATES . " tr on p.products_tax_class_id = tr.tax_class_id left join " . TABLE_ZONES_TO_GEO_ZONES . " gz on tr.tax_zone_id = gz.geo_zone_id and (gz.zone_country_id is null or gz.zone_country_id = '0' or gz.zone_country_id = '" . (int)$customer_country_id . "') and (gz.zone_id is null or gz.zone_id = '0' or gz.zone_id = '" . (int)$customer_zone_id . "')";</p>

<p>}</p>

<p>$where_str = " where p.products_status = '1' and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' and p.products_id = p2c.products_id and p2c.categories_id = c.categories_id ";</p>

<p>to:</p>

<p>$from_str = "from " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m using(manufacturers_id) left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id";</p>

<p>if ( (DISPLAY_PRICE_WITH_TAX == 'true') &amp;&amp; (tep_not_null($pfrom) || tep_not_null($pto)) ) {</p>

<p>if (!tep_session_is_registered('customer_country_id')) {</p>

<p>$customer_country_id = STORE_COUNTRY;</p>

<p>$customer_zone_id = STORE_ZONE;</p>

<p>}</p>

<p>$from_str .= " left join " . TABLE_TAX_RATES . " tr on p.products_tax_class_id = tr.tax_class_id left join " . TABLE_ZONES_TO_GEO_ZONES . " gz on tr.tax_zone_id = gz.geo_zone_id and (gz.zone_country_id is null or gz.zone_country_id = '0' or gz.zone_country_id = '" . (int)$customer_country_id . "') and (gz.zone_id is null or gz.zone_id = '0' or gz.zone_id = '" . (int)$customer_zone_id . "')";</p>

<p>}</p>

<p>$from_str .= ", " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_CATEGORIES . " c, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c";</p>

<p>$where_str = " where p.products_status = '1' and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' and p.products_id = p2c.products_id and p2c.categories_id = c.categories_id ";</p>

<p>The following lines must be replaced in catalog/index.php:</p>

<p>Line 175, from:</p>

<p>$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "'";</p>

<p>to:</p>

<p>$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "'";</p>

<p>Line 178, from:</p>

<p>$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where p.products_status = '1' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'";</p>

<p>to:</p>

<p>$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m where p.products_status = '1' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'";</p>

<p>Line 184, from:</p>

<p>$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";</p>

<p>to:</p>

<p>$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";</p>

<p>Line 187, from:</p>

<p>$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";</p>

<p>to:</p>

<p>$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";</p>

<p>Line 292 in catalog/admin/categories.php must be changed from:</p>

<p>tep_db_query("insert into " . TABLE_PRODUCTS . " (products_quantity, products_model,products_image, products_price, products_date_added, products_date_available, products_weight, products_status, products_tax_class_id, manufacturers_id) values ('" . tep_db_input($product['products_quantity']) . "', '" . tep_db_input($product['products_model']) . "', '" . tep_db_input($product['products_image']) . "', '" . tep_db_input($product['products_price']) . "', now(), '" . tep_db_input($product['products_date_available']) . "', '" . tep_db_input($product['products_weight']) . "', '0', '" . (int)$product['products_tax_class_id'] . "', '" . (int)$product['manufacturers_id'] . "')");</p>

<p>to:</p>

<p>tep_db_query("insert into " . TABLE_PRODUCTS . " (products_quantity, products_model,products_image, products_price, products_date_added, products_date_available, products_weight, products_status, products_tax_class_id, manufacturers_id) values ('" . tep_db_input($product['products_quantity']) . "', '" . tep_db_input($product['products_model']) . "', '" . tep_db_input($product['products_image']) . "', '" . tep_db_input($product['products_price']) . "', now(), " . (empty($product['products_date_available']) ? "null" : "'" . tep_db_input($product['products_date_available']) . "'") . ", '" . tep_db_input($product['products_weight']) . "', '0', '" . (int)$product['products_tax_class_id'] . "', '" . (int)$product['manufacturers_id'] . "')");</p>

<p>The following SQL queries need to be performed:</p>

<p>ALTER TABLE whos_online MODIFY COLUMN last_page_url VARCHAR(255) NOT NULL;</p>

<p>ALTER TABLE customers MODIFY COLUMN customers_default_address_id INTEGER;</p>

<p>ALTER TABLE customers_basket MODIFY COLUMN final_price DECIMAL(15,4);</p>]]></content:encoded>
			<wfw:commentRss>http://www.w3it.com/e-commerce-websites/oscommerce-update-for-2-2ms2-stores/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML to PDF conversion</title>
		<link>http://www.w3it.com/web-services/html-to-pdf-conversion/</link>
		<comments>http://www.w3it.com/web-services/html-to-pdf-conversion/#comments</comments>
		<pubDate>Wed, 19 Oct 2011 16:56:49 +0000</pubDate>
		<dc:creator>Web IT Expert</dc:creator>
				<category><![CDATA[Document Conversion]]></category>
		<category><![CDATA[Web Services]]></category>
		<category><![CDATA[conversion]]></category>
		<category><![CDATA[generate pdf]]></category>
		<category><![CDATA[html to pdf]]></category>

		<guid isPermaLink="false">http://www.w3it.com/?p=383</guid>
		<description><![CDATA[Looking for html to pdf conversion? Look no further. The resulting generated pdf document was an exact replica of my html page.]]></description>
			<content:encoded><![CDATA[I have to give credit to <a href="http://www.htm2pdf.co.uk" title="html to pdf conversion" target="_blank">htm2pdf.co.uk</a> which offers a free service to convert any website page or html text to a pdf document. I was looking for a method to convert my CV from html to pdf and found many services and applications. However only htm2pdf gave a resulting pdf file that was not alterred by some tag line, watermark or giant red text on the middle of the page! The resulting generated pdf document was also an exact replica of my html page, which a few of the other services actually failed to do. Just remember not to scan anything that should remain secret...you never know.]]></content:encoded>
			<wfw:commentRss>http://www.w3it.com/web-services/html-to-pdf-conversion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>White Board</title>
		<link>http://www.w3it.com/portfolio/white-board/</link>
		<comments>http://www.w3it.com/portfolio/white-board/#comments</comments>
		<pubDate>Wed, 18 May 2011 19:47:10 +0000</pubDate>
		<dc:creator>Web IT Expert</dc:creator>
				<category><![CDATA[Ideas and Creativity]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Project Portfolio]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[visual aids]]></category>
		<category><![CDATA[white board]]></category>

		<guid isPermaLink="false">http://www.w3it.com/?p=334</guid>
		<description><![CDATA[Web based implementation of a classroom white board.]]></description>
			<content:encoded><![CDATA[Web based implementation of a classroom white board. Coloured markers included!<p><p><p>Ideal for use within Scrum and Kanban project management. Each note you create within the coloured post-it note actually becomes a post in your WordPress site. This can be used in many ways to assist in team collaboration.<p><p><p><p><p><p><p><p><p>
<p style="text-align: right;"><div id="hyperboardmain" style="background-image: url(http://www.w3it.com/wp-content/plugins/hyperboard/img/hyperboard_stripes.png);"><button class="add_new_note yellow" title="Add a note">+</button><div id="hyperboard_note_411" class="note orange" style="left:391px;top:187px;z-index:14">
<div class="body">Scrum and Kanban board demo. Ideal for team collaboration.</div>
<div class="author">Scrum Kanban</div>
<span class="data hidden_field">411</span>
<span class="color hidden_field">orange</span>
<div class="time">
<span class="timeleft">0</span>/<span class="estimate">1</span>
</div>
</div><div id="hyperboard_note_405" class="note green" style="left:51px;top:82px;z-index:10">
<div class="body">Request a demo and try this for yourself...</div>
<div class="author">Demo</div>
<span class="data hidden_field">405</span>
<span class="color hidden_field">green</span>
<div class="time">
<span class="timeleft">100</span>/<span class="estimate">100</span>
</div>
</div><div id="hyperboard_note_404" class="note yellow" style="left:287px;top:229px;z-index:12">
<div class="body">Single page checkout solution</div>
<div class="author">Cathrine</div>
<span class="data hidden_field">404</span>
<span class="color hidden_field">yellow</span>
<div class="time">
<span class="timeleft">10</span>/<span class="estimate">50</span>
</div>
</div><div id="hyperboard_note_403" class="note purple" style="left:155px;top:168px;z-index:10">
<div class="body">Japan Post EMS Shipping module</div>
<div class="author">Katie</div>
<span class="data hidden_field">403</span>
<span class="color hidden_field">purple</span>
<div class="time">
<span class="timeleft">10</span>/<span class="estimate">25</span>
</div>
</div><div id="hyperboard_note_398" class="note blue" style="left:183px;top:50px;z-index:9">
<div class="body">PayPal integration module</div>
<div class="author">Jack</div>
<span class="data hidden_field">398</span>
<span class="color hidden_field">blue</span>
<div class="time">
<span class="timeleft">2</span>/<span class="estimate">10</span>
</div>
</div></div><div style="display:none">
	<div id="noteDialog" class="ui-dialog" title="Edit your note"><div id="previewNote" class="note yellow">
        <div class="body"></div>
        <div class="author"></div>
        <span class="data hidden_field">0</span>
        <span class="color hidden_field">yellow</span>
        <div class="time">
        <span class="timeleft">0</span>/<span class="estimate">0</span>
        </div>
    </div>
    <div id="noteData"> <!-- Holds the form -->
    <form action="" method="post" class="note-form">
    <label for="note-body">Text of the note</label>
    <textarea name="note-body" id="note-body" class="pr-body" cols="30" rows="6"></textarea>
    <label for="note-estimate">Estimate</label>
    <input type="text" name="note-estimate" id="note-estimate" class="pr-estimate numbersOnly" value="0" />
    <label for="note-name">Time left</label>
    <input type="text" name="note-timeleft" id="note-timeleft" class="pr-timeleft numbersOnly" value="0" />
    <label for="note-name">Your name</label>
    <input type="text" name="note-name" id="note-name" class="pr-author" value="" />
    <label>Color</label> <!-- Clicking one of the divs changes the color of the preview -->
    <div class="color yellow"></div>
    <div class="color blue"></div>
    <div class="color green"></div>
    <div class="color purple"></div>
    <div class="color orange"></div>
    <div class="color pink"></div>
    <span class="board hidden_field">334</span>
    <div class="clear"></div>
    <button id="note-submit" class="dialog_button">Submit</button>
    <button id="note-post" class="dialog_button">To Post</button>
    <button id="note-import" class="dialog_button">Import</button>
    <button id="note-close">Cancel</button>
    <span class="note-import-block">Import post with id: <input name="note-import-id" id="note-import-id" class="numbersOnly" /><button id="note-import-enter" class="dialog_button">OK</button></span>
    </form>
    </div></div></div></p>]]></content:encoded>
			<wfw:commentRss>http://www.w3it.com/portfolio/white-board/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eureka! Ideas and Creativity</title>
		<link>http://www.w3it.com/ideas-and-creativity/project-name-16/</link>
		<comments>http://www.w3it.com/ideas-and-creativity/project-name-16/#comments</comments>
		<pubDate>Wed, 18 May 2011 07:21:04 +0000</pubDate>
		<dc:creator>Web IT Expert</dc:creator>
				<category><![CDATA[Ideas and Creativity]]></category>
		<category><![CDATA[creativity]]></category>
		<category><![CDATA[ideas]]></category>
		<category><![CDATA[slider]]></category>
		<category><![CDATA[think tank]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.w3it.com/?p=195</guid>
		<description><![CDATA[<p>Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta.  Fusce suscipit varius mi. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla dui.  Fusce feugiat malesuada odio. Morbi nunc odio, gravida at, cursus nec, luctus a, lorem. Maecenas tristique orci ac sem. </p>
<h6>Project information:</h6>
<ul>
	<li><a href="#">Fusce suscipit varius micum sociis natoque</a></li>
	<li><a href="#">Penatibus et magnis dis parturient montes nascetur</a></li>
	<li><a href="#">Morbi nunc odio gravida cursus nec luctus alorem</a></li>
</ul>
]]></description>
			<content:encoded><![CDATA[	<p><strong>Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta. Fusce suscipit varius mi. Cum sociis natoque penatibus et magnis dis parturient montes</strong></p>
	<p>Praesent vestibulum molestie lacus. Aenean nonmy hendrerit mauris. Phasellus porta. Fusce suscipit varius mi. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla dui. Fusce feugiat malesuada odio. Morbi nunc odio, gravida at, cursus nec, luctus a, lorem. Maecenas tristique orci ac sem. Duis ultricies pharetra magna. Donec accumsan malesuada orci. Donec sit amet eros.  Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Mauris fermentum dictum magna. Sed laoreet aliquam leo. Ut tellus dolor, dapibus eget, elementum vel, cursus eleifend, elit. Aenean auctor wisi et urna. Aliquam erat volutpat. Duis ac turpis. Integer rutrum ante eu lacus.</p>
	<p>Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque. Vivamus eget nibh. Etiam cursus leo vel metus. Nulla facilisi. Aenean nec eros. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse sollicitudin velit sed leo. Ut pharetra augue nec augue.</p>
	<p><strong>Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque. Vivamus eget nibh.  Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta. Fusce suscipit varius mi. Cum sociis natoque penatibus et magnis dis parturient montes</strong></p>
	<p>Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque. Vivamus eget nibh. Etiam cursus leo vel metus. Nulla facilisi. Aenean nec eros. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse sollicitudin velit sed leo. Ut pharetra augue nec augue.
Nam elit magna, hendrerit sit amet, tincidunt ac, viverra sed, nulla. Donec porta diam eu massa. Quisque diam lorem, interdum vitae, dapibus ac, scelerisque vitae, pede. Donec eget tellus non erat lacinia fermentum. Donec in velit vel ipsum auctor pulvinar. Proin ullamcorper urna et felis. Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta. Fusce suscipit varius mi. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla dui. Fusce feugiat malesuada odio. Morbi nunc odio, gravida at, cursus nec, luctus a, lorem. Maecenas tristique orci ac sem. Duis ultricies pharetra magna. Donec accumsan malesuada orci. Donec sit amet eros. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Mauris fermentum dictum magna. Sed laoreet aliquam leo. Ut tellus dolor, dapibus eget, elementum vel, cursus eleifend, elit. Aenean auctor wisi et urna. Aliquam erat volutpat. Duis ac turpis. Integer rutrum ante eu lacus. Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque. Vivamus eget nibh. Etiam cursus leo vel metus. Nulla facilisi. Aenean nec eros. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse sollicitudin velit sed leo. Ut pharetra augue nec augue. Nam elit magna, hendrerit sit amet, tincidunt ac, viverra sed, nulla.</p>
	<ul class="list">
		<li><a href="#">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</a></li>
		<li><a href="#">Praesent vestibulum molestie lacus aenean nonummy hendrerit mauris</a></li>
		<li><a href="#">Phasellus porta. Fusce suscipit varius micum sociis natoque</a></li>
		<li><a href="#">Penatibus et magnis dis parturient montes, nascetur ridiculus mus nulla dui fusce</a></li>
		<li><a href="#">Morbi nunc odio, gravida at, cursus nec, luctus a, lorem</a></li>
	</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.w3it.com/ideas-and-creativity/project-name-16/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Served from: www.w3it.com @ 2012-05-20 10:45:47 -->
