<?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>NEUBER-WEB-SOLUTIONS :: We support your ECommerce &#124;</title>
	<atom:link href="http://www.neuber-web-solutions.de/feed" rel="self" type="application/rss+xml" />
	<link>http://www.neuber-web-solutions.de</link>
	<description></description>
	<lastBuildDate>Sat, 12 Jun 2010 16:17:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>OpenOffice Base and your Inventory control</title>
		<link>http://www.neuber-web-solutions.de/ideas-and-considerations/openoffice-base-and-your-inventory-control</link>
		<comments>http://www.neuber-web-solutions.de/ideas-and-considerations/openoffice-base-and-your-inventory-control#comments</comments>
		<pubDate>Sat, 12 Jun 2010 15:51:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ideas and Considerations]]></category>

		<guid isPermaLink="false">http://www.neuber-web-solutions.de/?p=996</guid>
		<description><![CDATA[Lets imagine this: you are using the inventory control of our themes. You are actually [...]]]></description>
			<content:encoded><![CDATA[<p>Lets imagine this: you are using the inventory control of our themes. You are actually too lazy to login online and navigate to your &#8220;Manage inventory&#8221; section to update quickly some item quantities. What then? Under certain circumstances you could do the job also with OpenOffice Base. </p>
<p><strong>What you need:</strong><br />
- OpenOffice Base (surprise,surprise)<br />
- your host allows you <u>external access</u> to the online MySQL data base</p>
<p>Here we show you <strong>step-by-step</strong> how to connect to your Inventory and change the amounts via OpenOffice Base:</p>
<p>1) What MySql database is your WordPress using? In case its possible to give this database &#8220;external access&#8221; then please do so. You find this possibility usually in the backend of your host under &#8220;databases&#8221;. If this is definitely not possible &#8211; sorry! It will not work for you. </p>
<p>2) Get the newest version of OpenOffice at <a href="http://download.openoffice.org/">http://download.openoffice.org/</a></p>
<p>3) Get the newest version of the OpenOffice addon &#8220;MySql Connector&#8221;<br />
&#8230;at <a href="http://extensions.services.openoffice.org/de/project/mysql_connector">http://extensions.services.openoffice.org/de/project/mysql_connector</a></p>
<p>4) Connect to the external web database<br />
- open OpenOffice base<br />
- choose in the &#8220;Database Wizard&#8221; the option &#8220;Connect to an existing database&#8221;<br />
- choose in the dropdown &#8220;MySQL&#8221;</p>
<p><a class="lightbox"  title ="openOffice-base-01" href="http://www.neuber-web-solutions.de/wp-content/uploads/2010/06/openOffice-base-01.jpg"><img src="http://www.neuber-web-solutions.de/wp-content/uploads/2010/06/openOffice-base-01.jpg" alt="" title="openOffice-base-01" width="367" height="241" class="alignnone size-full wp-image-1003" /></a></p>
<p>5) Choose &#8220;Connect directly&#8221;</p>
<p>6) Enter your database name, your database server and the port (very likely 3306)</p>
<p><a class="lightbox"  title ="openOffice-base-02" href="http://www.neuber-web-solutions.de/wp-content/uploads/2010/06/openOffice-base-02.jpg"><img src="http://www.neuber-web-solutions.de/wp-content/uploads/2010/06/openOffice-base-02.jpg" alt="" title="openOffice-base-02" width="364" height="241" class="alignnone size-full wp-image-1004" /></a></p>
<p>7) Set up the user authentication &#8211; basically fill in your database username and password</p>
<p><a class="lightbox"  title ="openOffice-base-03" href="http://www.neuber-web-solutions.de/wp-content/uploads/2010/06/openOffice-base-03.jpg"><img src="http://www.neuber-web-solutions.de/wp-content/uploads/2010/06/openOffice-base-03.jpg" alt="" title="openOffice-base-03" width="364" height="240" class="alignnone size-full wp-image-1005" /></a></p>
<p>8. Choose &#8220;Yes, register the database for me&#8221; </p>
<p>9) Press &#8220;Finish&#8221;</p>
<p>10) Save it e.g. on the desktop</p>
<p>11) Double click on the new desktop icon</p>
<p>12) Choose on the left side &#8220;Tables&#8221; and then the table &#8220;_wps_iventory&#8221;</p>
<p><a class="lightbox"  title ="openOffice-base-04" href="http://www.neuber-web-solutions.de/wp-content/uploads/2010/06/openOffice-base-04.jpg"><img src="http://www.neuber-web-solutions.de/wp-content/uploads/2010/06/openOffice-base-04.jpg" alt="" title="openOffice-base-04" width="714" height="522" class="alignnone size-full wp-image-1006" /></a></p>
<p>13) Change the amounts in the column &#8220;amounts&#8221;</p>
<p><a class="lightbox"  title ="openOffice-base-05" href="http://www.neuber-web-solutions.de/wp-content/uploads/2010/06/openOffice-base-051.jpg"><img src="http://www.neuber-web-solutions.de/wp-content/uploads/2010/06/openOffice-base-051-300x165.jpg" alt="" title="openOffice-base-05" width="300" height="165" class="alignnone size-medium wp-image-1017" /></a></p>
<p>14) Simply close the window and save the changes</p>
<p>Congratulations &#8211; you&#8217;ve just updated your inventory control without touching the WordPress backend!</p>
<p><br/><br />
<br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuber-web-solutions.de/ideas-and-considerations/openoffice-base-and-your-inventory-control/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inventory Control &#8211; When to use it</title>
		<link>http://www.neuber-web-solutions.de/ideas-and-considerations/inventory-control-when-to-use-it</link>
		<comments>http://www.neuber-web-solutions.de/ideas-and-considerations/inventory-control-when-to-use-it#comments</comments>
		<pubDate>Sat, 12 Jun 2010 14:45:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ideas and Considerations]]></category>

		<guid isPermaLink="false">http://www.neuber-web-solutions.de/?p=977</guid>
		<description><![CDATA[One of the mostly desired newer features in our E-Commerce themes was the &#8220;Inventory-Control&#8221; or [...]]]></description>
			<content:encoded><![CDATA[<p>One of the mostly desired newer features in our E-Commerce themes was the &#8220;Inventory-Control&#8221; or also called &#8220;Stock-Control&#8221;. Since the feature is available for some time now in the ClothesShop, TheFurnitureStore, JewleryShop etc. should you automatically always use it?<br />
It actually depends on the nature of your products; on their uniqueness. </p>
<p><strong>When to use it</strong><br />
Lets say you sell items of artists. Every item is absolutely <u>unique</u> &#8211; should you use the inventory control? Yes, definitely. Just imagine you have only 1 item of a kind and suddenly 10 customers order it. Then you need to tell 9 people that &#8220;you are very sorry, but that item is sold out&#8221;. This in return will trigger the question, why you offer items online which are actually sold out. <br/><br />
Bottom line: if it is very hard for you to get the offered item delivered again or if the article is absolutely unique, then you should use the &#8220;Inventory control&#8221;.<br />
<br/></p>
<p><strong>When not to use it</strong><br />
On the other hand if you sell items which you as merchant can easily reorder for yourself &#8211; why actually use the &#8220;Inventory control&#8221;? Let&#8217;s not forget that a message like &#8220;SOLD OUT &#8211; we are terribly sorry and repent&#8230;&#8221; is always a small disappointment for your user. It could very well be that he or she will surf to another web shop with similar items. <br/><br />
Bottom line again: if you have no real trouble to re-organize your items, don&#8217;t interrupt the sales flow unnecessarily. In this case its better to inform the user that the <u>delivery time</u> is e.g. &#8220;5-7 days&#8221;. If you really run out of the article you can get the article within lets say 3 days which still gives you enough time to deliver in the other 2-4 days. </p>
<p>Digital goods: if you sell digital goods you will most likely not need the Inventory control either. A digital good is normally a <u>copy</u> of your item in the directory &#8216;masterdata&#8217; &#8211; there is no limit whatsoever for the availability of them.   </p>
<p><br/><br />
<br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuber-web-solutions.de/ideas-and-considerations/inventory-control-when-to-use-it/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The famous FPDF error: &#8220;Not a JPEG file&#8221;</title>
		<link>http://www.neuber-web-solutions.de/programming-infos-tutorials/the-famous-fpdf-error-not-a-jpeg-file</link>
		<comments>http://www.neuber-web-solutions.de/programming-infos-tutorials/the-famous-fpdf-error-not-a-jpeg-file#comments</comments>
		<pubDate>Tue, 01 Jun 2010 19:19:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming infos and tutorials]]></category>

		<guid isPermaLink="false">http://www.neuber-web-solutions.de/?p=922</guid>
		<description><![CDATA[Now and then when you work with FPDF you may encounter this error: &#8220;FPDF error: [...]]]></description>
			<content:encoded><![CDATA[<p>Now and then when you work with FPDF you may encounter this error:<br />
<strong>&#8220;FPDF error: Not a JPEG file&#8221;</strong></p>
<p>The confusing point about this error is, that this is also displayed if your file in question has an .jpg/.jpeg ending. </p>
<p>So in case you changed the ending of an .PNG image file to .JPG ,assuming that this makes the image to a JPG-Image &#8211; let me tell you: FPDF is smarter</p>
<p>Every image file has a characteristic beginning. The 2nd to 4th character of an PNG is&#8230; yes&#8230; PNG.<br />
You see it here &#8211; this is a file with the extension .jpg opened in the Texteditor Notepad++ :<br />
<a class="lightbox"  title ="PNG-starting" href="http://www.neuber-web-solutions.de/wp-content/uploads/2010/06/PNG-starting.gif"><img src="http://www.neuber-web-solutions.de/wp-content/uploads/2010/06/PNG-starting.gif" alt="" title="PNG-starting" width="279" height="68" class="alignnone size-full wp-image-924" /></a></p>
<p>Obviously FPDF checks for this and throws then an error (if the file extension is not corresponding).<br />
Solution: make sure its really, thru &#038; thru a .jpg</p>
<p><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuber-web-solutions.de/programming-infos-tutorials/the-famous-fpdf-error-not-a-jpeg-file/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How does the AIM CURL call to Authorize.net look like?</title>
		<link>http://www.neuber-web-solutions.de/programming-infos-tutorials/how-does-the-aim-curl-call-to-authorize-net-look-like</link>
		<comments>http://www.neuber-web-solutions.de/programming-infos-tutorials/how-does-the-aim-curl-call-to-authorize-net-look-like#comments</comments>
		<pubDate>Sun, 30 May 2010 17:17:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming infos and tutorials]]></category>
		<category><![CDATA[Payment]]></category>

		<guid isPermaLink="false">http://www.neuber-web-solutions.de/?p=901</guid>
		<description><![CDATA[Actually its only some lines of code (which you can also find in the Authorize.net [...]]]></description>
			<content:encoded><![CDATA[<p>Actually its only some lines of code (which you can also find in the Authorize.net AIM sample code): </p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="re0">$request</span> <span class="sy0">=</span> <a href="http://www.php.net/curl_init"><span class="kw3">curl_init</span></a><span class="br0">&#40;</span><span class="re0">$post_url</span><span class="br0">&#41;</span><span class="sy0">;</span> </p>
<p><a href="http://www.php.net/curl_setopt"><span class="kw3">curl_setopt</span></a><span class="br0">&#40;</span><span class="re0">$request</span><span class="sy0">,</span> CURLOPT_HEADER<span class="sy0">,</span> 0<span class="br0">&#41;</span><span class="sy0">;</span><br />
<a href="http://www.php.net/curl_setopt"><span class="kw3">curl_setopt</span></a><span class="br0">&#40;</span><span class="re0">$request</span><span class="sy0">,</span> CURLOPT_RETURNTRANSFER<span class="sy0">,</span> 1<span class="br0">&#41;</span><span class="sy0">;</span><br />
<a href="http://www.php.net/curl_setopt"><span class="kw3">curl_setopt</span></a><span class="br0">&#40;</span><span class="re0">$request</span><span class="sy0">,</span> CURLOPT_POSTFIELDS<span class="sy0">,</span> <span class="re0">$post_string</span><span class="br0">&#41;</span><span class="sy0">;</span> <br />
<span class="re0">$post_response</span> <span class="sy0">=</span> <a href="http://www.php.net/curl_exec"><span class="kw3">curl_exec</span></a><span class="br0">&#40;</span><span class="re0">$request</span><span class="br0">&#41;</span><span class="sy0">;</span> <br />
<a href="http://www.php.net/curl_close"><span class="kw3">curl_close</span></a> <span class="br0">&#40;</span><span class="re0">$request</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// close curl object</span></p>
<p><span class="co1">// Following line takes the response</span><br />
<span class="re0">$response_array</span> <span class="sy0">=</span> <a href="http://www.php.net/explode"><span class="kw3">explode</span></a><span class="br0">&#40;</span><span class="re0">$post_values</span><span class="br0">&#91;</span><span class="st0">&quot;x_delim_char&quot;</span><span class="br0">&#93;</span><span class="sy0">,</span><span class="re0">$post_response</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>Keep in mind: your website can only sent a CURL call if your PHP has the CURL module implemented. </p>
<p><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuber-web-solutions.de/programming-infos-tutorials/how-does-the-aim-curl-call-to-authorize-net-look-like/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Authorize.net &#8211; do I use SIM or AIM?</title>
		<link>http://www.neuber-web-solutions.de/payment/authorize-net-do-i-use-sim-or-aim</link>
		<comments>http://www.neuber-web-solutions.de/payment/authorize-net-do-i-use-sim-or-aim#comments</comments>
		<pubDate>Sun, 30 May 2010 16:56:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Payment]]></category>

		<guid isPermaLink="false">http://www.neuber-web-solutions.de/?p=882</guid>
		<description><![CDATA[A question which sometimes was asked by our customers was: &#8220;Does the payment method Authorize.net [...]]]></description>
			<content:encoded><![CDATA[<p>A question which sometimes was asked by our customers was: &#8220;Does the payment method Authorize.net in your themes use SIM oder AIM? </p>
<p>SIM stands for &#8220;<strong>S</strong>erver <strong>I</strong>ntegration <strong>M</strong>ethod&#8221;<br />
AIM stands for &#8220;<strong>A</strong>dvanced <strong>I</strong>ntegration <strong>M</strong>ethod&#8221;</p>
<p>To answer this in one brief sentence: Currently we are using SIM. </p>
<p><strong>What does the customer experience when he pays via Authorize.net <u>SIM</u>?</strong><br />
At the last step of the checkout process he presses the famous button &#8220;Pay now&#8221;. The customer is sent now <u>away from</u> your shop website to a secured Authorize.net entry form. There the customers fills in all the necessary CC infos and presses again a payment button.<br />
Authorize.net processes the transaction and sends the customer together with a special payment signal back to your website. Based on the &#8220;payment status&#8221; Authorize.net provides, the customers sees a &#8220;Thank message&#8221; or a &#8220;something went wrong message&#8221; (like: not sufficient funds on CC). </p>
<p><strong>What would the customer experience if he would pay via Authorize.net <u>AIM</u>?</strong><br />
At the last step of the checkout process he presses the button &#8220;Pay now&#8221;. Then <u>he is not sent away from your website</u> but rather to a different page of your website. There he fills in his credit card information and there he clicks on a &#8220;Continue&#8221; button. And&#8230; then he sees a &#8220;Success&#8221; or &#8220;No success because&#8230;&#8221; message. </p>
<p>Something very important happened between the last two steps. Your website sent the CC-Data via a hidden <a href="http://www.neuber-web-solutions.de/programming-infos-tutorials/how-does-the-aim-curl-call-to-authorize-net-look-like">CURL call to Authorize.net</a> &#8211; the result of the transaction is sent back again in the background.<br />
Like this the customer has the feeling he never leaves the website. </p>
<p><strong>So AIM would be better?</strong><br />
Seen from the customer experience there is no question about it. AIM is more seamless.<br />
However SIM has one big advantage. What if some customer accuses you that you stole his CC number? Well in this case you can very easily answer with: &#8220;My friend, you filled in your CC info on a page of Authorize.net and not on me website&#8221;. Ok &#8211; this is a bit of far-fetched scenario but theoretically possible. </p>
<p><strong>Future plans</strong><br />
I&#8217;m sure you guessed it already: we are planning to implement also the AIM method&#8230; <img src='http://www.neuber-web-solutions.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  </p>
<p><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuber-web-solutions.de/payment/authorize-net-do-i-use-sim-or-aim/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress security &#8211; the minimum measures</title>
		<link>http://www.neuber-web-solutions.de/security/wordpress-sicherheit-das-minimal-programm</link>
		<comments>http://www.neuber-web-solutions.de/security/wordpress-sicherheit-das-minimal-programm#comments</comments>
		<pubDate>Wed, 17 Mar 2010 19:31:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.neuber-web-solutions.de/?p=721</guid>
		<description><![CDATA[How can you secure your WordPress installation? In the Internet you find quite a lot [...]]]></description>
			<content:encoded><![CDATA[<p>How can you secure your WordPress installation?<br />
In the Internet you find quite a lot about this point &#8211; often exhaustive lists with excellent ideas.<br />
There is only one challenge with long lists, with lets say 30-40 points. Since life is busy and hectic we might not have the time for all of these 30 points &#8220;right now&#8221; and postpone the implementation to &#8220;later&#8221;. This results in an additional security of 0.00% in the mean time &#8211; which is of course not exactly what we want. </p>
<p>Therefore here 3 basic points, which can be implemented within a <u>few minutes</u> and add tremendously more security to your WordPress installation: </p>
<p><strong>1) Protect the directory &#8220;wp-admin&#8221; additionally via &#8220;.htaccess&#8221;</strong></p>
<p>This is will hinder talented hobby hackers to even see your WordPress login page in the first place. The need to figure out two different username/password combinations after each other increases the security level quite a bit.<br />
Your hoster should provide in his admin panel a possibility for you to protect complete directories on your webspace.<br />
<br/></p>
<p><strong>2) Protect your cookies via the &#8220;secret key&#8221;</strong> </p>
<p>In the file &#8220;wp-config.php&#8221; you should find these lines: </p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><a href="http://www.php.net/define"><span class="kw3">define</span></a><span class="br0">&#40;</span><span class="st_h">&#8216;AUTH_KEY&#8217;</span><span class="sy0">,</span> <span class="st_h">&#8216;put your unique phrase here&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<a href="http://www.php.net/define"><span class="kw3">define</span></a><span class="br0">&#40;</span><span class="st_h">&#8216;SECURE_AUTH_KEY&#8217;</span><span class="sy0">,</span> <span class="st_h">&#8216;put your unique phrase here&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<a href="http://www.php.net/define"><span class="kw3">define</span></a><span class="br0">&#40;</span><span class="st_h">&#8216;LOGGED_IN_KEY&#8217;</span><span class="sy0">,</span> <span class="st_h">&#8216;put your unique phrase here&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<a href="http://www.php.net/define"><span class="kw3">define</span></a><span class="br0">&#40;</span><span class="st_h">&#8216;NONCE_KEY&#8217;</span><span class="sy0">,</span> <span class="st_h">&#8216;put your unique phrase here&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>These values are used for the encryption of permanent user cookies. Permanent cookies are also used for login data of WordPress users. Of course every hacker would be very happy if this information would be saved in non-encrypted form in the cookie. Happily this is not the case; WordPress encrypts them for you.<br />
However, the &#8220;unique phrase&#8221; increases the <u>strength</u> of the encryption.<br />
Additionally, a change of this key forces already existing users (with permanent cookies) to login anew.<br />
There exists a handy online generator, which produces these 4 secure keys at once:<br />
 <a href="http://api.wordpress.org/secret-key/1.1/">http://api.wordpress.org/secret-key/1.1/</a> &#8211; reloading this page produces always a new set of keys.<br />
<br/></p>
<p><strong>3) Protect the &#8220;uploads&#8221; folder via .htaccess</strong></p>
<p>As the name indicates the above mentioned folder is the target where files of WordPress users end up. Should all kinds of files end up here? Not really! What the user need for writing articles or comments would be image files in the .jpg, .gif or .png format. More is usually not necessary and should not be allowed.<br />
To accomplish this you could upload into the &#8220;uploads&#8221; directory this brief .htaccess file: </p>
<div class="codesnip-container" >
<div class="apache codesnip" style="font-family:monospace;"><span class="kw1">Order</span> <span class="kw1">Allow</span>,<span class="kw1">Deny</span><br />
<span class="kw1">Deny</span> from <span class="kw2">all</span><br />
&lt;<span class="kw3">Files</span> ~ <span class="st0">&quot;<span class="es0">\.</span>(jpeg|jpg|png|gif)$&quot;</span>&gt;<br />
<span class="kw1">Allow</span> from <span class="kw2">all</span><br />
&lt;/<span class="kw3">Files</span>&gt;</div>
</div>
<p><br/></p>
<p>Of course there are many more things you can do to increase the security of your WordPress installation. But just in case you have only some few more minutes after your WP installation &#8211; these 3 steps are a definitely good time investment.</p>
<p><br/><br />
<br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuber-web-solutions.de/security/wordpress-sicherheit-das-minimal-programm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux or Windows server &#8211; this is here the question&#8230;</title>
		<link>http://www.neuber-web-solutions.de/programming-infos-tutorials/linux-or-windows-server-this-is-here-the-question</link>
		<comments>http://www.neuber-web-solutions.de/programming-infos-tutorials/linux-or-windows-server-this-is-here-the-question#comments</comments>
		<pubDate>Tue, 09 Mar 2010 17:31:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming infos and tutorials]]></category>

		<guid isPermaLink="false">http://www.neuber-web-solutions.de/?p=699</guid>
		<description><![CDATA[Now and then a PHP programmer needs to figure out, if a script runs on [...]]]></description>
			<content:encoded><![CDATA[<p>Now and then a PHP programmer needs to figure out, if a script runs on a Linux- or Windows server. Of course you can always consult <strong>phpinfo()</strong> and check the info in the first line next to &#8216;System&#8217;. But for the further processing in scripts the function <strong>phpinfo()</strong> is not the best candidate. </p>
<p>Happily PHP offers us at least 3 other possibilities to find out:</p>
<p><span style="text-decoration: underline;"><strong>Possibility No.1:</strong></span></p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="kw1">echo</span> <span class="kw4">PHP_OS</span><span class="sy0">;</span></div>
</div>
<p>A windows server will return here usually the value &#8220;WINNT&#8221;.<br />
<br/></p>
<p><span style="text-decoration: underline;"><strong>Possibility No.2:</strong></span></p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="kw1">echo</span> <a href="http://www.php.net/php_uname"><span class="kw3">php_uname</span></a><span class="br0">&#40;</span><span class="st_h">&#8216;s&#8217;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>With a Windows-Server we get a result like &#8220;Windows NT&#8221;. You could use this then in a strpos() query like here:</p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/strpos"><span class="kw3">strpos</span></a><span class="br0">&#40;</span><span class="re0">$os_info</span><span class="sy0">,</span><span class="st_h">&#8216;Windows&#8217;</span><span class="br0">&#41;</span> <span class="sy0">!==</span> <span class="kw4">FALSE</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
    <span class="kw1">echo</span> <span class="st0">&quot;YES, this is a windows box&#8230;&quot;</span><span class="sy0">;</span><br />
 <span class="br0">&#125;</span></div>
</div>
<p><br/></p>
<p><span style="text-decoration: underline;"><strong>Possibility No.3:</strong></span></p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="kw1">echo</span> <span class="kw4">DIRECTORY_SEPARATOR</span><span class="sy0">;</span></div>
</div>
<p>PHP provides for us a constant for the separator used in directories of the server. Windows systems as we know use the separator \ . So you could use this again for a PHP query with the function strpos() :</span></p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/strpos"><span class="kw3">strpos</span></a><span class="br0">&#40;</span><span class="kw4">DIRECTORY_SEPARATOR</span> <span class="sy0">!=</span> <span class="st_h">&#8216;/&#8217;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
    <span class="kw1">echo</span> <span class="st0">&quot;Again! A windows server&quot;</span><span class="sy0">;</span><br />
 <span class="br0">&#125;</span></div>
</div>
<p><br/><br />
&#8212;-<br />
&#8230;.I&#8217;m quite that these possibilities are not the only ones &#8211; further possibilities are very much appreciated <img src='http://www.neuber-web-solutions.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  </p>
<p><br/><br />
<br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuber-web-solutions.de/programming-infos-tutorials/linux-or-windows-server-this-is-here-the-question/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Which online Payment Gateway do you prefer?</title>
		<link>http://www.neuber-web-solutions.de/payment/change-in-business-policy</link>
		<comments>http://www.neuber-web-solutions.de/payment/change-in-business-policy#comments</comments>
		<pubDate>Sun, 02 Aug 2009 08:33:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Payment]]></category>

		<guid isPermaLink="false">http://www.neuber-web-solutions.de/?p=541</guid>
		<description><![CDATA[Statistics prove clearly that you can increase your ecommerce turnover if you provide the payment [...]]]></description>
			<content:encoded><![CDATA[<p>Statistics prove clearly that you can increase your ecommerce turnover if you provide the payment options your customers expect. Many online transactions are left unfinished if the favorite payment option was not present.</p>
<p>A while ago we tried to find out, which online payment gateways are around. There are more than one may expect.  <br />
We have listed our &#8216;findings&#8217; aphabetically for you &#8211; additional information will follow.<br />
There are actually more; in case your favorite Payment Gateway is not listed here &#8211; let us know. Let us also why you think its a good online payment gateway.</p>
<p><!--  Text: [end] --> </p>
<p><!--  CONTENT ELEMENT, uid:1504/text [end] --><!--  CONTENT ELEMENT, uid:1510/text [begin] --><a id="c1510"></a></p>
<p><!--  Text: [begin] --><strong>2CheckOut</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1510/text [end] --><!--  CONTENT ELEMENT, uid:1534/text [begin] --><a id="c1534"></a></p>
<p><!--  Text: [begin] --><strong>AlertPay</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1534/text [end] --><!--  CONTENT ELEMENT, uid:1537/text [begin] --><a id="c1537"></a></p>
<p><!--  Text: [begin] --><strong>Amazon FPS</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1537/text [end] --><!--  CONTENT ELEMENT, uid:1505/text [begin] --><a id="c1505"></a></p>
<p><!--  Text: [begin] --><strong>Authorize.net</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1505/text [end] --><!--  CONTENT ELEMENT, uid:1517/text [begin] --><a id="c1517"></a></p>
<p><!--  Text: [begin] --><strong>Barclays EPDQ</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1517/text [end] --><!--  CONTENT ELEMENT, uid:1546/text [begin] --><a id="c1546"></a></p>
<p><!--  Text: [begin] --><strong>BBS</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1546/text [end] --><!--  CONTENT ELEMENT, uid:1539/text [begin] --><a id="c1539"></a></p>
<p><!--  Text: [begin] --><strong>Beanstream</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1539/text [end] --><!--  CONTENT ELEMENT, uid:1550/text [begin] --><a id="c1550"></a></p>
<p><!--  Text: [begin] --><strong>ChronoPay</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1550/text [end] --><!--  CONTENT ELEMENT, uid:1522/text [begin] --><a id="c1522"></a></p>
<p><!--  Text: [begin] --><strong>ClickandBuy</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1522/text [end] --><!--  CONTENT ELEMENT, uid:1545/text [begin] --><a id="c1545"></a></p>
<p><!--  Text: [begin] --><strong>DIBS Payment</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1545/text [end] --><!--  CONTENT ELEMENT, uid:1526/text [begin] --><a id="c1526"></a></p>
<p><!--  Text: [begin] --><strong>DeltaPay</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1526/text [end] --><!--  CONTENT ELEMENT, uid:1549/text [begin] --><a id="c1549"></a></p>
<p><!--  Text: [begin] --><strong>eWay</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1549/text [end] --><!--  CONTENT ELEMENT, uid:1520/text [begin] --><a id="c1520"></a></p>
<p><!--  Text: [begin] --><strong>ExperCash</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1520/text [end] --><!--  CONTENT ELEMENT, uid:1512/text [begin] --><a id="c1512"></a></p>
<p><!--  Text: [begin] --><strong>FastCharge</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1512/text [end] --><!--  CONTENT ELEMENT, uid:1548/text [begin] --><a id="c1548"></a></p>
<p><!--  Text: [begin] --><strong>FAST TRANSACT</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1548/text [end] --><!--  CONTENT ELEMENT, uid:1544/text [begin] --><a id="c1544"></a></p>
<p><!--  Text: [begin] --><strong>Flo2Cash</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1544/text [end] --><!--  CONTENT ELEMENT, uid:1513/text [begin] --><a id="c1513"></a></p>
<p><!--  Text: [begin] --><strong>GoogleCheckout</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1513/text [end] --><!--  CONTENT ELEMENT, uid:1515/text [begin] --><a id="c1515"></a></p>
<p><!--  Text: [begin] --><strong>HeidelPay</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1515/text [end] --><!--  CONTENT ELEMENT, uid:1509/text [begin] --><a id="c1509"></a></p>
<p><!--  Text: [begin] --><strong>iDeal</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1509/text [end] --><!--  CONTENT ELEMENT, uid:1533/text [begin] --><a id="c1533"></a></p>
<p><!--  Text: [begin] --><strong>iPay88</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1533/text [end] --><!--  CONTENT ELEMENT, uid:1514/text [begin] --><a id="c1514"></a></p>
<p><!--  Text: [begin] --><strong>iPayment</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1514/text [end] --><!--  CONTENT ELEMENT, uid:1543/text [begin] --><a id="c1543"></a></p>
<p><!--  Text: [begin] --><strong>IPPAY</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1543/text [end] --><!--  CONTENT ELEMENT, uid:1511/text [begin] --><a id="c1511"></a></p>
<p><!--  Text: [begin] --><strong>MoneyBookers</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1511/text [end] --><!--  CONTENT ELEMENT, uid:1521/text [begin] --><a id="c1521"></a></p>
<p><!--  Text: [begin] --><strong>mPAY24</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1521/text [end] --><!--  CONTENT ELEMENT, uid:1523/text [begin] --><a id="c1523"></a></p>
<p><!--  Text: [begin] --><strong>myGate</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1523/text [end] --><!--  CONTENT ELEMENT, uid:1541/text [begin] --><a id="c1541"></a></p>
<p><!--  Text: [begin] --><strong>NETBilling</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1541/text [end] --><!--  CONTENT ELEMENT, uid:1525/text [begin] --><a id="c1525"></a></p>
<p><!--  Text: [begin] --><strong>NetCash</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1525/text [end] --><!--  CONTENT ELEMENT, uid:1518/text [begin] --><a id="c1518"></a></p>
<p><!--  Text: [begin] --><strong>NOCHEX</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1518/text [end] --><!--  CONTENT ELEMENT, uid:1530/text [begin] --><a id="c1530"></a></p>
<p><!--  Text: [begin] --><strong>NOVALNET</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1530/text [end] --><!--  CONTENT ELEMENT, uid:1536/text [begin] --><a id="c1536"></a></p>
<p><!--  Text: [begin] --><strong>ogone</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1536/text [end] --><!--  CONTENT ELEMENT, uid:1532/text [begin] --><a id="c1532"></a></p>
<p><!--  Text: [begin] --><strong>paybox</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1532/text [end] --><!--  CONTENT ELEMENT, uid:1527/text [begin] --><a id="c1527"></a></p>
<p><!--  Text: [begin] --><strong>paycenter</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1527/text [end] --><!--  CONTENT ELEMENT, uid:1529/text [begin] --><a id="c1529"></a></p>
<p><!--  Text: [begin] --><strong>PayEase</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1529/text [end] --><!--  CONTENT ELEMENT, uid:1531/text [begin] --><a id="c1531"></a></p>
<p><!--  Text: [begin] --><strong>PAYER</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1531/text [end] --><!--  CONTENT ELEMENT, uid:1540/text [begin] --><a id="c1540"></a></p>
<p><!--  Text: [begin] --><strong>Payment Express</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1540/text [end] --><!--  CONTENT ELEMENT, uid:1538/text [begin] --><a id="c1538"></a></p>
<p><!--  Text: [begin] --><strong>PAYONE</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1538/text [end] --><!--  CONTENT ELEMENT, uid:1506/text [begin] --><a id="c1506"></a></p>
<p><!--  Text: [begin] --><strong>PayPal</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1506/text [end] --><!--  CONTENT ELEMENT, uid:1519/text [begin] --><a id="c1519"></a></p>
<p><!--  Text: [begin] --><strong>PayPoint</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1519/text [end] --><!--  CONTENT ELEMENT, uid:1547/text [begin] --><a id="c1547"></a></p>
<p><!--  Text: [begin] --><strong>PaySimple</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1547/text [end] --><!--  CONTENT ELEMENT, uid:1508/text [begin] --><a id="c1508"></a></p>
<p><!--  Text: [begin] --><strong>protx</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1508/text [end] --><!--  CONTENT ELEMENT, uid:1516/text [begin] --><a id="c1516"></a></p>
<p><!--  Text: [begin] --><strong>Qenta</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1516/text [end] --><!--  CONTENT ELEMENT, uid:1528/text [begin] --><a id="c1528"></a></p>
<p><!--  Text: [begin] --><strong>QUANTUM</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1528/text [end] --><!--  CONTENT ELEMENT, uid:1542/text [begin] --><a id="c1542"></a></p>
<p><!--  Text: [begin] --><strong>sofortüberweisung.de</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1542/text [end] --><!--  CONTENT ELEMENT, uid:1535/text [begin] --><a id="c1535"></a></p>
<p><!--  Text: [begin] --><strong>twyp</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1535/text [end] --><!--  CONTENT ELEMENT, uid:1524/text [begin] --><a id="c1524"></a></p>
<p><!--  Text: [begin] --><strong>UOS</strong></p>
<p><!--  Text: [end] --><!--  CONTENT ELEMENT, uid:1524/text [end] --><!--  CONTENT ELEMENT, uid:1507/text [begin] --><a id="c1507"></a></p>
<p><!--  Text: [begin] --><strong>WorldPay</strong></p>
<p><!--  Text: [end] --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuber-web-solutions.de/payment/change-in-business-policy/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>What Credit Card numbers can/should tell us</title>
		<link>http://www.neuber-web-solutions.de/security/what-credit-card-numbers-canshould-tell-us</link>
		<comments>http://www.neuber-web-solutions.de/security/what-credit-card-numbers-canshould-tell-us#comments</comments>
		<pubDate>Fri, 26 Jun 2009 21:14:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.neuber-web-solutions.de/?p=435</guid>
		<description><![CDATA[How can one make sure that a provided credit card number is valid? There might [...]]]></description>
			<content:encoded><![CDATA[<p>How can one make sure that a provided credit card number is valid?<br />
There might be the situation that a customer wants to provide you the number by telephone.<br />
Although checking CC numbers is a science on it&#8217;s own, there are some basic rules good to keep in mind:</p>
<p><strong><span style="text-decoration: underline;">Starting digit:<br />
</span></strong>Every credit card type has it&#8217;s fixed starting digit &#8211; good to know:</p>
<p>Amex/Diners Club: 3<br />
VisaCard: 4<br />
Mastercard: 5<br />
Discover: 6</p>
<p><span style="text-decoration: underline;"><strong>Length of number:<br />
</strong></span>Also the length of the number is fixed according to card type:</p>
<p>DinersClub: 13<br />
Amex: 15<br />
All others: 16</p>
<p>So, the customer wants to pay with his VISA Card, but he provided only 15 digits?<br />
And even worse, the first digit was a 7?<br />
No, we don&#8217;t think so&#8230;</p>
<p><strong><span style="text-decoration: underline;">Luhn or Mod10 algorithm &#8211; the CC checksum has to be right<br />
</span></strong>This checksum algorithm was <a href="http://en.wikipedia.org/wiki/Luhn_algorithm">invented by Hans Luhn</a>. If the generated checksum can be divided by 10 without rest &#8211; then the number is valid &#8211; so the basic idea.<br />
Here a practical PHP function to validate a credit card numer with it:</p>
<div style="background:white; padding-left:20px;">
<p><span class="kw2"><strong>function</strong></span> VerifyLuhn<span class="br0"><span style="color: #009900;">(</span></span><span class="re0"><span style="color: #000088;">$number</span></span><span class="br0"><span style="color: #009900;">)</span></span> <span class="br0"><span style="color: #009900;">{</span></span><br />
   <span class="re0"><span style="color: #000088;">$split</span></span> <span class="sy0"><span style="color: #339933;">=</span></span> <span class="kw3"><span style="color: #990000;">array_reverse</span></span><span class="br0"><span style="color: #009900;">(</span></span><span class="kw3"><span style="color: #990000;">str_split</span></span><span class="br0"><span style="color: #009900;">(</span></span><span class="re0"><span style="color: #000088;">$number</span></span><span style="color: #009900;"><span class="br0">)</span><span class="br0">)</span></span><span class="sy0"><span style="color: #339933;">;</span></span><br />
     <span class="kw1"><span style="color: #b1b100;">for</span></span> <span class="br0"><span style="color: #009900;">(</span></span><span class="re0"><span style="color: #000088;">$i</span></span><span class="sy0"><span style="color: #339933;">=</span></span><span class="nu0"><span style="color: #cc66cc;">1</span></span><span class="sy0"><span style="color: #339933;">;</span></span><span class="re0"><span style="color: #000088;">$i</span></span><span class="sy0"><span style="color: #339933;">&lt;=</span></span><span class="kw3"><span style="color: #990000;">count</span></span><span class="br0"><span style="color: #009900;">(</span></span><span class="re0"><span style="color: #000088;">$split</span></span><span class="br0"><span style="color: #009900;">)</span></span><span class="sy0"><span style="color: #339933;">;</span></span><span class="re0"><span style="color: #000088;">$i</span></span><span class="sy0"><span style="color: #339933;">+=</span></span>2<span class="br0"><span style="color: #009900;">)</span></span> <span class="br0"><span style="color: #009900;">{</span></span><br />
        <span class="kw1"><span style="color: #b1b100;">if</span></span> <span class="br0"><span style="color: #009900;">(</span></span><span class="kw3"><span style="color: #990000;">isset</span></span><span class="br0"><span style="color: #009900;">(</span></span><span class="re0"><span style="color: #000088;">$split</span></span><span class="br0"><span style="color: #009900;">[</span></span><span class="re0"><span style="color: #000088;">$i</span></span><span style="color: #009900;"><span class="br0">]</span><span class="br0">)</span><span class="br0">)</span></span> <span class="re0"><span style="color: #000088;">$split</span></span><span class="br0"><span style="color: #009900;">[</span></span><span class="re0"><span style="color: #000088;">$i</span></span><span class="br0"><span style="color: #009900;">]</span></span> <span class="sy0"><span style="color: #339933;">=</span></span> <span class="kw3"><span style="color: #990000;">array_sum</span></span><span class="br0"><span style="color: #009900;">(</span></span><span class="kw3"><span style="color: #990000;">str_split</span></span><span class="br0"><span style="color: #009900;">(</span></span><span class="re0"><span style="color: #000088;">$split</span></span><span class="br0"><span style="color: #009900;">[</span></span><span class="re0"><span style="color: #000088;">$i</span></span><span class="br0"><span style="color: #009900;">]</span></span><span class="sy0"><span style="color: #339933;">*</span></span>2<span style="color: #009900;"><span class="br0">)</span><span class="br0">)</span></span><span class="sy0"><span style="color: #339933;">;</span></span><br />
     <span class="br0"><span style="color: #009900;">}</span></span><br />
   <span class="kw1"><span style="color: #b1b100;">return</span></span> <span class="br0"><span style="color: #009900;">(</span></span><span class="kw3"><span style="color: #990000;">array_sum</span></span><span class="br0"><span style="color: #009900;">(</span></span><span class="re0"><span style="color: #000088;">$split</span></span><span class="br0"><span style="color: #009900;">)</span></span> <span class="sy0"><span style="color: #339933;">%</span></span> 10<span class="br0"><span style="color: #009900;">)</span></span> ? <span class="kw4"><strong><span style="color: #009900;">FALSE</span></strong></span> <span class="sy0"><span style="color: #339933;">:</span></span> <span class="kw4"><strong><span style="color: #009900;">TRUE</span></strong></span><span class="sy0"><span style="color: #339933;">;</span></span><br />
<span class="br0"><span style="color: #009900;">}</span></span></div>
<p><strong>Warning:</strong> Using &#8220;Online Credit card number verifiers&#8221; is potentially dangerous! Somebody might &#8220;harvest&#8221; valid credit numbers and misuse them.<br />
<br/><br />
&#8212;<br />
Comments, improvments are welcome!</p>
<p><br/><br />
<br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuber-web-solutions.de/security/what-credit-card-numbers-canshould-tell-us/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>International Postal Address Formats &#8211; Where to find them?</title>
		<link>http://www.neuber-web-solutions.de/programming-infos-tutorials/international-postal-address-formats-where-to-find-them</link>
		<comments>http://www.neuber-web-solutions.de/programming-infos-tutorials/international-postal-address-formats-where-to-find-them#comments</comments>
		<pubDate>Thu, 25 Jun 2009 10:49:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming infos and tutorials]]></category>

		<guid isPermaLink="false">http://www.neuber-web-solutions.de/?p=427</guid>
		<description><![CDATA[A while ago we made a small but important change to our WordPress ecommerce themes. [...]]]></description>
			<content:encoded><![CDATA[<p>A while ago we made a small but important change to our WordPress ecommerce themes. Instead of nation-wide sales also international orders were now possible. This led to another challenge: postal address have different formats in different countries.<br />
You may wonder: &#8220;&#8230;and, whats the big deal with this?&#8221;<br />
Well, lets have a look at the classic example of two Joe Doe&#8217;s, one living in the US and the other one in Germany. The different addresses would be:</p>
<p><span style="text-decoration: underline;">USA:</span></p>
<p>JOE DOE<br />
1500 E MAIN AVE STE 201<br />
SPRINGFIELD VA 22162–1010<br />
UNITED STATES OF AMERICA</p>
<p><span style="text-decoration: underline;">Germany:</span></p>
<p>Joe Doe<br />
Teststr.  1a<br />
11111 TESTSTADT<br />
GERMANY</p>
<p>If I typed the data of the second Joe Doe into the address form of my E-Commerce application fitting for US-addresses, then I would get an address like this:</p>
<p>JOE DOE<br />
1A TESTSTRASSE<br />
TESTSTADT BAYERN 11111<br />
GERMANY</p>
<p>I can assure you that this will confuse German shop owners + the German national postal delivery services (Deutsche Bundespost).</p>
<p><strong></strong></p>
<p><strong>Ok &#8211; so where can I get the information from?<br />
</strong>Happily, there exists an international organization which takes care of these issues &#8211; the UPU, Universal Postal Union.<br />
They give you here the officially correct address format for every country: <a href="http://www.upu.int/en/activities/addressing/postal-addressing-systems-in-member-countries.html">http://www.upu.int/en/activities/addressing/postal-addressing-systems-in-member-countries.html</a> &#8211; (interestingly, it doesn&#8217;t like Opera as browser)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuber-web-solutions.de/programming-infos-tutorials/international-postal-address-formats-where-to-find-them/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
