<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6585248230975977138</id><updated>2011-11-27T16:09:06.994-08:00</updated><category term='Google Checkout Errors'/><category term='Web Master World'/><category term='Failed to Get Basic Authentication Headers'/><category term='SEO Help'/><category term='Google Checkout'/><title type='text'>Blog for Php Developers</title><subtitle type='html'>I am Prashant Kumar, Extensive experience in - Product Management, Project Management, People Management, Php, Java Script, MySql, Search Engine Optimization, Pay Per Click, Omniture.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://prashcom.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://prashcom.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Prashant Kumar</name><uri>http://www.blogger.com/profile/11617246666689581856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_AFwTPpbaxUQ/TF2fDIyq06I/AAAAAAAAAIs/M_RWaeYnq0c/S220/prashant.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>18</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6585248230975977138.post-5712353372596134935</id><published>2010-12-27T22:27:00.000-08:00</published><updated>2011-02-19T22:52:03.683-08:00</updated><title type='text'>Sugar CRM - Problem with IMAP</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Hi All&lt;br /&gt;&lt;br /&gt;Another small but very important update for Open source like SugarCRM and other application where we have IMAP mail function, I saw 100 of posts for SugarCRM IMAP problem with strange "undefined" value. This problem is very small and the root cause is outbound port is not open from your hosting company.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So the solution is just call your hosting company and approach to allow outbound port, like for GMAIL - 993.&lt;br /&gt;&lt;br /&gt;Once this is done either from "putty" or from "Live Technical Help Support" you test the same in your SugarCRM backend, and I am sure there will be smile in your face :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I am sure this post will help all my Sugar Community.&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Prashant Kumar&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6585248230975977138-5712353372596134935?l=prashcom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prashcom.blogspot.com/feeds/5712353372596134935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6585248230975977138&amp;postID=5712353372596134935&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/5712353372596134935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/5712353372596134935'/><link rel='alternate' type='text/html' href='http://prashcom.blogspot.com/2010/12/sugar-crm-problem-with-imap.html' title='Sugar CRM - Problem with IMAP'/><author><name>Prashant Kumar</name><uri>http://www.blogger.com/profile/11617246666689581856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_AFwTPpbaxUQ/TF2fDIyq06I/AAAAAAAAAIs/M_RWaeYnq0c/S220/prashant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6585248230975977138.post-4701832269870114354</id><published>2010-09-09T11:04:00.000-07:00</published><updated>2011-02-19T22:52:15.462-08:00</updated><title type='text'>HOW GOOGLE / YAHOO / MSN E-MAIL SERVICE CAN IMPROVE?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;&lt;i&gt;Hi,&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Imagine, e-mail accounts giving you the ultimate data  portability. You may travel without your notebook even on most business trips. It  gives you a secured access to your data from anywhere and using any e-mail  accessing device!&lt;br /&gt;&lt;br /&gt;Struggling each time to find your resume in your computer  hard drive for making an online job application? Do you go mad searching for  the files in your notebook when asked for an urgent presentation by your boss? &lt;br /&gt;&lt;br /&gt;We all know that modern e-mailing technology can actually be  much more than a mere electronic replacement of the snail mail. But, if you are  looking for the next generation e-mailing experience, &amp;nbsp;click on to the article to find out what you should  be expecting from your e-mail provider in the near future…&lt;br /&gt;&lt;br /&gt;E-mail providers like Google, Yahoo and MSN already provide  huge mail &amp;amp; attachment storing facilities which are almost unlimited. But,  till now we are highly dependent on our personal computers or various storage  devices to access files for mailing as attachments.&amp;nbsp; Even files which are frequently accessed for  mailing as attachments need to be retrieved from your computer or old mail  attachments. Moreover, there are loads of restrictions on file size and type for  using them as mail attachments. &lt;br /&gt;&lt;br /&gt;A mind blowing solution to all these problems - an all new &lt;b&gt;&lt;i&gt;attachment folder feature&lt;/i&gt;&lt;/b&gt; within your e-mail account! &lt;i&gt;The folder  would contain files which are frequently used as attachments or uploaded by  users for future use. &amp;nbsp;A simple drop down  menu allows one to select attachments from the folder or sub-folders, thereby,  saving on the uploading time irrespective of your internet connection speed.&lt;/i&gt; &lt;i&gt;And last but not the least, the feature lets one instantly  use various types of file , categorize them into sub-folders and deal with huge  file sizes just at the cost of a few clicks.&lt;/i&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;So,  your e-mail account with Google / Yahoo / MSN can soon become the next  generation storage technology!!&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Please favor me so we will have the same in next few weeks!! &lt;br /&gt;&lt;br /&gt;Thanks&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Prashant Kumar&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6585248230975977138-4701832269870114354?l=prashcom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prashcom.blogspot.com/feeds/4701832269870114354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6585248230975977138&amp;postID=4701832269870114354&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/4701832269870114354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/4701832269870114354'/><link rel='alternate' type='text/html' href='http://prashcom.blogspot.com/2010/09/how-google-yahoo-msn-e-mail-service-can.html' title='HOW GOOGLE / YAHOO / MSN E-MAIL SERVICE CAN IMPROVE?'/><author><name>Prashant Kumar</name><uri>http://www.blogger.com/profile/11617246666689581856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_AFwTPpbaxUQ/TF2fDIyq06I/AAAAAAAAAIs/M_RWaeYnq0c/S220/prashant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6585248230975977138.post-1296149889476654599</id><published>2010-09-04T03:45:00.000-07:00</published><updated>2011-02-19T22:37:57.609-08:00</updated><title type='text'>How to drive traffic in my brand new website?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div align="center"&gt;&lt;b&gt;How  To Drive Traffic To The Website&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;Most products nowadays are featured  online so to make your business  grow on the web the very first thing that is  required is to launch a  great website. Creating a good design is very important  to attract  potential customers online. To begin with the website should be  simple  and consumer friendly. You don’t want your visitors to find it hard to   shop a product on your web page, do you? So the best way is to resort to  a proper  and effective web page presentation. There are numerous  website developers on  the web who are really inexpensive and can help  you through the process.&lt;br /&gt;&lt;br /&gt;Once your website is on the internet  its time that people get to know  about it. Now how will someone know about your  website unless you  promote it? There are numerous ways to make your web  presence felt. Say  for example, once your website is done and is tested alright;  make a  press release but submitting your URL there. Next you can announce PPC   Campaigns on your site, the best way to allow sustainable traffic to  flow into  your website. This may sound pretty simple but is not. The  arena of web  marketing is large and with so much competition around it  becomes really  difficult to cast an impression on the web in your  niche. Everyday hundreds of  new websites are being launched online with  each one of them looking for ways  to promote their business  effectively.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;In addition to the tips mentioned  above, you can also create and  launch a free or low cost blog. This will ensure  that you have a fixed  amount of traffic flowing in which can be redirected to  your website.  Submitting website to different directories in the internet can  also  help you to get the site marketed. You can automatically reach to those   looking to market their products in the same niche as yours. So you can  create  a mutual bonding to ensure that the page rank of your website  also increases  when the popularity of the other site elevates. The more  you can optimize your  promotion techniques the more your presence can  be felt is various search  engines.&lt;br /&gt;&lt;br /&gt;If the estimate per day for your PPC is  like 200 USD in search  engines like Google, Bing and Msn, then with such a  budget you can  easily aim at increasing traffic in an area, zone or even a  region and  very rapidly drive in at least 10% to 20% of customers to your  website.&lt;br /&gt;&lt;br /&gt;Usage of eBay or Google for product  feed can be great way to present  your products and bid them online. Even  Buy.com is a great place to  make money out of your products.&lt;br /&gt;&lt;br /&gt;Even implementing SEO techniques can  be of immense help so that they  keep reaching millions of surfers online and  hence get optimum  presence. You can trust these methods to easily climb up the  ladder of  many search engines. This way all your business keywords can get  enlisted  on the web and get to feature on the top of the charts. &lt;br /&gt;&lt;br /&gt;Getting your web pages address listed  in affiliated networks can  prove to be of great help, like &lt;a href="http://www.cj.com/"&gt;www.cj.com&lt;/a&gt;  / &lt;a href="http://www.affiliatewindow.com/"&gt;www.affiliatewindow.com&lt;/a&gt;  etc. Also  promoting your business or products through viral videos, in  various websites  such as YouTube is getting much popularity nowadays. &lt;br /&gt;&lt;br /&gt;Social Media Marketing is a nice and  friendly way to promote your  business. You can market through Facebook Profile,  Facebook  Application, Facebook Events, MySpace Profile etc.&lt;br /&gt;&lt;br /&gt;Through effecting marketing techniques  you can easily enhance the  popularity of your website. If you are looking to  earn money or to  achieve popularity, a website cannot drive in visitors unless  you use  more and more techniques to promote your business. After all, every  one’s  looking to create their impression and make the most out of  online businesses.&lt;br /&gt;&lt;br /&gt;In addition to the tips mentioned  above, all SEO EXPERTS  suggest  Organic SEO for long term online business gain.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What is Organic SEO?&lt;br /&gt;&lt;/b&gt; &lt;br /&gt;Using organic SEO for your website’s  promotion is the best way to  drive traffic to your site. It is a combination of  complex methods and  strategies. It uses the technique of process of optimizing  search  engines to attain higher search rankings and also depends on off page   methods to ensure quality and relevance of incoming links to your site.&lt;br /&gt;&lt;br /&gt;With so much competition in the  advertising market now only large  companies can afford to bid at a higher cost.  With techniques such as  PPC only a little amount of visitor is acquired while  most of the cash  goes out in advertising. Organic SEO is a great way to allow  visitor  into your website without the necessity of PPC Campaigns or any other   off page technique.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What is On / Off page SEO?&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;The time required for an on/off page  SEO is almost 3-4 months. This  will include on page optimization, internal  links, alt tags, keyword  density, prominence, and frequency, content, and site  navigation  improvisation to name a few of the long checklist.&lt;br /&gt;&lt;br /&gt;Off the page factors include press  release distribution, link building  techniques, and other paid inbound link  programs. Using black hat  techniques or link farming can ban your site all  together so it is not  recommended Organic or Natural Search Engines  Strategies should be the only  technique through which SEO should take place for  a website.&lt;br /&gt;&lt;br /&gt;Marketing costs can be easily reduced  using ad campaigns search  engines like Google etc. hundreds of Pay Per Click  Search Engines offer  you innumerable amount of traffic which you can buy. You  can choose  from a list of traffic providers like Google AdWords, Yahoo! Search   Marketing etc.&lt;br /&gt;&lt;br /&gt;Organic SEO helps your website to appear  on the search result pages  for a long period of time since search engines are  always on a look out  for relevancy. This is something that just cannot be achieved  by  paying alone. The content featured on your site should be informative  and  relevant to your niche. It reflects on the point that you haven’t  just set up a  business to make money but also to deliver information to  the masses. &lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;&lt;br /&gt;Prashant Kumar&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6585248230975977138-1296149889476654599?l=prashcom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prashcom.blogspot.com/feeds/1296149889476654599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6585248230975977138&amp;postID=1296149889476654599&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/1296149889476654599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/1296149889476654599'/><link rel='alternate' type='text/html' href='http://prashcom.blogspot.com/2010/09/how-to-drive-traffic-in-my-brand-new.html' title='How to drive traffic in my brand new website?'/><author><name>Prashant Kumar</name><uri>http://www.blogger.com/profile/11617246666689581856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_AFwTPpbaxUQ/TF2fDIyq06I/AAAAAAAAAIs/M_RWaeYnq0c/S220/prashant.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6585248230975977138.post-3755114351072681084</id><published>2010-08-26T07:11:00.000-07:00</published><updated>2011-02-19T22:39:54.132-08:00</updated><title type='text'>DZOIC Handshakes Customization tutorial.</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="highlight"&gt;What is DZOIC Handshake? &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Social networking software at its best!  If you dream to start your  own profitable social networking website like myspace, facebook,   friendster, hoverspot, and others, look no further.  DZOIC Handshakes is  your complete solution!&lt;br /&gt;&lt;br /&gt;&lt;span class="highlight"&gt;What is DZOIC ClipHouse?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Start your own YouTube clone with DZOIC ClipHouse!  Packed full of  the best video site features, ClipHouse is your complete solution for  creating your own profitable video site, or integrating into your  existing website.&amp;nbsp;            &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Though this is really a good open source but customizing this software is a real challenge and this required lots of experience. We have worked for our several clients and our pool of Developers are ready to make any kind of custom design using &lt;span class="highlight"&gt;DZOIC software.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="highlight"&gt;We are writing this BLOG because we want others to know how DZOIC work so here I am listing &lt;/span&gt;&lt;span class="highlight"&gt;DZOIC file structure because this is what really first needs to be very clear :-&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;b&gt;New Page Creation&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Design à Page Composer à (Select Theme for editing and select page)/(Click  Create New Page for new page creation) à Click header and enter “header.tpl” in right text box  (Click apply changes everytime) à Click footer and enter “footer.tpl” in right text box  (Click apply changes everytime) à Add Item à Column (width 100%) à Add Item à Cell à Add Item à Block à Add Item à Template à Enter “pages/(your created tpl file)” (Click apply changes everytime) à When you are done, click save page.&lt;/li&gt;&lt;li&gt;Customize à Menus à Go to “Menus” à Edit “Mainbar” à Move newly created page to Menu Pages list à Click Update. Do same with “Top” menu.&lt;/li&gt;&lt;li&gt;Link to menu à go to respective menu or submenu like submenu11,  submenu12. à Edit the menu add new item and give index.php?page=”your page name”.&lt;/li&gt;&lt;/ul&gt;&lt;div align="center"&gt;&lt;b&gt;New Form Creation&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Go to themes/network_dzoic/forms folder.&lt;/li&gt;&lt;li&gt;Open any file and copy code from here. You can refer  multiple files if needed.&lt;/li&gt;&lt;li&gt;Copy it and modify and name it as per your situation (your  name “.inc.php”).&lt;/li&gt;&lt;li&gt;Open the tpl file from pages folder and paste the  given code to include the form required.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;{include file="boxes/simple.tpl"}&lt;/li&gt;&lt;li&gt;{include file="forms/simple.tpl" form="(your  form name without ‘.inc.php’)"}&lt;/li&gt;&lt;li&gt;{include file="boxes/simple_close.tpl"}&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Remember to give a valid file name for handler in form  hidden field value. This file must exist in modules folder in the root. &lt;/li&gt;&lt;li&gt;Go to modules folder and open the handler file and  write function as need to handle the form inputs.&lt;/li&gt;&lt;/ul&gt;&lt;div align="center"&gt;&lt;b&gt;Folder &amp;amp; File Structure&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Community folder is the root of the site. &lt;/li&gt;&lt;li&gt;Administrator: This folder is for handling entire  admin section.&lt;/li&gt;&lt;li&gt;Ads: The banners uploaded from Get Paid section of  admin are saved in this folder. Rarely used by programmer.&lt;/li&gt;&lt;li&gt;Blogs: All the member blogs are saved here in form of  individual folders named on the basis of blog id and member id. Rarely used by  programmer.&lt;/li&gt;&lt;li&gt;Classes: The classes and their methods which are to be  reused for various pages are here. These classes include mail class, database  class and member class.&lt;/li&gt;&lt;li&gt;Classifieds: All the member classifieds are saved here  in form of individual folders named on the basis of classified id and member  id. Rarely used by programmer.&lt;/li&gt;&lt;li&gt;Clubs: All the member clubs are saved here in form of  individual folders named on the basis of club id and member id. Rarely used by  programmer.&lt;/li&gt;&lt;li&gt;Crons: Never Used.&lt;/li&gt;&lt;li&gt;Ecards: Similar to Blogs and Clubs.&lt;/li&gt;&lt;li&gt;Events: Similar  to Blogs and Clubs.&lt;/li&gt;&lt;li&gt;Feeds: Contains  xml feeds like news.&lt;/li&gt;&lt;li&gt;Functions:  Contains core functions used to handle internal functionality of the site. The  functions common and can be used for any section of the site. For example,  building page, handling string, authentication handling.&lt;/li&gt;&lt;li&gt;Import: Never  used&lt;/li&gt;&lt;li&gt;Includes:  Contains configuration files and other similar files like version file&lt;/li&gt;&lt;li&gt;Jscript: Contains  javascript files required for different pages.&lt;/li&gt;&lt;li&gt;License: License  files.&lt;/li&gt;&lt;li&gt;Logs: Log files&lt;/li&gt;&lt;li&gt;Media: Audio  files saved here&lt;/li&gt;&lt;li&gt;Moderator:  similar to administrator section only difference is the limitation in access.&lt;/li&gt;&lt;li&gt;Modules: Very  important folder. All the functions used for individual pages as per  requirement is kept in different files which are named according to the page  name files are associated with.&lt;/li&gt;&lt;li&gt;Photos: Member  photos saved here&lt;/li&gt;&lt;li&gt;Plugins: Never  used.&lt;/li&gt;&lt;li&gt;Profiles: Similar  to Blogs and Clubs. Member profiles saved here.&lt;/li&gt;&lt;li&gt;Psystems: Payment  systems integrated here like paypal, optimal.&lt;/li&gt;&lt;li&gt;Public: Settings  for blogs, clubs etc.&lt;/li&gt;&lt;li&gt;Resources:  Documents kept here like .doc, .pdf etc.&lt;/li&gt;&lt;li&gt;Savant2: Never  used.&lt;/li&gt;&lt;li&gt;Smarty: Smarty  installation files.&lt;/li&gt;&lt;li&gt;Swf: SWF files  related to chat system on site.&lt;/li&gt;&lt;li&gt;Temp: Never Used&lt;/li&gt;&lt;li&gt;Templates:  Templates for blogs, clubs, profiles etc.&lt;/li&gt;&lt;li&gt;Themes: Very  important folder. Current theme folder is network_dzoic.&lt;/li&gt;&lt;li&gt;Videos: Videos  uploaded here.&lt;/li&gt;&lt;/ul&gt;&lt;div align="center"&gt;&lt;b&gt;Important Folders &amp;amp; Files&lt;/b&gt;&lt;/div&gt;&lt;div align="center"&gt;Classes&lt;br /&gt;&lt;br /&gt;This folder contains all the major class files.&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Mail.class.php: If you want to find out how mails are  being sent. Open this file and if required make changes but carefully.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;DB.class.php: All the functions for handling DB like  execution of query are here.&lt;/li&gt;&lt;/ul&gt;&lt;div align="center"&gt;&lt;b&gt;Functions&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;This folder contains all the major common functions  required to run the handshakes script.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;auth_functions.php: This file deals with  authentication for a particular page or section whether it should be allowed  for visitor without logging in or not.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;build_functions.php: Very important file. This file  deals with functions like building page, building profile of a member ready to  view etc.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;mbstring_functions.php: This file deals with string  handling. An example is to shorten a long string, or wordwrap.&lt;/li&gt;&lt;/ul&gt;&lt;div align="center"&gt;Includes/config&lt;br /&gt;&lt;br /&gt;This folder contains configuration file for entire  site.&lt;/div&gt;&lt;ul&gt;&lt;li&gt;config.inc.php: This is of course the most important  of all. Configuration like root path and db connection credentials are given  here.&lt;/li&gt;&lt;/ul&gt;&lt;div align="center"&gt;&lt;b&gt;Modules&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;This folder contains module functions for separate  pages/sections. Every php file in this folder is working for a particular  section/page.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Explaining all the files is not possible and is a  waste of time. I have explained a couple of files which are mostly used. Others  are following the same concept.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;account.php: This file is used for updating account  settings while and after registration.&lt;/li&gt;&lt;li&gt;recent.php: This file has got functions for showing  recent events, blogs etc. on homepage.&lt;/li&gt;&lt;li&gt;join.php: This file contains functions used in the  process of registration and its various steps.&lt;/li&gt;&lt;li&gt;videos.php: This file is related to video module and  is handling the view and uploading of videos.&lt;/li&gt;&lt;/ul&gt;&lt;div align="center"&gt;&lt;b&gt;Psystems&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;This folder contains the payment system files,  previously paypal and now also optimal.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Paypal/config.inc.php: This file contains the email  address of the site administrator which is registered with paypal account.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Optimal: This folder contains files related to optimal  payment system.&lt;/li&gt;&lt;/ul&gt;&lt;div align="center"&gt;&lt;b&gt;Templates&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;This folder contains templates for blogs, events,  profiles, etc. Please note that this is not by any way related to main site  template. So if you need to change something in the individual template, then  only you need to come here and go to respective tpl file.&lt;/li&gt;&lt;/ul&gt;&lt;div align="center"&gt;&lt;b&gt;Themes&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;This folder, as mentioned earlier, contains the themes  available for main site. Currently there are 4 themes.&lt;/li&gt;&lt;li&gt;Our current theme is “network_dzoic”. We need to work &lt;b&gt;only &lt;/b&gt;in this folder named “network_dzoic”. &lt;/li&gt;&lt;li&gt;We now enter this folder (network_dzoic) and see the  structure.&lt;/li&gt;&lt;li&gt;Config: This folder contains settings.inc.php file for  general settings which can be managed from admin section, so not to touch this  file.&lt;/li&gt;&lt;li&gt;Forms: Whenever a form is created a *.inc.php file is  to be created in this folder which is discussed earlier in this doc.&lt;/li&gt;&lt;li&gt;Gfx: Very important folder. The main css file  (style.css) is stored here. Also all the front end images are also in this  folder. This folder can be directly used in a tpl file by using a smarty  variable {$root}. &lt;/li&gt;&lt;li&gt;Layout: Whenever a page is created, a *. inc.php file is created here automatically. No manual  work here. Only make sure that this folder should have write permission.&lt;/li&gt;&lt;li&gt;Menus: As name suggests, menus created from backend  are stored in files here. Rarely used.&lt;/li&gt;&lt;li&gt;Modules: Main  settings are here for blogs, profiles etc. Important when making a new clone  site because then you need to change the paths here.&lt;/li&gt;&lt;li&gt;Options: Whenever  you add a “select” box or combo box in a page, you need to add options from  here special when creating forms.&lt;/li&gt;&lt;li&gt;Profiles: This  folder contains the basic settings for display of 3 kinds of profile namely, business,  social and personal.&lt;/li&gt;&lt;li&gt;System: This is  another important folder and contains success messages and error messages with  respective ids. Can also be changed from admin section but if you need to add a  new message then enter this folder. Important files are messages.inc.php, completes.inc.php  and errors.inc.php.&lt;/li&gt;&lt;li&gt;Templates: This  folder contains all the tpl files for front end. Only one folder is to be  worked upon. The folder is “source”. Let us enter source.&lt;/li&gt;&lt;li&gt;..Source: Two  files common and only these two files are to be used, header.tpl and footer.tpl.  Use of these two files is when a new page is created. Procedure mentioned  earlier.&lt;/li&gt;&lt;li&gt;….pages: I used  only this folder in source. The reason being, all the tpl files for all the  pages in front end are stored here. To be specific, whenever a page is edited,  make changes in the relevant tpl file in pages folder or if a new page is  created, one must create a new tpl file here.&lt;/li&gt;&lt;/ul&gt;&lt;div align="center"&gt;&lt;b&gt;&lt;u&gt;Newsletter&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;For creating and  sending newsletters there is a separate folder in root. This folder is “db”. It  contains files required for sending newsletter and creating or editing  newsletters. &lt;/li&gt;&lt;li&gt;The files in this  folder are simple php files and can be easily edited as and when required.&lt;/li&gt;&lt;li&gt;Example link for  this section is: &lt;a href="http://www.network2012.org.uk/db/"&gt;http://www.network_dzoic.com/db/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="highlight"&gt;Thanks,&lt;/span&gt;&lt;br /&gt;&lt;span class="highlight"&gt;Prashant Kumar&lt;/span&gt;&lt;br /&gt;&lt;span class="highlight"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6585248230975977138-3755114351072681084?l=prashcom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prashcom.blogspot.com/feeds/3755114351072681084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6585248230975977138&amp;postID=3755114351072681084&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/3755114351072681084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/3755114351072681084'/><link rel='alternate' type='text/html' href='http://prashcom.blogspot.com/2010/08/dzoic-handshakes-customization-tutorial.html' title='DZOIC Handshakes Customization tutorial.'/><author><name>Prashant Kumar</name><uri>http://www.blogger.com/profile/11617246666689581856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_AFwTPpbaxUQ/TF2fDIyq06I/AAAAAAAAAIs/M_RWaeYnq0c/S220/prashant.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6585248230975977138.post-3671383488123588597</id><published>2010-08-22T02:07:00.000-07:00</published><updated>2011-02-19T22:41:59.105-08:00</updated><title type='text'>E-COMMERCE QUESTIONNAIRE</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Answer in detail as many of the questions as are applicable. &lt;br /&gt;&lt;br /&gt;1. How many products do you have (how many SKU or product variations)? How many &lt;br /&gt;categories/subcategories? Will the categories change or grow in number? How is categorization applied—by an existing database structure, or will it be done only at the site? &lt;br /&gt;&lt;br /&gt;2. What type of products? In what quantities are they usually sold? &lt;br /&gt;&lt;br /&gt;3. Who will do fulfillment? (shipping, returns, etc?) How will your information get to fulfillment channels (via file upload, fax, email, full system integration?) Describe your normal offline &lt;br /&gt;process, and indicate how much integration will be necessary. &lt;br /&gt;&lt;br /&gt;4. What type of reporting is required? (total sales, status of order, etc.) Where this information be displayed/stored? &lt;br /&gt;&lt;br /&gt;5. What types of payment (PO, credit card, online or offline payment)? Which cards? (Visa/MC? American Express?) &lt;br /&gt;&lt;br /&gt;6. Do you have an existing Internet Merchant Account for processing credit cards directly into your Bank account, and can it be used for Internet usage? (Some banks will not allow this, or will &lt;br /&gt;charge higher fees because of the high return/cancellation percentage.) &lt;br /&gt;&lt;br /&gt;7. How many individual transactions do you “realistically” expect per day in the first year? Second year? Fifth year? What is average sale total normally? &lt;br /&gt;&lt;br /&gt;8. Who can order on your site? Anyone? Do they fill out a profile that is saved in the database for future access to them? What type of password authentication and security do you need? Standard SSL + Web password? What other information do you want to store in user profiles? &lt;br /&gt;&lt;br /&gt;9. Will you offer multiple levels of pricing? (wholesale, retail, bulk, international?) How many levels? &lt;br /&gt;What about “special” customers who have a negotiated pricing? How will the site handle them? &lt;br /&gt;&lt;br /&gt;10. Taxes - How many states do you operate in, and does your sales tax vary according to city or state pricing? What internal tax system or accounting software do you use for calculating and &lt;br /&gt;reporting? Do we need to integrate? How often will you need to pull reports? &lt;br /&gt;&lt;br /&gt;11. Do you need the sales information to be automatically dumped into an existing &lt;br /&gt;database/mainframe? What type of database/mainframe is it? Give details of hardware and software, including any accounting packages. &lt;br /&gt;&lt;br /&gt;12. Do you need inventory levels to be returned into the Web database periodically from your internal &lt;br /&gt;system, and what type of database/mainframe is it? How frequent is the inventory exported to &lt;br /&gt;site? &lt;br /&gt;&lt;br /&gt;13. Do you intend to host this yourself? Or, do you want to set it up on its own server and co-locate it at an ISP so that you are not “sharing” with any other sites? (Some ISPs offer software sharing so that you can take advantage of someone else’s software license and server configuration.) &lt;br /&gt;&lt;br /&gt;14. Is this a mission-critical site? That is, is it worth paying extra for redundancy on different servers &lt;br /&gt;for backup, a development server for making changes so that you don’t endanger the live site, &lt;br /&gt;frequent server monitoring and daily backup, etc. so that you are not down for one single minute &lt;br /&gt;of any day? &lt;br /&gt;&lt;br /&gt;15. If you sell software, do you intend to offer immediate download or email a location after payment is cleared? Manual or automatic email? Will there be demos for free? How large is the file size on &lt;br /&gt;your software? What reporting system will you require (total downloads, successful/partial &lt;br /&gt;downloads)? &lt;br /&gt;&lt;br /&gt;16. Who will maintain the product database and the site content? What level of expertise do these administrators have? Do you need a Web-based administration for catalog? Page content? How many administrators, and do they have to have separate passwords and different levels of access? &lt;br /&gt;&lt;br /&gt;17. Will new product data be imported from internal server or mainframe? How often? Will internal data need to be supplemented by additional data per item (i.e. thumbnail photos, long descriptions, cross selling information, etc.) &lt;br /&gt;&lt;br /&gt;18. Will you want cross-selling capability to associate products with each other? How will these relationships be defined, on your internal server or at the Web server? &lt;br /&gt;&lt;br /&gt;19. What other areas of content on the site will need to be developed? Please quantify in number of ‘pages’ (interfaces), and specify which of them need to be content -managed by non-technical &lt;br /&gt;personnel. We can build custom forms for updating select content, or put in place a full Content Management System if the requirements are larger or more complex. &lt;br /&gt;&lt;br /&gt;20. How will you market the site? Will you be providing XML feeds of your database to any search engines via a “paid inclusion” program? &lt;br /&gt;&lt;br /&gt;Thanks&lt;br /&gt;Prashant Kumar&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6585248230975977138-3671383488123588597?l=prashcom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prashcom.blogspot.com/feeds/3671383488123588597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6585248230975977138&amp;postID=3671383488123588597&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/3671383488123588597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/3671383488123588597'/><link rel='alternate' type='text/html' href='http://prashcom.blogspot.com/2010/08/e-commerce-questionnaire.html' title='E-COMMERCE QUESTIONNAIRE'/><author><name>Prashant Kumar</name><uri>http://www.blogger.com/profile/11617246666689581856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_AFwTPpbaxUQ/TF2fDIyq06I/AAAAAAAAAIs/M_RWaeYnq0c/S220/prashant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6585248230975977138.post-433070585040641115</id><published>2010-08-14T13:34:00.000-07:00</published><updated>2011-02-19T22:56:30.643-08:00</updated><title type='text'>All about .htaccess - How to use.</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Hi,&lt;br /&gt;&lt;br /&gt;The .htaccess file will allow us to include the following features in our server:-&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Error Documents &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;ErrorDocument [number] [path to document location]&lt;br /&gt;&lt;br /&gt;ErrorDocument 404 /errors/404.php&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Password protection &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;.htaccess - &lt;br /&gt;&lt;br /&gt;AuthUserFile /var/html/outside_www_path/.htpasswd&lt;br /&gt;AuthType Basic&lt;br /&gt;AuthName " Login"&lt;br /&gt;&lt;br /&gt;.htpasswd -&lt;br /&gt;&lt;br /&gt;username:password&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. Enabling SSI (Server Side Includes)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;We can try and enable SSI via .htaccess file -&lt;br /&gt;&lt;br /&gt;# Tells the server, files it should parse as having SSI&lt;br /&gt;AddType text/html .shtml&lt;br /&gt;# handler that actually parses the SSI files&lt;br /&gt;AddHandler server-parsed .shtml&lt;br /&gt;Options Indexes FollowSymLinks Includes&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4. Deny users by IP &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;#stop a specific user from accessing site&lt;br /&gt;order allow,deny&lt;br /&gt;deny from 203.200.1.1&lt;br /&gt;# section of the IP address&lt;br /&gt;deny from 121.314.51.&lt;br /&gt;allow from all&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5. Change default directory page &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;# Will cause filename.html to be the default page , so site would not go to index.html, but to abc.html.&lt;br /&gt;DirectoryIndex abc.html&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6. Redirects &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;# Will re-directed to the newfile&lt;br /&gt;Redirect /olddir/old.htm http://google.com/newdir/new.html&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7. Block .htaccess from viewing&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;files .htaccess=""&gt;  order allow,deny&lt;br /&gt;deny from all &lt;/files&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;8. Adding MIME types &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;# to serve certain file types&lt;br /&gt;AddType application/x-shockwave-flash swf&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;9. Preventing hot linking of your images &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;RewriteEngine on &lt;br /&gt;RewriteCond %{HTTP_REFERER} !^$&lt;br /&gt;RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]&lt;br /&gt;RewriteRule \.(gif|jpg)$ - [F]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;10. Preventing directory listing&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# block all files from directory listing &lt;br /&gt;IndexIgnore *&lt;br /&gt;# block the pdf and swf from directory listing&lt;br /&gt;IndexIgnore *.pdf *.swf&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Thanks &amp;amp; Regards,&lt;br /&gt;Prashant Kumar&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6585248230975977138-433070585040641115?l=prashcom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prashcom.blogspot.com/feeds/433070585040641115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6585248230975977138&amp;postID=433070585040641115&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/433070585040641115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/433070585040641115'/><link rel='alternate' type='text/html' href='http://prashcom.blogspot.com/2010/08/all-about-htacces-how-to-use.html' title='All about .htaccess - How to use.'/><author><name>Prashant Kumar</name><uri>http://www.blogger.com/profile/11617246666689581856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_AFwTPpbaxUQ/TF2fDIyq06I/AAAAAAAAAIs/M_RWaeYnq0c/S220/prashant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6585248230975977138.post-4277395152353436764</id><published>2010-08-07T10:58:00.000-07:00</published><updated>2011-02-19T22:45:16.280-08:00</updated><title type='text'>How to make your eBay | Amazon store a success</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;&lt;/b&gt;     &lt;b&gt;Here's how to make your &lt;span style="font-size: large;"&gt;eBay Store&lt;/span&gt; a success:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Clean but elegant design&lt;/li&gt;&lt;li&gt;Open for e-commerce and easily affordable&lt;/li&gt;&lt;li&gt;Flexible search navigation&lt;/li&gt;&lt;li&gt;Focus on building trust with the customers&lt;/li&gt;&lt;li&gt;Eminent branding and internet marketing options&lt;/li&gt;&lt;li&gt;Brings up the total sales of the companies&lt;/li&gt;&lt;/ul&gt;eBay  doesn’t fob the customers. Instead eBay uses fully tested techniques so that  the clients remain happy with their service. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Professional eBay storefront design services include:&lt;/b&gt;&lt;b&gt; &lt;/b&gt; &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Complete eBay store design and administrative setup. &lt;/li&gt;&lt;li&gt;Custom store logo.&lt;/li&gt;&lt;li&gt;Professional eBay store header design. &lt;/li&gt;&lt;li&gt;eBay store category and keyword (META tag) setup. &lt;/li&gt;&lt;li&gt;eBay store inventory and auction setup. (Prices vary according to  size) &lt;/li&gt;&lt;li&gt;Extra eBay store about me or custom page design. &lt;/li&gt;&lt;li&gt;Optional regular eBay auction listings. &lt;/li&gt;&lt;li&gt;Optional eBay custom listing template. &lt;/li&gt;&lt;li&gt;Unlimited customizations available.&lt;/li&gt;&lt;/ul&gt;Few  companies offer a separate advertising team and help you to get a custom eBay  store designed and setup for efficaciously absorb your target customers and  sell your products.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Amazon  Stores&lt;/b&gt;&lt;/span&gt; contributes  to sell the products online and it also offers you a spot to get registered  your personal domain with it along with all the facilities it has to offer.  That is the reason you can be able to pull a lot of customers for your products  &amp;amp; services. This is an extensive solution for putting your products online  for sale. &lt;br /&gt;&lt;br /&gt;If you want  the solutions for attracting more customers for your specific site, you may  sign up with &lt;b&gt;Amazon  Stores&lt;/b&gt;. Amazon claims to be one of the largest shopping portals  for online users. Using Amazon store, you will be able to attract a number of  customers by offering them a wide range of products. This shows an evidence for  products management, safe &amp;amp; secure online shopping and also flexibility of  displaying of the products itself.&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Prashant Kumar&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6585248230975977138-4277395152353436764?l=prashcom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prashcom.blogspot.com/feeds/4277395152353436764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6585248230975977138&amp;postID=4277395152353436764&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/4277395152353436764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/4277395152353436764'/><link rel='alternate' type='text/html' href='http://prashcom.blogspot.com/2010/08/how-to-make-your-ebay-amazon-store.html' title='How to make your eBay | Amazon store a success'/><author><name>Prashant Kumar</name><uri>http://www.blogger.com/profile/11617246666689581856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_AFwTPpbaxUQ/TF2fDIyq06I/AAAAAAAAAIs/M_RWaeYnq0c/S220/prashant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6585248230975977138.post-3860673157497836742</id><published>2010-08-01T05:44:00.001-07:00</published><updated>2011-02-19T22:54:04.761-08:00</updated><title type='text'>Affiliate Marketing</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div&gt;&lt;b&gt;Magnetize your potential customers online to   your website with an expertly designed affiliate program and raise your   business to new heights.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;What is affiliate   marketing?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt; &lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Affiliate marketing is a   strategically designed delicate online marketing method of generating   visitors to your website through a network of web partners. It follows a   “pay for performance” model, so the merchant will only have to pay if   results are accrued. With an ever rising Internet usage graph, affiliate   marketing holds a very good chance of replacing all the traditional   marketing techniques as the most efficient means of brand promotion.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Wikipedia   says - &lt;br /&gt;&lt;br /&gt;Affiliate marketing is a marketing practice in which a   business rewards one or more affiliates for each visitor or customer   brought about by the affiliate's marketing efforts. Examples include   rewards sites, where users are rewarded with cash or gifts, for the   completion of an offer, and the referral of others to the site. The   industry has four core players: the merchant (also known as 'retailer'   or 'brand'), the network, the publisher (also known as 'the affiliate'),   and the customer. The market has grown in complexity to warrant a   secondary tier of players, including affiliate management agencies,   super-affiliates and specialized third parties vendors.&lt;br /&gt;&lt;br /&gt;There   are three ways to earn money through affiliate marketing: &lt;br /&gt;&lt;br /&gt;1. Pay   Per Click &lt;br /&gt;&lt;br /&gt;2. Pay Per Sale&lt;br /&gt;&lt;br /&gt;3. Pay Per Lead&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5 Best Affiliate Programs -&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. &lt;a href="https://affiliate-program.amazon.com/"&gt;Amazon&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. &lt;a href="http://pages.ebay.com/help/sell/affiliate-program.html"&gt;eBay&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. &lt;a href="http://www.google.com/ads/affiliatenetwork/%20https://www.google.com/adsense"&gt;Google&lt;/a&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4. &lt;a href="http://store.microsoft.com/affiliates"&gt;Microsoft&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5. &lt;a href="http://advertising.yahoo.com/affiliate_programs/%20"&gt;Yahoo&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;     &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Thanks&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Prashant Kumar&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6585248230975977138-3860673157497836742?l=prashcom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prashcom.blogspot.com/feeds/3860673157497836742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6585248230975977138&amp;postID=3860673157497836742&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/3860673157497836742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/3860673157497836742'/><link rel='alternate' type='text/html' href='http://prashcom.blogspot.com/2010/08/affiliate-marketing.html' title='Affiliate Marketing'/><author><name>Prashant Kumar</name><uri>http://www.blogger.com/profile/11617246666689581856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_AFwTPpbaxUQ/TF2fDIyq06I/AAAAAAAAAIs/M_RWaeYnq0c/S220/prashant.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6585248230975977138.post-6227448611847912420</id><published>2010-08-01T03:59:00.000-07:00</published><updated>2011-02-19T22:44:55.788-08:00</updated><title type='text'>How to secure oscommerce from Hackers.</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Hi All,&lt;br /&gt;&lt;br /&gt;Once again I am here  with new topic :&lt;span class="main_topic_title"&gt;&lt;b&gt;How to secure oscommerce code&lt;/b&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Few  things can and should be done:&lt;span class="main_topic_title"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="main_topic_title"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="main_topic_title"&gt;&lt;b&gt;1.&lt;/b&gt;&lt;b&gt; Rename the admin directory with  administrator_projectname&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;After rename the directory you will have to change two lines -&lt;/span&gt;&lt;br /&gt;&lt;span class="main_topic_title"&gt; &lt;br /&gt;renamed_admin_directory/includes/configure.php:-&lt;br /&gt;&lt;br /&gt;define('DIR_WS_ADMIN',  '/renamed_admin_directory/');&lt;br /&gt;define('DIR_FS_ADMIN',  '/your/path/to/directory/renamed_admin_directory/');&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2.  .htaccess protection to the renamed_admin_directory (.htaccess cannot  be used on a Windows server) -&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Steps are&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a. Create a new file -  authentication.php under admin/includes -&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;if(!isset($HTTP_SERVER_VARS[PHP_AUTH_USER]))  &lt;br /&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; header('WWW-Authenticate: Basic realm="' . TITLE .  '"');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; header('HTTP/1.0 401 Unauthorized');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo  $SERVER_NAME . ' Authorization Required.';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit;&lt;br /&gt;} &lt;br /&gt;else&lt;br /&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;  if (($HTTP_SERVER_VARS[PHP_AUTH_USER] != ADMIN_USERNAME) ||  ($HTTP_SERVER_VARS[PHP_AUTH_PW] != ADMIN_PASSWORD)) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp; header('WWW-Authenticate: Basic realm="' . TITLE. '"');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  header('HTTP/1.0 401 Unauthorized');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo $SERVER_NAME . '  Authorization Required.';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;/blockquote&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  b. Open admin/configure.php&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; //  define admin user/password for HTTP Authentication&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  define('ADMIN_USERNAME', 'admin');&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;  define('ADMIN_PASSWORD', 'admin');&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c. Open  application_top.php&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a. add new  line just after require('includes/configure.php');&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  // HTTP Authentication is required before anything.&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; require(DIR_WS_INCLUDES . 'authen.php');&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  b. find something like &amp;nbsp;&amp;nbsp;&amp;nbsp; $current_page = basename($PHP_SELF); replace  few lines with the below -&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (($current_page ==  FILENAME_LOGIN) &amp;amp;&amp;amp;  !tep_session_is_registered('redirect_origin')) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $current_page = FILENAME_DEFAULT;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  $HTTP_GET_VARS = array();&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if ($current_page != FILENAME_LOGIN) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if  (!tep_session_is_registered('redirect_origin')) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  tep_session_register('redirect_origin');&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  $redirect_origin = array('page' =&amp;gt; $current_page,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  'get' =&amp;gt; $HTTP_GET_VARS);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // try to  automatically login with the HTTP Authentication values if it exists&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!tep_session_is_registered('auth_ignore')) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  if (isset($HTTP_SERVER_VARS['PHP_AUTH_USER'])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;amp;&amp;amp; !empty($HTTP_SERVER_VARS['PHP_AUTH_USER']) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;amp;&amp;amp; isset($HTTP_SERVER_VARS['PHP_AUTH_PW']) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;amp;&amp;amp; !empty($HTTP_SERVER_VARS['PHP_AUTH_PW'])) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  $redirect_origin['auth_user'] = $HTTP_SERVER_VARS['PHP_AUTH_USER'];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $redirect_origin['auth_pw'] =  $HTTP_SERVER_VARS['PHP_AUTH_PW'];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  $redirect = true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ($redirect == true) {&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  tep_redirect(tep_href_link(FILENAME_LOGIN));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  tep_redirect(tep_href_link(FILENAME_LOGIN,  (isset($redirect_origin['auth_user']) ? 'action=process' : '')));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unset($redirect);&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  c. Open login.php and add the below line -&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  if (tep_not_null($action)) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; switch  ($action) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 'process':&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //$username =  tep_db_prepare_input($HTTP_POST_VARS['username']);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //$password =  tep_db_prepare_input($HTTP_POST_VARS['password']);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (tep_session_is_registered('redirect_origin')  &amp;amp;&amp;amp; isset($redirect_origin['auth_user'])) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $username =  tep_db_prepare_input($redirect_origin['auth_user']);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $password =  tep_db_prepare_input($redirect_origin['auth_pw']);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $username =  tep_db_prepare_input($HTTP_POST_VARS['username']);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $password =  tep_db_prepare_input($HTTP_POST_VARS['password']);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case  'logoff':&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  tep_session_unregister('selected_box');&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tep_session_unregister('admin');&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if  (isset($HTTP_SERVER_VARS['PHP_AUTH_USER']) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;amp;&amp;amp; !empty($HTTP_SERVER_VARS['PHP_AUTH_USER']) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;amp;&amp;amp; isset($HTTP_SERVER_VARS['PHP_AUTH_PW']) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;amp;&amp;amp; !empty($HTTP_SERVER_VARS['PHP_AUTH_PW'])) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;  tep_session_register('auth_ignore');&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp; $auth_ignore = true;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  unset($HTTP_SERVER_VARS[PHP_AUTH_USER]);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp; unset($HTTP_SERVER_VARS[PHP_AUTH_PW]);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Once these setting are in place  anyone can login in OSCommerce Admin panel with single HTTP  Authentication login. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. Delete   admin/filemanager.php and associated links, &lt;/b&gt; Delete &lt;b class="bbc"&gt;file_manager.php&lt;/b&gt; from catalog/admin &lt;br /&gt;&lt;br /&gt;&lt;b&gt;4.&amp;nbsp; Ensure that your folder permissions are never set higher than 755&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5.&amp;nbsp; Delete  admin/define_language.php and associated link in the "Tools" box,&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;open admin/includes/boxes/tools.php and delete the line:&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;pre class="prettyprint"&gt;&lt;span class="str"&gt;'&lt;a href="http://www.blogger.com/%27%3C/span%3E%3Cspan%20class=" pln=""&gt; &lt;/a&gt;&lt;/span&gt;&lt;span class="pun"&gt;&lt;a href="http://www.blogger.com/%27%3C/span%3E%3Cspan%20class=" pln=""&gt;.&lt;/a&gt;&lt;/span&gt;&lt;span class="pln"&gt;&lt;a href="http://www.blogger.com/%27%3C/span%3E%3Cspan%20class=" pln=""&gt; tep_href_link&lt;/a&gt;&lt;/span&gt;&lt;span class="pun"&gt;&lt;a href="http://www.blogger.com/%27%3C/span%3E%3Cspan%20class=" pln=""&gt;(&lt;/a&gt;&lt;/span&gt;&lt;span class="pln"&gt;&lt;a href="http://www.blogger.com/%27%3C/span%3E%3Cspan%20class=" pln=""&gt;FILENAME_FILE_MANAGER&lt;/a&gt;&lt;/span&gt;&lt;span class="pun"&gt;&lt;a href="http://www.blogger.com/%27%3C/span%3E%3Cspan%20class=" pln=""&gt;)&lt;/a&gt;&lt;/span&gt;&lt;span class="pln"&gt;&lt;a href="http://www.blogger.com/%27%3C/span%3E%3Cspan%20class=" pln=""&gt; &lt;/a&gt;&lt;/span&gt;&lt;span class="pun"&gt;&lt;a href="http://www.blogger.com/%27%3C/span%3E%3Cspan%20class=" pln=""&gt;.&lt;/a&gt;&lt;/span&gt;&lt;span class="pln"&gt;&lt;a href="http://www.blogger.com/%27%3C/span%3E%3Cspan%20class=" pln=""&gt; &lt;/a&gt;&lt;/span&gt;&lt;span class="str"&gt;&lt;a href="http://www.blogger.com/%27%3C/span%3E%3Cspan%20class=" pln=""&gt;'" class="menuBoxContentLink"&amp;gt;'&lt;/a&gt;&lt;/span&gt;&lt;span class="pln"&gt;&lt;a href="http://www.blogger.com/%27%3C/span%3E%3Cspan%20class=" pln=""&gt; &lt;/a&gt;&lt;/span&gt;&lt;span class="pun"&gt;&lt;a href="http://www.blogger.com/%27%3C/span%3E%3Cspan%20class=" pln=""&gt;.&lt;/a&gt;&lt;/span&gt;&lt;span class="pln"&gt;&lt;a href="http://www.blogger.com/%27%3C/span%3E%3Cspan%20class=" pln=""&gt; BOX_TOOLS_FILE_MANAGER &lt;/a&gt;&lt;/span&gt;&lt;span class="pun"&gt;&lt;a href="http://www.blogger.com/%27%3C/span%3E%3Cspan%20class=" pln=""&gt;.&lt;/a&gt;&lt;/span&gt;&lt;span class="pln"&gt;&lt;a href="http://www.blogger.com/%27%3C/span%3E%3Cspan%20class=" pln=""&gt; &lt;/a&gt;&lt;/span&gt;&lt;span class="str"&gt;&lt;a href="http://www.blogger.com/%27%3C/span%3E%3Cspan%20class=" pln=""&gt;'&lt;/a&gt;&lt;br /&gt;'&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;/pre&gt;&lt;pre class="prettyprint"&gt;&lt;span class="pun"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;It is also known that &lt;b class="bbc"&gt;admin/define_language.php&lt;/b&gt; is vulnerable to the same hacks as filemanger, so should also be &lt;br /&gt;removed. &lt;span class="pun"&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;6. Some security addons has to be installed -&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;  &lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;a. You can prevent any injection attacks  with Security Pro http://addons.oscommerce.com/info/5752&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b. You can monitor sites for unauthorised changes with  SiteMonitor http://addons.oscommerce.com/info/4441&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c. You can block elicit access attempts with IP trap  http://addons.oscommerce.com/info/5914&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d. You can add htaccess protection  http://addons.oscommerce.com/info/6066&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e. You can stop Cross Site Scripting attacks with Anti XSS  http://addons.oscommerce.com/info/6044&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f. You can add http://addons.oscommerce.com/info/6134&amp;nbsp; to  assist with permission settings.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;7. &lt;b class="bbc"&gt;BACKUPS:&lt;/b&gt;&lt;/b&gt;  &lt;br /&gt;&lt;br /&gt;To be safe you should make backups of your dBase and site files, saves a  great deal of time &amp;amp; effort cleaning up should anything nasty  happen. &lt;br /&gt;&lt;br /&gt;I recommend you use &lt;a class="bbc_url" href="http://addons.oscommerce.com/info/2314" rel="nofollow" title="External link"&gt;AutoBackup Database  in Admin&lt;/a&gt; AND &lt;a class="bbc_url" href="http://addons.oscommerce.com/info/5769" rel="nofollow" title="External link"&gt;Database backup  manager&lt;/a&gt; also &lt;a class="bbc_url" href="http://addons.oscommerce.com/info/6986" rel="nofollow" title="External link"&gt;Backup of all store  files in zip format&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;8. &lt;b class="bbc"&gt;FORMS:&lt;/b&gt;&lt;/b&gt;  &lt;br /&gt;&lt;br /&gt;Security Pro cleans the query string, however any forms using $_POST are  un-affected, if you have any forms using the post method you would be  advised to do the following on pages accepting $_POST vars.  &lt;br /&gt;&lt;br /&gt;after: &lt;span class="kwd"&gt;require&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="str"&gt;'includes/application_top.php'&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;add:&lt;br /&gt;&lt;pre class="prettyprint"&gt;&lt;span class="com"&gt;// clean posted vars&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;reset&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;$_POST&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;while&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;list&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;$key&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; $value&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; each&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;$_POST&lt;/span&gt;&lt;span class="pun"&gt;))&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="kwd"&gt;if&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;(!&lt;/span&gt;&lt;span class="pln"&gt;is_array&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;$_POST&lt;/span&gt;&lt;span class="pun"&gt;[&lt;/span&gt;&lt;span class="pln"&gt;$key&lt;/span&gt;&lt;span class="pun"&gt;]))&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $_POST&lt;/span&gt;&lt;span class="pun"&gt;[&lt;/span&gt;&lt;span class="pln"&gt;$key&lt;/span&gt;&lt;span class="pun"&gt;]&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; preg_replace&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="str"&gt;"/[^ a-zA-Z0-9@%:{}_.-]/i"&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;""&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; urldecode&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;$_POST&lt;/span&gt;&lt;span class="pun"&gt;[&lt;/span&gt;&lt;span class="pln"&gt;$key&lt;/span&gt;&lt;span class="pun"&gt;]));&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;else&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; unset&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;$_POST&lt;/span&gt;&lt;span class="pun"&gt;[&lt;/span&gt;&lt;span class="pln"&gt;$key&lt;/span&gt;&lt;span class="pun"&gt;]);&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="com"&gt;// no arrays expected &lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;pre class="prettyprint"&gt;&lt;span class="pun"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;This does not allow for arrays, additional code is needed if they are used.&lt;/pre&gt;&lt;pre class="prettyprint"&gt;&lt;b&gt;I am sure this POST will help you.&lt;/b&gt;&lt;/pre&gt;&lt;pre class="prettyprint"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/pre&gt;&lt;pre class="prettyprint"&gt;&lt;b&gt;Regards,&lt;/b&gt;&lt;/pre&gt;&lt;pre class="prettyprint"&gt;&lt;b&gt;Prashant Kumar&lt;/b&gt;&lt;/pre&gt;&lt;pre class="prettyprint"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;   &lt;/pre&gt;&lt;pre class="prettyprint"&gt;&lt;span class="pun"&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;span class="pun"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6585248230975977138-6227448611847912420?l=prashcom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prashcom.blogspot.com/feeds/6227448611847912420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6585248230975977138&amp;postID=6227448611847912420&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/6227448611847912420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/6227448611847912420'/><link rel='alternate' type='text/html' href='http://prashcom.blogspot.com/2010/08/how-to-secure-oscommerce-from-hackers.html' title='How to secure oscommerce from Hackers.'/><author><name>Prashant Kumar</name><uri>http://www.blogger.com/profile/11617246666689581856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_AFwTPpbaxUQ/TF2fDIyq06I/AAAAAAAAAIs/M_RWaeYnq0c/S220/prashant.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6585248230975977138.post-3224890779248811439</id><published>2010-07-30T11:52:00.000-07:00</published><updated>2010-07-30T11:52:57.331-07:00</updated><title type='text'>Php: preg_match &amp; preg_match_all, parse a website.</title><content type='html'>Screen Scraping is a great skill that every PHP developer should have  experience with. Basically it involves scraping the source code of a  web page, getting it into a string, and then parsing out the parts that  you want to use. A simple application of screen scraping could be to  build a database of all the NFL teams complete with player details.&lt;br /&gt;&lt;br /&gt;Screen scraping has been around on the internet since people could code  on it, and there are dozens of resources out there to figure out how to  do it (google &lt;a href="http://www.google.com/search?q=php+screen+scrape"&gt;php  screen scrape&lt;/a&gt; to see what I mean).  I want to touch on some things  that I’ve figured out while scraping some screens.  I assume you have  php running, and know your way around Windows.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To call curl just write a function like this.  This is so much easier  than using the php commands, but you probably don’t want to use a  shell_exec command on a web server where someone can put in their own  input. That might be bad.  I only use this code when I run it locally.&lt;br /&gt;&lt;pre lang="php"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre lang="php"&gt;function GetCurlPage ($pageSpec) {&lt;br /&gt;    return shell_exec("curl $pageSpec");&lt;/pre&gt;&lt;pre lang="php"&gt;}&lt;/pre&gt;&lt;pre lang="php"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre lang="php"&gt;OR&lt;/pre&gt;&lt;pre lang="php"&gt;&lt;/pre&gt;&lt;div class="syntax_hilite"&gt; &lt;div id="php-1"&gt; &lt;div class="php"&gt;&lt;span style="color: blue;"&gt;$url&lt;/span&gt; = &lt;span style="color: red;"&gt;"http://www.nfl.com/teams/sandiegochargers/roster?team=SD"&lt;/span&gt;; &lt;span style="color: blue;"&gt;$raw&lt;/span&gt; = &lt;a href="http://www.bradino.com/php-functions/file_get_contents/"&gt;&lt;span style="color: #000066;"&gt;file_get_contents&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;$url&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;)&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;The easiest way to do pattern matching I have found is without  newlines. Here is how I remove them from the raw html before I start  parsing out the data I want to scrape.&lt;br /&gt;&lt;div class="syntax_hilite"&gt; &lt;div id="php-2"&gt; &lt;div class="php"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="php"&gt;&lt;span style="color: blue;"&gt;$newlines&lt;/span&gt; =  &lt;a href="http://www.bradino.com/php-functions/array/"&gt;&lt;span style="color: #000066;"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;"&lt;span style="color: #000099; font-weight: bold;"&gt;\t&lt;/span&gt;"&lt;/span&gt;,&lt;span style="color: red;"&gt;"&lt;span style="color: #000099; font-weight: bold;"&gt;\n&lt;/span&gt;"&lt;/span&gt;,&lt;span style="color: red;"&gt;"&lt;span style="color: #000099; font-weight: bold;"&gt;\r&lt;/span&gt;"&lt;/span&gt;,&lt;span style="color: red;"&gt;"&lt;span style="color: #000099; font-weight: bold;"&gt;\x&lt;/span&gt;20&lt;span style="color: #000099; font-weight: bold;"&gt;\x&lt;/span&gt;20"&lt;/span&gt;,&lt;span style="color: red;"&gt;"&lt;span style="color: #000099; font-weight: bold;"&gt;\0&lt;/span&gt;"&lt;/span&gt;,&lt;span style="color: red;"&gt;"&lt;span style="color: #000099; font-weight: bold;"&gt;\x&lt;/span&gt;0B"&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;)&lt;/span&gt;; &lt;span style="color: blue;"&gt;$content&lt;/span&gt; = &lt;a href="http://www.bradino.com/php-functions/str_replace/"&gt;&lt;span style="color: #000066;"&gt;str_replace&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;$newlines&lt;/span&gt;, &lt;span style="color: red;"&gt;""&lt;/span&gt;,  &lt;a href="http://www.bradino.com/php-functions/html_entity_decode/"&gt;&lt;span style="color: #000066;"&gt;html_entity_decode&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;$raw&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;)&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;)&lt;/span&gt;;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;So now you have the source code of the page as a string variable, you  need to parse out the results. Tis is where each scraping application  will differ. Depending on the page structure and what elements you want  to retrieve, you will have to alter the regular expression matching. You  can view the source and see that the roster data you want is in a nice  table with class name "standard_table". I also notice that this class  name is unique to the page. So the next step is to get the start and end  string positions for this table, and then extract just the table from  the content:&lt;br /&gt;&lt;br /&gt;&lt;div class="syntax_hilite"&gt; &lt;div id="php-3"&gt; &lt;div class="php"&gt;&lt;span style="color: blue;"&gt;$start&lt;/span&gt; = &lt;a href="http://www.bradino.com/php-functions/strpos/"&gt;&lt;span style="color: #000066;"&gt;strpos&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;$content&lt;/span&gt;,&lt;span style="color: red;"&gt;'&lt;table cellpadding="2" class="standard_table"&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;)&lt;/span&gt;; &lt;span style="color: blue;"&gt;$end&lt;/span&gt; = &lt;a href="http://www.bradino.com/php-functions/strpos/"&gt;&lt;span style="color: #000066;"&gt;strpos&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;$content&lt;/span&gt;,&lt;span style="color: red;"&gt;'&lt;/span&gt;&lt;/table&gt;'&lt;/span&gt;,&lt;span style="color: blue;"&gt;$start&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;)&lt;/span&gt; + &lt;span style="color: #cc66cc;"&gt;8&lt;/span&gt;; &lt;span style="color: blue;"&gt;$table&lt;/span&gt; = &lt;a href="http://www.bradino.com/php-functions/substr/"&gt;&lt;span style="color: #000066;"&gt;substr&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;$content&lt;/span&gt;,&lt;span style="color: blue;"&gt;$start&lt;/span&gt;,&lt;span style="color: blue;"&gt;$end&lt;/span&gt;-&lt;span style="color: blue;"&gt;$start&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;)&lt;/span&gt;;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Now we have just the table containing the roster data, and we need to  parse out the rows and cells. The easiest way to do this is with  preg_match_all. If this code is not clear, you can print_r and die() in  the loop to see what the rows and cells arrays contain.&lt;br /&gt;&lt;div class="syntax_hilite"&gt; &lt;div id="php-4"&gt; &lt;div class="php"&gt;&lt;span style="color: #000066;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="php"&gt;&lt;a href="http://www.bradino.com/php-functions/preg_match_all/"&gt;&lt;span style="color: #000066;"&gt;preg_match_all&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;"|&lt;tr(.*)&gt;|U"&lt;/tr(.*)&gt;&lt;/span&gt;,&lt;span style="color: blue;"&gt;$table&lt;/span&gt;,&lt;span style="color: blue;"&gt;$rows&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;)&lt;/span&gt;; &lt;br /&gt;&lt;span style="color: #616100;"&gt;foreach&lt;/span&gt; &lt;span style="color: #006600; font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;$rows&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;]&lt;/span&gt;  &lt;span style="color: #616100;"&gt;as&lt;/span&gt; &lt;span style="color: blue;"&gt;$row&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;)&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;{&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #616100;"&gt;if&lt;/span&gt; &lt;span style="color: #006600; font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;(&lt;/span&gt;&lt;a href="http://www.bradino.com/php-functions/strpos/"&gt;&lt;span style="color: #000066;"&gt;strpos&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;$row&lt;/span&gt;,&lt;span style="color: red;"&gt;'&lt;th'&gt;&lt;/th'&gt;&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;)&lt;/span&gt;===&lt;span style="color: black; font-weight: bold;"&gt;false&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;)&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;)&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;{&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href="http://www.bradino.com/php-functions/preg_match_all/"&gt;&lt;span style="color: #000066;"&gt;preg_match_all&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;"|&lt;td(.*)&gt;|U"&lt;/td(.*)&gt;&lt;/span&gt;,&lt;span style="color: blue;"&gt;$row&lt;/span&gt;,&lt;span style="color: blue;"&gt;$cells&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;)&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;$number&lt;/span&gt; = &lt;a href="http://www.bradino.com/php-functions/strip_tags/"&gt;&lt;span style="color: #000066;"&gt;strip_tags&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;$cells&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;]&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;]&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;)&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;$name&lt;/span&gt; = &lt;a href="http://www.bradino.com/php-functions/strip_tags/"&gt;&lt;span style="color: #000066;"&gt;strip_tags&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;$cells&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;]&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;1&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;]&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;)&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;$position&lt;/span&gt; = &lt;a href="http://www.bradino.com/php-functions/strip_tags/"&gt;&lt;span style="color: #000066;"&gt;strip_tags&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;$cells&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;0&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;]&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: #cc66cc;"&gt;2&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;]&lt;/span&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;)&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href="http://www.bradino.com/php-functions/echo/"&gt;&lt;span style="color: #000066;"&gt;echo&lt;/span&gt;&lt;/a&gt; &lt;span style="color: red;"&gt;"{$position} - {$name} - Number {$number} &lt;br /&gt;&lt;span style="color: #000099; font-weight: bold;"&gt;\n&lt;/span&gt;"&lt;/span&gt;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #006600; font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #006600; font-weight: bold;"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;pre lang="php"&gt;&amp;nbsp;&lt;/pre&gt;So now we have parsed all the data for a given team from the official  NFL site. To do all the teams, wrap this in a loop and as a final step,  write all the data to a database table and voila, you have a database  of all team rosters for the NFL.&lt;br /&gt;&lt;br /&gt;This simple scraping example is just to illustrate the basic concept.  Also keep in mind that if the source structure of the page you want to  scrape changes, you will need to adjust your pattern matching. You  should always scrape the page once and save the results in a file, then  read that file into your code for development testing to minimize the  hits to the live server.&lt;br /&gt;&lt;br /&gt;My personal opinion is that anything that is  publicly accessible via the internet should be able to be scraped. What  is the difference if you were to copy and paste it, basically that is  what you are doing but doing it programmatically. You can definitely get  into trouble if you misuse some data that you scraped, you could  probably violate copyrights or whatever. Please scrape responsibly :)&lt;br /&gt;&lt;pre lang="php"&gt;&lt;/pre&gt;&lt;div class="awmp_tags"&gt;scraping screen  scraping web scraping website  scraping php scrape&lt;/div&gt;&lt;div class="awmp_tags"&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6585248230975977138-3224890779248811439?l=prashcom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prashcom.blogspot.com/feeds/3224890779248811439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6585248230975977138&amp;postID=3224890779248811439&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/3224890779248811439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/3224890779248811439'/><link rel='alternate' type='text/html' href='http://prashcom.blogspot.com/2010/07/php-pregmatch-pregmatchall-parse.html' title='Php: preg_match &amp; preg_match_all, parse a website.'/><author><name>Prashant Kumar</name><uri>http://www.blogger.com/profile/11617246666689581856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_AFwTPpbaxUQ/TF2fDIyq06I/AAAAAAAAAIs/M_RWaeYnq0c/S220/prashant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6585248230975977138.post-6794416841936688441</id><published>2007-11-21T04:28:00.000-08:00</published><updated>2011-02-19T22:46:44.374-08:00</updated><title type='text'>Tuning PHP</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Here is my compilation of tips on how to optimise Apache on Linux for PHP and CGI programs. These tips can also apply to Perl and Python. Links will open in a new window.&lt;br /&gt;Also read my essay &lt;a href="http://phplens.com/lens/php-book/optimizing-debugging-php.php"&gt;Optimizing PHP&lt;/a&gt; for a more in depth coverage of these issues with case studies.&lt;br /&gt;To tune well, you need to benchmark your Web server. You can get some benchmark figures using &lt;a href="http://perl.apache.org/guide/performance.html#ApacheBench" target="_apache"&gt;ApacheBench&lt;/a&gt; (ab) or &lt;a href="http://www.hpl.hp.com/personal/David_Mosberger/httperf.html" target="_apache"&gt;httperf&lt;/a&gt;. If you are an OS agnostic like me, I recommend using Microsoft's excellent free &lt;a href="http://www.microsoft.com/technet/archive/itsolutions/intranet/downloads/webstres.mspx"&gt;Web Application Stress Tool&lt;/a&gt; (WAST - requires M'soft Windows). WAST is more flexible than ab because it allows you to define different GET parameters for each thread. This is important because it allows you to simulate multiple PHP sessions via the PHPSESSID GET parameter. Avoid benchmarks involving PHP sessions when using ab as the sessions will become an artificial bottleneck. More info on &lt;a href="http://phplens.com/phpeverywhere/benchmarking-with-wast"&gt;using WAST with PHP&lt;/a&gt;.&lt;br /&gt;To monitor the Apache server, I use the command &lt;code&gt;top d 1&lt;/code&gt; which displays CPU and memory usage of all processes on the machine, and &lt;code&gt;apachectl status&lt;/code&gt;.&lt;br /&gt;&lt;img src="http://phplens.com/phpeverywhere/icons/chiefdan.gif" /&gt; &lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;i&gt;General rule of thumb for hardware upgrades&lt;/i&gt;: For PHP scripts, the main bottleneck is the &lt;b&gt;CPU&lt;/b&gt;. For static HTML/images, the bottleneck is &lt;b&gt;RAM &lt;/b&gt;and the &lt;b&gt;network&lt;/b&gt;. According to Compaq benchmarks in 1999 (the original article is lost due to bitrot), a slow 400 Mhz Pentium can saturate a T3 line (that's 45 Mbps) with static HTML pages.&lt;/li&gt;&lt;li&gt;A PHP script will be served at least 2-10 times slower than a static HTML page by Apache. Try to use more static HTML pages and fewer scripts.&lt;/li&gt;&lt;li&gt;Enable the compression of HTML by putting in your php.ini: &lt;code&gt;     output_handler = ob_gzhandler&lt;/code&gt; &lt;br /&gt;If you think about it, it might take you 0.1 seconds to generate 40K of HTML in your PHP page. However it probably takes 6 seconds for the user to download the page using a 56k modem without compresson. With compression, the download will probably take 2-3 seconds. &lt;br /&gt;So the time taken for page generation is miniscule in comparison to the transit time of the HTML from the server to the browser. &lt;span style="color: maroon;"&gt;Therefore the biggest speedup you can perform for modem users is using &lt;i&gt;ob_gzhandler&lt;/i&gt;&lt;/span&gt;! This feature is only recommended for PHP 4.1.0 or later. This point was moved closer to the top of the list on 9 July 2002 when i personally experienced the benefits of compression. &lt;a href="http://zend.com/zend/art/buffering.php" target="_apache"&gt;More info...&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Your PHP scripts are recompiled every time unless the scripts are cached. Install a PHP caching product (I recommend &lt;a href="http://sourceforge.net/projects/turck-mmcache/"&gt;Turck MMCache&lt;/a&gt;) to typically increase performance by 25-100% by removing compile times.&lt;/li&gt;&lt;li&gt;Switch from file based sessions to shared memory sessions. Compile PHP with the &lt;i&gt;--with-mm &lt;/i&gt;option and set &lt;i&gt;session.save_handler=mm &lt;/i&gt;in php.ini. Informal benchmarks suggest that session management time is halved by this simple change. Added 1 Dec 2001. This hint should only be used for PHP 4.2.0 and above as there were bugs before this.&lt;/li&gt;&lt;li&gt;An alternative caching technique when you have pages that don't change too frequently is to cache the HTML output of your PHP pages. Try &lt;a href="http://smarty.php.net/"&gt;Smarty&lt;/a&gt; or &lt;a href="http://pear.php.net/Cache_Lite"&gt;Cache Lite&lt;/a&gt;.   &lt;/li&gt;&lt;li&gt;Use output buffering (See &lt;a href="http://php.net/ob_start"&gt;ob_start&lt;/a&gt;). This will speed up your PHP code by 5-15% if you frequently print or echo in your code. Note that output buffering is already enabled if you are using the above ob_gzhandler hint. ASP does this in IIS 5. Added 26 Nov 2001.&lt;/li&gt;&lt;li&gt;On Windows, &lt;a href="http://www.fastcgi.com/"&gt;FastCGI&lt;/a&gt; is the highest performance way of running PHP with Apache. Although PHP4 can run in a threaded environment, some global locks prevent it from making full use of threads. Also PHP is not very stable in threaded environments because many common extensions are not thread-safe. &lt;span style="color: maroon;"&gt;Added Feb 2004&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;In PHP4, objects and arrays should be passed in and out of functions by reference (with &amp;amp;), and everything else by value. In PHP5, objects are automatically passed by reference. For example the following gives best performance: &lt;pre&gt;function &amp;amp;test(&amp;amp;$obj_or_array)&lt;br /&gt;{&lt;br /&gt;return $obj_or_array;&lt;br /&gt;}&lt;br /&gt;$var =&amp;amp; test($obj);&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Be miserly and sparse with your server and web pages. Don't run X-Windows on the server and other unneeded processes. &lt;a href="http://apachetoday.com/news_story.php3?ltsn=2001-02-20-003-06-PS-LF-AD" target="_apache"&gt;Apache Today&lt;/a&gt; has a guide on how to remove them.&lt;/li&gt;&lt;li&gt;Don't use images when text will do. Reduce your image sizes with a software like Adobe ImageReady or MacroMedia Fireworks. Avoid dithered images as they tend to compress poorly.&lt;/li&gt;&lt;li&gt;Spread the workload. Run your SQL server on another machine. Serve graphics and HTML from another low-end computer. If all static content is served from another server, then you can turn off &lt;i&gt;KeepAlives &lt;/i&gt;in httpd.conf on the PHP server to speed up disconnects. &lt;i&gt;1 Feb 2002: I am currently using &lt;a href="http://www.redhat.com/docs/manuals/tux/"&gt;tux&lt;/a&gt; as the static web server, and have set it to pass all .php files to Apache which resides on the same machine. &lt;/i&gt; 15 March 2002: &lt;a href="http://www.acme.com/software/thttpd/"&gt;thttpd&lt;/a&gt; is another popular static web server. &lt;/li&gt;&lt;li&gt;Use &lt;a href="http://www.oreillynet.com/pub/a/linux/2000/06/29/hdparm.html" target="_apache"&gt;hdparm&lt;/a&gt; to tune your hard disk. If you are using a default Linux install, this could speed up your hard disk by 200%. This is mostly useful for IDE hard disks, but some hdparm settings work with SCSI also.&lt;/li&gt;&lt;li&gt;Modify the following httpd.conf parameters to: &lt;pre&gt;# disable DNS lookups: PHP scripts only get the IP address&lt;br /&gt;HostnameLookups &lt;b&gt;off &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;# disable htaccess checks&lt;br /&gt;&lt;directory&gt;&lt;br /&gt;AllowOverride &lt;b&gt;none  &lt;/b&gt;&lt;br /&gt;&lt;/directory&gt;&lt;br /&gt;&lt;/pre&gt;and turn on follow FollowSymLinks and turn off SymLinksIfOwnerMatch (correction by Joshua Slive) to prevent additional lstat() system calls from being made: &lt;pre&gt;Options FollowSymLinks&lt;br /&gt;#Options SymLinksIfOwnerMatch&lt;br /&gt;&lt;/pre&gt;There are many other httpd.conf tips below.&lt;/li&gt;&lt;li&gt;A brief and quite complete set of &lt;a href="http://www.ece.concordia.ca/%7Edaniel/tips/apache_tuning.html" target="_apache"&gt;Apache Tuning Tips&lt;/a&gt; by Kurt.&lt;/li&gt;&lt;li&gt;If you are comfortable patching Apache 1.3 sources, try &lt;a href="http://www.iagora.com/about/software/lingerd/" target="_apache"&gt;lingerd&lt;/a&gt;. Each Apache process currently wastes a lot of time "lingering" on client connections, after the page has been generated and sent. Lingerd takes over this job, leaving the Apache process immediately free to handle a new connection. As a result, Lingerd makes it possible to serve the same load using considerably fewer Apache processes. &lt;/li&gt;&lt;li&gt;Increase &lt;i&gt;SendBufferSize &lt;/i&gt;in httpd.conf to the size of your largest Web page. Increase your kernel's TCP/IP write buffer size. See IAgora's &lt;a href="http://www.iagora.com/about/software/lingerd/TUNING.txt" target="_apache"&gt;tuning hints&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;&lt;a href="http://hotwired.lycos.com/webmonkey/97/49/index3a.html?tw=backend" target="_apache"&gt;HotWired's&lt;/a&gt;: Tuning Apache Web Servers for Speed. An old article: 1997.&lt;/li&gt;&lt;li&gt; Sterling Hughes and Andrei Zmievski have some good advice in their &lt;a href="http://pres.lerdorf.com/show/advancedphp-oscon2002"&gt;Advanced PHP&lt;/a&gt; presentation (don't miss the section on Squid at the end of the slides). Added 13 Aug 2002.&lt;/li&gt;&lt;li&gt;&lt;a href="http://marc.theaimsgroup.com/?l=php-dev&amp;amp;m=98193543028899&amp;amp;w=2" target="_apache"&gt;Ron Chmara's&lt;/a&gt; advice on tuning Apache when using PHP's persistent database connections: don't set &lt;i&gt;MaxRequestsPerChild &lt;/i&gt;too high so idle resources are released quickly.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.mnot.net/cache_docs/"&gt;Caching Tutorial for Web Authors and Webmasters&lt;/a&gt; by Mark Nottingham teaches you how to make browsers cache content.&lt;/li&gt;&lt;li&gt;If you are a brave soul, you can also apply Silicon Graphics' &lt;a href="http://aap.sourceforge.net/"&gt;Accelerated Apache&lt;/a&gt; patches. "This project's aggressive optimizations make Apache/1.3 up to ten times faster and Apache/2.0 up to four times faster on the SPECweb96 benchmark."&lt;/li&gt;&lt;li&gt;Bradley J. Bartram talks about using &lt;a href="http://www.linuxjournal.com/article.php?sid=6691&amp;amp;mode=&amp;amp;order=0"&gt;flood&lt;/a&gt; to stress test apache. Also general monitoring and tuning advice. Added 24th Sept 2003.&lt;/li&gt;&lt;li&gt; Tips from the book &lt;a href="http://www.devshed.com/Books/ProApache/page2.html" target="_apache"&gt;Professional Apache&lt;/a&gt;.&lt;/li&gt;&lt;li&gt; The Official Apache &lt;a href="http://httpd.apache.org/docs/misc/perf-tuning.html" target="_apache"&gt;Performance Tuning&lt;/a&gt; documentation. Good stuff, but very verbose.&lt;/li&gt;&lt;li&gt;Tips on &lt;a href="http://www.sitepoint.com/article/effective-website-acceleration"&gt;Web-site Acceleration&lt;/a&gt; from SitePoint. Added 11 March 2004.&lt;/li&gt;&lt;li&gt; Sascha Schumann of the PHP development team recommends compiling PHP4 with the following settings&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;--enable-inline-optimization --disable-debug&lt;/span&gt;&lt;/li&gt;&lt;li&gt; Hints on optimizing &lt;a href="http://www.linuxdoc.org/LDP/solrhe/Securing-Optimizing-Linux-RH-Edition-v1.3/"&gt;Linux&lt;/a&gt;, &lt;a href="http://people.redhat.com/alikins/system_tuning.html"&gt;more Linux&lt;/a&gt; and &lt;a href="http://docs.sun.com/ab2/coll.707.1/SOLTUNEPARAMREF/@Ab2TocView?Ab2Lang=C&amp;amp;Ab2Enc=iso-8859-1&amp;amp;DwebQuery=kernel+OR+tuning&amp;amp;oqt=kernel+tuning"&gt;Solaris&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Set the noatime attribute for frequently accessed files. Otherwise Unix systems will record the last file access time. This is a useful setting for your web pages. Here's how to change in on &lt;a href="http://www.linuxdoc.org/LDP/solrhe/Securing-Optimizing-Linux-RH-Edition-v1.3/chap6sec73.html" target="_apache"&gt;Linux&lt;/a&gt; and &lt;a href="http://204.210.58.86/ou/motd/archive/2001/may/noatime.html" target="_apache"&gt;Solaris&lt;/a&gt;. Added 14 March 2002.&lt;/li&gt;&lt;li&gt;Use a Ramdisk to store your temporary files (e.g. session variable files). Ramdisk &lt;a href="http://www.gnujobs.com/mark/articles/Ramdisk.html"&gt;howto&lt;/a&gt;.   Mr Perkins points out that for Linux 2.4/Solaris, rather than creating a ramdisk, using tmpfs is more effective as it won't ask for all the ram straight away, and also if the machine becomes very busy the ram is freed and swap is used. The following command sets up the filesystem over your existing /tmp (where php stores cookie info by default):&lt;br /&gt;mount tmpfs /tmp -t tmpfs -o size=64m&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.stdlib.net/%7Ecolmmacc/Apachecon-EU2005/scaling-apache-handout.pdf"&gt;Scaling Apache 2.0&lt;/a&gt; (pdf). Discusses the ftp.heanet.ie website. It serves content via HTTP, FTP and RSYNC all available via IPv4 and IPv6. Includes advice on tuning OS. Added 24 Mar 2006.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.omniti.com/%7Ejesus/misc/AC2003LV.pdf"&gt;Scalable Internet Architectures&lt;/a&gt; (pdf), an extensive presentation that was later expanded into a book of the same name by Theo Schlossnagle. Discusses some pretty sophisticated techniques including DNS load balancing and mod_backhand. Added 24 Mar 2006.&lt;/li&gt;&lt;li&gt; &lt;a href="http://h71019.www7.hp.com/ActiveAnswers/Render/1,1027,1159-6-100-225-1,00.htm"&gt;HP/Compaq&lt;/a&gt; Apache tuning guide in PDF. Very complete and includes benchmarks.&lt;/li&gt;&lt;li&gt;After xenu.net was slashdotted, they published their &lt;a href="http://linuxjournal.com/article.php?sid=6041"&gt;Apache optimization tips&lt;/a&gt;.&lt;/li&gt;&lt;li&gt; I just realised that all the above tips deal with squeezing the maximum performance from a single server. Ultimately if you are successful, the tips won't be enough. Then you will need to switch to using multiple Apache servers (a server farm) with &lt;a href="http://www.devshed.com/Books/ProApache/page6.html" target="_apache"&gt;clustering&lt;/a&gt;, &lt;a href="http://www.internetwk.com/reviews00/rev012400.htm" target="_apache"&gt;load-balancing&lt;/a&gt; and &lt;a href="http://www.itworld.com/Net/3144/NWW010402rev2/"&gt;caching&lt;/a&gt;. Using &lt;a href="http://linuxtoday.com/news_story.php3?ltsn=2001-09-30-003-20-RV-SV-SW"&gt;Squid&lt;/a&gt; as a proxy cache. &lt;a href="http://linuxtoday.com/news_story.php3?ltsn=2001-10-29-004-20-PS-HL-SV"&gt;Configuring&lt;/a&gt; Squid. Rasmus Lerdorf recommends &lt;a href="http://www.squidguard.org/intro/"&gt;squidGuard&lt;/a&gt; (added 30 July 2002).&lt;/li&gt;&lt;li&gt;Deprecated is the recommendation to use Apache 2 with threaded PHP SAPI. Apparently PHP still has some global locks that prevent it from maximizing concurrency with multiple threads. Modified &lt;span style="color: maroon;"&gt;Feb 2004&lt;/span&gt;.&lt;/li&gt;&lt;/ol&gt;PHP Specific Articles&lt;br /&gt;- &lt;a href="http://www.omniti.com/%7Egeorge/talks/HPPHP-PHPCON2002.html"&gt;High Performance PHP presentation&lt;/a&gt; by George Schlossnagle given at PHPCon 2002&lt;br /&gt;- &lt;a href="http://pres.lerdorf.com/show/advancedphp-oscon2002"&gt;Advanced PHP presentation&lt;/a&gt; given by Sterling Hughes and Andrei Zmievski at O'Reilly Open Source Conference 2002.&lt;br /&gt;- &lt;a href="http://phplens.com/lens/php-book/optimizing-debugging-php.php"&gt;Optimizing PHP&lt;/a&gt; article by John Lim.&lt;br /&gt;&lt;h3&gt;Associated Topics&lt;/h3&gt;- &lt;a href="http://www.linuxplanet.com/linuxplanet/tutorials/1527/1/"&gt;Security and Apache&lt;/a&gt;: An Essential Primer (LinuxPlanet.com)&lt;br /&gt;- &lt;a href="http://www.apacheweek.com/features/userauth"&gt;Using User Authentication&lt;/a&gt; from Apache Week.&lt;br /&gt;- Dirk Brockhausen's tutorials on &lt;a href="http://www.fantomaster.com/faarticles/modrewrite01.txt"&gt;mod_rewrite&lt;/a&gt; &lt;a href="http://www.fantomaster.com/faarticles/modrewrite02.txt"&gt;part 2&lt;/a&gt; &lt;a href="http://www.fantomaster.com/faarticles/modrewrite03.txt"&gt;part 3&lt;/a&gt; &lt;a href="http://www.fantomaster.com/faarticles/modrewrite04.txt"&gt;part 4&lt;/a&gt;&lt;br /&gt;- And you thought Apache was &lt;a href="http://www.zeus.com/"&gt;fast&lt;/a&gt;...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6585248230975977138-6794416841936688441?l=prashcom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prashcom.blogspot.com/feeds/6794416841936688441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6585248230975977138&amp;postID=6794416841936688441&amp;isPopup=true' title='236 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/6794416841936688441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/6794416841936688441'/><link rel='alternate' type='text/html' href='http://prashcom.blogspot.com/2007/11/tuning-php.html' title='Tuning PHP'/><author><name>Prashant Kumar</name><uri>http://www.blogger.com/profile/11617246666689581856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_AFwTPpbaxUQ/TF2fDIyq06I/AAAAAAAAAIs/M_RWaeYnq0c/S220/prashant.JPG'/></author><thr:total>236</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6585248230975977138.post-1654850820751953660</id><published>2007-10-05T01:32:00.000-07:00</published><updated>2011-02-19T22:47:02.634-08:00</updated><title type='text'>.htaccess on localhost</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The recent problem i faced when i was trying to run .htaccess file in my WAMP configuration. The script was working fine when it was live on server (as basic configuration was already there) but was giving 404 when i tried in localhost.&lt;br /&gt;&lt;br /&gt;After googling i found no answer so i want to help others in this small topic.&lt;br /&gt;&lt;br /&gt;The solution is very simple :&lt;br /&gt;&lt;br /&gt;If its Windows+Apache+Php+MySql (WAMP) type "Web-Developer Server Suite" then you only needs to search for a folder called Apache22. Under this folder we have several folders, the one which we needs to see is CONF. Now open "httpd.conf" in your favorite editor. Now here you needs to see few things :&lt;br /&gt;&lt;br /&gt;1. if "#LoadModule rewrite_module modules/mod_rewrite.so " mod is commented then remove the '#' from the beginning.&lt;br /&gt;&lt;br /&gt;2. Make sure "#LoadModule alias_module modules/mod_alias.so" is also not commented.&lt;br /&gt;&lt;br /&gt;The above two by default not commented so no need to worry for the first two.&lt;br /&gt;&lt;br /&gt;3. Now search for a word "AllowOverride" and make sure you have changed it to "AllowOverride All".&lt;br /&gt;&lt;br /&gt;4. And you done. Just restart the Apache and will run all fine, if your .htaccess has no error :)&lt;br /&gt;&lt;br /&gt;I hope this will be helpful for you all!!&lt;br /&gt;&lt;br /&gt;Prashant Kumar&lt;br /&gt;Software Professional&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6585248230975977138-1654850820751953660?l=prashcom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prashcom.blogspot.com/feeds/1654850820751953660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6585248230975977138&amp;postID=1654850820751953660&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/1654850820751953660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/1654850820751953660'/><link rel='alternate' type='text/html' href='http://prashcom.blogspot.com/2007/10/htaccess-on-localhost.html' title='.htaccess on localhost'/><author><name>Prashant Kumar</name><uri>http://www.blogger.com/profile/11617246666689581856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_AFwTPpbaxUQ/TF2fDIyq06I/AAAAAAAAAIs/M_RWaeYnq0c/S220/prashant.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6585248230975977138.post-1866318355041673130</id><published>2007-09-27T01:38:00.000-07:00</published><updated>2011-02-19T22:47:28.022-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Failed to Get Basic Authentication Headers'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Checkout'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Checkout Errors'/><title type='text'>Google Checkout  : Failed to Get Basic Authentication Headers</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: 180%;"&gt;&lt;blockquote&gt;Google Checkout : Send failed with code: 401. Response body was:  Failed to Get Basic Authentication Headers&lt;/blockquote&gt;&lt;/span&gt;The most common problem facing php file in Google Checkout is ResponseHandler.php. Many of us really don't know how exactly its working and behave. After few days of my r&amp;amp;d in Google Checkout i have the solution to fix the "Get Basic Authentication Headers" problem.&lt;br /&gt;&lt;br /&gt;I started running ResponseHandler.php against Google Checkout running under different situations and I ran into a problem with authentication when PHP was being run as a CGI under Apache. When running as a server module (mod_php) PHP takes care of decoding HTTP basic for you (see &lt;a href="http://us3.php.net/features.http-auth"&gt;HTTP basic authentication in PHP&lt;/a&gt;). When a using HTTP basic PHP will automatically populate $_SERVER[’PHP_AUTH_USER’] and $_SERVER[’PHP_AUTH_PW’] variables with the username and password that were provided. IF and ONLY IF PHP is being run as a server module (like mod_php). If you are running PHP as a CGI then those two variables won’t get created at all, ever, even when using HTTP basic authentication. And since you can’t do anything in WordPress via AtomPub without authenticating you are dead in the water. Well, not exactly.&lt;br /&gt;However, there is a workaround available which can make HTTP Auth for PHP working even when in CGI mode.&lt;br /&gt;&lt;br /&gt;1. Create one .htaccess file in the folder where your responsehandler.php file is :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;.htaccess file:&lt;br /&gt;&lt;br /&gt;&amp;lt;&amp;lt;&amp;lt;Start--- AuthName "Google checkout Basic Authentication" AuthType Basic AuthUserFile D:\\\\www\\\\webroot\\\\projectfolder\\\\googlelibraryforcheckout/.htpasswd&lt;br /&gt;require valid-user&lt;br /&gt;---End&amp;gt;&amp;gt;&amp;gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;2. Create one .htpasswd  file in the folder where your responsehandler.php file is :&lt;br /&gt;&lt;blockquote&gt;.htpasswd&lt;br /&gt;$merchant_id:$merchant_key&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;and now you need to disable few codes from googleresponse.php file :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;* googlecheckout/responsehandler.php folowing code will be disabled if&lt;br /&gt;* CGI config is set to True&lt;br /&gt;*&lt;br /&gt;*&lt;br /&gt;[CODE]&lt;br /&gt;//Parse the HTTP header to verify the source.&lt;br /&gt;if(isset($HTTP_SERVER_VARS['PHP_AUTH_USER']) &amp;amp;&amp;amp; isset($HTTP_SERVER_VARS['PHP_AUTH_PW'])) {&lt;br /&gt;$compare_mer_id = $HTTP_SERVER_VARS['PHP_AUTH_USER'];&lt;br /&gt;$compare_mer_key = $HTTP_SERVER_VARS['PHP_AUTH_PW'];&lt;br /&gt;}&lt;br /&gt;else {&lt;br /&gt;error_func("HTTP Basic Authentication failed.\n");&lt;br /&gt;exit(1);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if($compare_mer_id != $merchant_id || $compare_mer_key != $merchant_key) {&lt;br /&gt;error_func("HTTP Basic Authentication failed.\n");&lt;br /&gt;exit(1);&lt;br /&gt;}&lt;br /&gt;[/CODE] &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I hope this article will help you alot to work arround the Google Checkout's "Send failed with code: 401. Response body was:  Failed to Get Basic Authentication Headers"&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Prashant Kumar&lt;br /&gt;(If you have any problem then please write here i will try to solve all queries related to php and google / paypal chekckout)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6585248230975977138-1866318355041673130?l=prashcom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prashcom.blogspot.com/feeds/1866318355041673130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6585248230975977138&amp;postID=1866318355041673130&amp;isPopup=true' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/1866318355041673130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/1866318355041673130'/><link rel='alternate' type='text/html' href='http://prashcom.blogspot.com/2007/09/google-checkout-failed-to-get-basic.html' title='Google Checkout  : Failed to Get Basic Authentication Headers'/><author><name>Prashant Kumar</name><uri>http://www.blogger.com/profile/11617246666689581856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_AFwTPpbaxUQ/TF2fDIyq06I/AAAAAAAAAIs/M_RWaeYnq0c/S220/prashant.JPG'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6585248230975977138.post-4427726082918100975</id><published>2007-09-05T08:11:00.000-07:00</published><updated>2011-02-19T22:48:33.678-08:00</updated><title type='text'>Its really difficult to decide which framework works best for the project</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Hi All,&lt;br /&gt;&lt;br /&gt;When i was googling i found now we have with over &lt;a href="http://www.phpwact.org/php/mvc_frameworks"&gt;40 frameworks available.&lt;/a&gt;  So i am sure it's really difficult to decide which framework works best for our project, especially as each framework offers different functionality. So i did some r&amp;amp;d and able to make one table for you so you can decide what exact framework you are searching for. In these 40 framework i was only able to sort 10.&lt;br /&gt;&lt;br /&gt;So we can look at ten popular frameworks, and compare them to each other :&lt;br /&gt;&lt;br /&gt;&lt;table cellpadding="5" id="framework-chart" style="text-align: center;"&gt;&lt;tbody&gt;&lt;tr style="font-size: 70%;"&gt;&lt;th valign="bottom"&gt;Framework&lt;/th&gt; &lt;th valign="bottom"&gt;PHP4&lt;/th&gt; &lt;th valign="bottom"&gt;PHP5&lt;/th&gt; &lt;th&gt;MVC1&lt;/th&gt; &lt;th&gt;Multiple DB's2&lt;/th&gt; &lt;th&gt;ORM3&lt;/th&gt; &lt;th&gt;DB Objects4&lt;/th&gt; &lt;th&gt;Templates5&lt;/th&gt; &lt;th&gt;Caching6&lt;/th&gt; &lt;th&gt;Validation7&lt;/th&gt; &lt;th&gt;&lt;span style="text-decoration: underline;"&gt;Ajax8&lt;/span&gt;&lt;/th&gt; &lt;th&gt;Auth Module9&lt;/th&gt; &lt;th&gt;Modules10&lt;/th&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="http://framework.zend.com/"&gt;Zend Framework&lt;/a&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="http://www.cakephp.org/"&gt;CakePHP&lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="http://www.symfony-project.com/"&gt;Symfony Project&lt;/a&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="http://seagull.phpkitchen.com/"&gt;Seagull Framework&lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="http://www.phpwact.org/"&gt;WACT&lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="http://www.xisc.com/"&gt;Prado&lt;/a&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="http://phpontrax.com/"&gt;PHP on TRAX&lt;/a&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="http://zoopframework.com/"&gt;ZooP Framework&lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="http://ez.no/products/ez_components"&gt;eZ Components&lt;/a&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="http://www.codeigniter.com/"&gt;CodeIgniter&lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;-&lt;/td&gt; &lt;td&gt;&lt;img alt="YES" src="http://www.phpit.net/demo/framework%20comparison/checkmark.jpg" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;#1: Indicates whether the framework comes with inbuilt support for a Model-View-Controller setup.&lt;br /&gt;&lt;a href="" name="fr-footnote-2"&gt;&lt;/a&gt;#2: Indicates whether the framework supports multiple databases without having to change anything.&lt;br /&gt;&lt;a href="" name="fr-footnote-3"&gt;&lt;/a&gt;#3: Indicates whether the framework supports an object-record mapper, usually an implementation of ActiveRecord. &lt;br /&gt;&lt;a href="" name="fr-footnote-4"&gt;&lt;/a&gt;#4: Indicates whether the framework includes other database object, like a TableGateWay.&lt;br /&gt;&lt;a href="" name="fr-footnote-5"&gt;&lt;/a&gt;#5: Indicates whether the framework has an inbuilt template engine.&lt;br /&gt;&lt;a href="" name="fr-footnote-6"&gt;&lt;/a&gt;#6: Indicates whether the framework includes a caching object or some way other way of caching.&lt;br /&gt;&lt;a href="" name="fr-footnote-7"&gt;&lt;/a&gt;#7: Indicates whether the framework has an inbuilt validation or filtering component.&lt;br /&gt;&lt;a href="" name="fr-footnote-8"&gt;&lt;/a&gt;#8: Indicates whether the framework comes with inbuilt support for Ajax.&lt;br /&gt;&lt;a href="" name="fr-footnote-9"&gt;&lt;/a&gt;#9: Indicates whether the framework has an inbuilt module for handling user authentication.&lt;br /&gt;&lt;br /&gt;&lt;a href="" name="fr-footnote-10"&gt;&lt;/a&gt;#10: Indicates whether the framework has other modules, like an rss feed parser, PDF module or anything else (useful).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I hope this will help u to decide which one will be helpful for your project.&lt;br /&gt;&lt;br /&gt;Cheers!!&lt;br /&gt;Prashant Kumar&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6585248230975977138-4427726082918100975?l=prashcom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prashcom.blogspot.com/feeds/4427726082918100975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6585248230975977138&amp;postID=4427726082918100975&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/4427726082918100975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/4427726082918100975'/><link rel='alternate' type='text/html' href='http://prashcom.blogspot.com/2007/09/its-really-difficult-to-decide-which.html' title='Its really difficult to decide which framework works best for the project'/><author><name>Prashant Kumar</name><uri>http://www.blogger.com/profile/11617246666689581856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_AFwTPpbaxUQ/TF2fDIyq06I/AAAAAAAAAIs/M_RWaeYnq0c/S220/prashant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6585248230975977138.post-5101249857785689048</id><published>2007-08-29T01:57:00.000-07:00</published><updated>2011-02-19T22:48:48.509-08:00</updated><title type='text'>Php SetCookie : Reason behind Cannot modify header information - headers already sent by..</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Cannot modify header information - headers already sent by (output started at ...) is a very well known error returned by PHP. You would receive this error if you are trying to set the header of a page after the header has already been sent to the client. There are two main ways of getting around this error.&lt;br /&gt;&lt;br /&gt;How it really works: Every file that you request from the Internet comes with a header. This tells the browser how to handle that specific file. For example it could be a page that the browser will display or an executable that it will download. The header will contain information about what type of file this is.&lt;br /&gt;&lt;br /&gt;PHP sends the header of the web pages to the client each time a page is requested. If you change that header after it was already sent, PHP will return the "Cannot modify header information" error. Most of the time you change the header by using the header() function, as in the example below:&lt;br /&gt;&lt;br /&gt;header("Location: &lt;a href="http://www.example.com/"&gt;http://www.example.com&lt;/a&gt;");&lt;br /&gt;&lt;br /&gt;This tells the browser that it should open the URL http://www.example.com (thus get the header from there.) However if you place this line in the code after you already displayed the content, the headers have already been sent to the client. That's simply because even if you don't set your own header, each time you display anything on a page, even a blank space, PHP will send the headers for you. If you make use of the header() function after any such blank space or any other content for that matter, you'll be attempting to send a new header to the client, which is not possible.&lt;br /&gt;&lt;br /&gt;The same applies for other functions that attempt to change the header, such as setcookie() which - because the cookie travelers in the header - needs to be placed before any output is sent to the page.&lt;br /&gt;&lt;br /&gt;Solution #1 - no output before header(), setcookie() and other header setting functionsThus, the first solution to the "Cannot modify header information" error is to make sure you are not outputting any content at all before the call to the header() function.&lt;br /&gt;Solution #2 - ob_start() The second method consists in calling the ob_start() at the very top of the PHP script like this:&lt;br /&gt;&lt;br /&gt;ob_start();&lt;br /&gt;&lt;br /&gt;This will turn output buffering on. With output buffering the entire PHP script will be processed before any output is sent to the client. Thus all the PHP script will be aware of all the header changes and it will not send any headers until every line has been processed.ob_start() may appear to slow down the loading time on server intensive pages, because the client will not be presented with any fragment of the page until the page is fully processed.&lt;br /&gt;&lt;br /&gt;Prashant Kumar&lt;a href="http://www.choiceful.com/"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6585248230975977138-5101249857785689048?l=prashcom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prashcom.blogspot.com/feeds/5101249857785689048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6585248230975977138&amp;postID=5101249857785689048&amp;isPopup=true' title='53 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/5101249857785689048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/5101249857785689048'/><link rel='alternate' type='text/html' href='http://prashcom.blogspot.com/2007/08/php-setcookie-reason-behind-cannot.html' title='Php SetCookie : Reason behind Cannot modify header information - headers already sent by..'/><author><name>Prashant Kumar</name><uri>http://www.blogger.com/profile/11617246666689581856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_AFwTPpbaxUQ/TF2fDIyq06I/AAAAAAAAAIs/M_RWaeYnq0c/S220/prashant.JPG'/></author><thr:total>53</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6585248230975977138.post-49910020602972470</id><published>2007-07-11T05:47:00.000-07:00</published><updated>2007-07-11T05:53:13.155-07:00</updated><title type='text'>SEO : What should be the title tag for your business?</title><content type='html'>&lt;span style="font-size:85%;"&gt;  &lt;p&gt;&lt;b&gt;The html title tag&lt;/b&gt; of a web page's html header is the single most important "on page" element when it comes to search engine optimization. That being said, is the best use of this valuable real estate served by including your business name in the title? Chances are the answer is a resounding "no!"&lt;/p&gt; &lt;p&gt;&lt;b&gt;The title tag&lt;/b&gt; is an html tag which occurs in the header of a web page's code. The first thing I look at when I get a call from a prospective client is their title tag. More often than not, this tag is being used improperly, to the extreme detriment of the client.&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Recently SEOMOZ.org released&lt;/b&gt; its rankings of the ten most important factors in search engine rankings. The title tag came in at number 1, and this is no surprise to any SEO that has been around for awhile. Google especially pays a lot of attention to title tag content, and uses title tag information heavily to ascertain the relevant keyphrases for which to rank a site. The opinion of search engine experts is unanimous on this one - keyphrase use in the title tag is the number one "on page" factor affecting search engine rankings. This is not disputed, theorized or subject to professional debate. It is a fact.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;Given this fact, we must look at how to best use the title tag to optimize our site for search engines. Many sites place the business name in the title tag (or even worse yet leave it blank or with default content such as "untitled document" or "home page"). Any of these variations can be disastrous!&lt;script&gt;&lt;!-- D(["mb","\u003c/p\&gt;\n\u003cp\&gt;\u003cb\&gt;Let&amp;#39;s use an example\u003c/b\&gt; of a company that manufactures widgets. The primary keyphrase for that company would be &amp;quot;widgets&amp;quot;, this being the phrase for which the company would like to rank highly for in the search engines. Now let&amp;#39;s assume the company name is &amp;quot;ACME Manufacturing Company, Ltd.&amp;quot;. Notice that the word &amp;quot;widgets&amp;quot;, which is the desired keyphrase, is not extant in the company name.\u003c/p\&gt;\n\u003cp\&gt;So the company goes out and builds a wonderful web site to promote their widgets. However, throughout the site the title tag contains the following content: &amp;quot;ACME Manufacturing Company, Ltd.&amp;quot; What is the effect of this?\u003c/p\&gt;\n\n\u003c/font\&gt;\n     \u003cp\&gt;\u003cimg src\u003d\"http://www.entireweb.com/icons/advertisement.gif\" border\u003d\"0\" width\u003d\"120\" height\u003d\"10\" alt\u003d\"Advertisment\"\&gt;\u003cbr\&gt;\n     \u003ca href\u003d\"http://services.entireweb.com/newsadv/index.php?md\u003dclick&amp;uid\u003d1&amp;amp;cid\u003d599&amp;lid\u003d4532&amp;amp;id\u003d1113441b85981166f4942d045a45d665\" target\u003d\"_blank\" onclick\u003d\"return top.js.OpenExtLink(window,event,this)\"\&gt;\u003cimg src\u003d\"http://services.entireweb.com/images/m/issue_351/cbb.jpg\" width\u003d\"460\" height\u003d\"175\" border\u003d\"0\" alt\u003d\"Effective URL Submission!\"\&gt;\u003c/a\&gt;\u003c/p\&gt;\n\u003cfont size\u003d\"2\"\&gt;\n\n\u003cp\&gt;\u003cb\&gt;First off\u003c/b\&gt;, the effect of this is that the site will likely rank highly for the search query &amp;quot;ACME Manufacturing Company, Ltd.&amp;quot;. The problem is that nobody is searching for the company name, they are searching for widgets. So all of ACME&amp;#39;s competition shows up in the search engines for a widget query, but poor ACME is nowhere to be found. How do we help ACME rank highly for the search query &amp;quot;widgets&amp;quot;? We must optimize the title tag for the search engines by replacing the current title tag content with the desired search query: &amp;quot;widgets&amp;quot;.\u003c/p\&gt;\n\u003cp\&gt;\u003cb\&gt;Generally speaking\u003c/b\&gt;, the company name should never appear in the title tag unless you actually expect to derive most of your traffic from searches involving your company name. As this is a rare situation, avoid the temptation to put your company name in the title tag - save it for elsewhere on your page. Put your desired search keyphrases in the title tag, and leave it at that.",1] );  //--&gt;&lt;/script&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Let's use an example&lt;/b&gt; of a company that manufactures widgets. The primary keyphrase for that company would be "widgets", this being the phrase for which the company would like to rank highly for in the search engines. Now let's assume the company name is "ACME Manufacturing Company, Ltd.". Notice that the word "widgets", which is the desired keyphrase, is not extant in the company name.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;So the company goes out and builds a wonderful web site to promote their widgets. However, throughout the site the title tag contains the following content: "ACME Manufacturing Company, Ltd." What is the effect of this?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;First off&lt;/b&gt;, the effect of this is that the site will likely rank highly for the search query "ACME Manufacturing Company, Ltd.". The problem is that nobody is searching for the company name, they are searching for widgets. So all of ACME's competition shows up in the search engines for a widget query, but poor ACME is nowhere to be found. How do we help ACME rank highly for the search query "widgets"? We must optimize the title tag for the search engines by replacing the current title tag content with the desired search query: "widgets".&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Generally speaking&lt;/b&gt;, the company name should never appear in the title tag unless you actually expect to derive most of your traffic from searches involving your company name. As this is a rare situation, avoid the temptation to put your company name in the title tag - save it for elsewhere on your page. Put your desired search keyphrases in the title tag, and leave it at that.&lt;script&gt;&lt;!-- D(["mb","\u003c/p\&gt;\n\u003cp\&gt;\u003cb\&gt;Following this methodology\u003c/b\&gt; throughout your site by optimizing title tag content for each page according to the desired search query for that page will be a major step in the right direction for high search engine rankings.\u003c/p\&gt;\n\n\u003c/font\&gt;\n\u003cdiv align\u003d\"center\"\&gt;\u003chr size\u003d\"1\" width\u003d\"125\"\&gt;\u003c/div\&gt;\n\u003cp align\u003d\"left\"\&gt;\u003cfont size\u003d\"2\"\&gt;\u003cb\&gt;\u003ci\&gt;About the Author:\u003c/i\&gt;\u003c/b\&gt;\n\n\u003ci\&gt;Matt Foster is the President of ArteWorks SEO, a top 5 \u003ca href\u003d\"http://www.arteworks.biz/seo.php\" target\u003d\"_blank\" onclick\u003d\"return top.js.OpenExtLink(window,event,this)\"\&gt;search engine optimization company\u003c/a\&gt; in the world. For more information on \u003ca href\u003d\"http://www.arteworks.biz/\" target\u003d\"_blank\" onclick\u003d\"return top.js.OpenExtLink(window,event,this)\"\&gt;search engine optimization\u003c/a\&gt;, please visit \u003ca href\u003d\"http://www.arteworks.biz/\" target\u003d\"_blank\" onclick\u003d\"return top.js.OpenExtLink(window,event,this)\"\&gt;\u003ca href\u003d\"http://www.arteworks.biz\" target\u003d\"_blank\" onclick\u003d\"return top.js.OpenExtLink(window,event,this)\"\&gt;http://www.arteworks.biz\u003c/a\&gt;\u003c/a\&gt;.\u003c/i\&gt;\n\n\u003c/font\&gt;\u003c/p\&gt;\n\u003cbr\&gt;\n\u003cp\&gt;\u003cimg src\u003d\"http://www.entireweb.com/icons/advertisement.gif\" border\u003d\"0\" width\u003d\"120\" height\u003d\"10\" alt\u003d\"Advertisment\"\&gt;\u003cbr\&gt;\n\t\u003ca href\u003d\"http://services.entireweb.com/newsadv/index.php?md\u003dclick&amp;uid\u003d68&amp;amp;cid\u003d602&amp;lid\u003d4537&amp;amp;id\u003d1113441b85981166f4942d045a45d665\" target\u003d\"_blank\" onclick\u003d\"return top.js.OpenExtLink(window,event,this)\"\&gt;\n   \u003cimg border\u003d\"0\" width\u003d\"468\" height\u003d\"60\" src\u003d\"http://services.entireweb.com/images/m/issue_351/bb.gif\" alt\u003d\"Top 10 Google Rankings\"\&gt;\u003c/a\&gt;\n\u003c/p\&gt;\n\n\n\n             \u003c/td\&gt;\n             \u003ctd width\u003d\"1\"\&gt; \u003c/td\&gt;\n             \u003ctd align\u003d\"right\" valign\u003d\"top\" width\u003d\"163\"\&gt;\n\n\u003cp\&gt;\u003cimg src\u003d\"http://www.entireweb.com/icons/advertisement.gif\" border\u003d\"0\" width\u003d\"120\" height\u003d\"10\" alt\u003d\"Advertisment\"\&gt;\u003cbr\&gt;\n     \u003ca href\u003d\"http://services.entireweb.com/newsadv/index.php?md\u003dclick&amp;uid\u003d1&amp;amp;cid\u003d599&amp;lid\u003d4533&amp;amp;id\u003d1113441b85981166f4942d045a45d665\" target\u003d\"_blank\" onclick\u003d\"return top.js.OpenExtLink(window,event,this)\"\&gt;\u003cimg src\u003d\"http://services.entireweb.com/images/m/issue_351/rt.gif\" width\u003d\"160\" height\u003d\"600\" border\u003d\"0\" alt\u003d\"Where does your site rank?\" style\u003d\"border-width:1px;border-color:#C0C0C0;border-style:solid\"\&gt;",1] );  //--&gt;&lt;/script&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Following this methodology&lt;/b&gt; throughout your site by optimizing title tag content for each page according to the desired search query for that page will be a major step in the right direction for high search engine rankings.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6585248230975977138-49910020602972470?l=prashcom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prashcom.blogspot.com/feeds/49910020602972470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6585248230975977138&amp;postID=49910020602972470&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/49910020602972470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/49910020602972470'/><link rel='alternate' type='text/html' href='http://prashcom.blogspot.com/2007/07/seo-what-should-be-title-tag-for-your.html' title='SEO : What should be the title tag for your business?'/><author><name>Prashant Kumar</name><uri>http://www.blogger.com/profile/11617246666689581856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_AFwTPpbaxUQ/TF2fDIyq06I/AAAAAAAAAIs/M_RWaeYnq0c/S220/prashant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6585248230975977138.post-5047309815679492111</id><published>2007-05-13T07:03:00.000-07:00</published><updated>2011-02-19T22:50:20.083-08:00</updated><title type='text'>How to configure debugbreak in NuSphere / php</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Hi,&lt;br /&gt;Today i have configured debugbreak for my php programming. I installed it in my Apache server, after googling here and there, i got success within 3 hrs (because lack of information available in Web).&lt;br /&gt;&lt;br /&gt;Its really very easy to configure debugbreak in NuSphere. Just follow this simple steps :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Download &lt;a href="http://www.nusphere.com/products/dbg_wizard_download.htm"&gt;&lt;span style="font-weight: bold;"&gt;dbg-wizard.php from here.&lt;br /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Put this downloaded file under www/webroot/ and run from browser : http://localhost/dbg-wizard.php&lt;/li&gt;&lt;li&gt;Follow the simple steps...  i am sure you will be able to configure debugbreak very smoothly using this file. Here we need to enter few lines in php.ini(located under c:/windows/php.ini) and need to paste one module  from  C:\Program Files\nusphere\phped\debugger\server\  to www/php5/ext/&lt;/li&gt;&lt;/ol&gt;I hope this article will help my juniors to configure debugbreak very quickly and easily.&lt;br /&gt;&lt;br /&gt;I need your valuable comment on this post.&lt;br /&gt;&lt;br /&gt;Thanks&lt;br /&gt;Prashant Kumar&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6585248230975977138-5047309815679492111?l=prashcom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prashcom.blogspot.com/feeds/5047309815679492111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6585248230975977138&amp;postID=5047309815679492111&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/5047309815679492111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/5047309815679492111'/><link rel='alternate' type='text/html' href='http://prashcom.blogspot.com/2007/05/how-to-install-debugbreak-in-nusphere.html' title='How to configure debugbreak in NuSphere / php'/><author><name>Prashant Kumar</name><uri>http://www.blogger.com/profile/11617246666689581856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_AFwTPpbaxUQ/TF2fDIyq06I/AAAAAAAAAIs/M_RWaeYnq0c/S220/prashant.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6585248230975977138.post-8439451397072887621</id><published>2007-05-03T02:30:00.000-07:00</published><updated>2007-05-03T02:37:49.811-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SEO Help'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Master World'/><title type='text'>SEO Help</title><content type='html'>&lt;p&gt;Because today i don't have much work so i have gone through with &lt;b&gt;SEO realted stuffs&lt;/b&gt; and found it very interesting, so i am sharing all the important issues with you all. These tip will help you to rank your site in google and all other web directories.&lt;/p&gt; &lt;p&gt;&lt;b&gt;What is SEO :&lt;/b&gt;&lt;b&gt;&lt;a href="http://en.wikipedia.org/wiki/Search_engine_optimization" mce_href="http://en.wikipedia.org/wiki/Search_engine_optimization"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href="http://en.wikipedia.org/wiki/Search_engine_optimization" mce_href="http://en.wikipedia.org/wiki/Search_engine_optimization"&gt;Definition from Wiki Pedia&lt;/a&gt;&lt;/b&gt; : &lt;b&gt;Search engine optimization&lt;/b&gt; (&lt;b&gt;SEO&lt;/b&gt;), a subset of &lt;a href="http://en.wikipedia.org/wiki/Search_engine_marketing" mce_href="http://en.wikipedia.org/wiki/Search_engine_marketing" title="Search engine marketing"&gt;search engine marketing&lt;/a&gt;, is the process of improving the volume and quality of traffic to a &lt;a href="http://en.wikipedia.org/wiki/Web_site" mce_href="http://en.wikipedia.org/wiki/Web_site" title="Web site"&gt;web site&lt;/a&gt; from search engines via "natural" ("organic" or "algorithmic") &lt;a href="http://en.wikipedia.org/wiki/Search_engine_results_page" mce_href="http://en.wikipedia.org/wiki/Search_engine_results_page" title="Search engine results page"&gt;search results&lt;/a&gt;. SEO can also target specialized searches such as &lt;a href="http://en.wikipedia.org/wiki/Image_search" mce_href="http://en.wikipedia.org/wiki/Image_search" title="Image search"&gt;image search&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Local_search_%28Internet%29" mce_href="http://en.wikipedia.org/wiki/Local_search_%28Internet%29" title="Local search (Internet)"&gt;local search&lt;/a&gt;, and industry-specific &lt;a href="http://en.wikipedia.org/wiki/Vertical_search" mce_href="http://en.wikipedia.org/wiki/Vertical_search" title="Vertical search"&gt;vertical search&lt;/a&gt; engines.  SEO is &lt;a href="http://en.wikipedia.org/wiki/Marketing" mce_href="http://en.wikipedia.org/wiki/Marketing" title="Marketing"&gt;marketing&lt;/a&gt; by understanding how search &lt;a href="http://en.wikipedia.org/wiki/Algorithms" mce_href="http://en.wikipedia.org/wiki/Algorithms" title="Algorithms"&gt;algorithms&lt;/a&gt; work and what human visitors might search for, to help match those visitors with sites offering what they are interested in finding. Some SEO efforts may involve optimizing a site's coding, presentation, and structure, without making very noticeable changes to human visitors, such as incorporating a clear hierarchical structure to a site, and avoiding or fixing problems that might keep search engine indexing programs from fully &lt;a href="http://en.wikipedia.org/wiki/Spidering" mce_href="http://en.wikipedia.org/wiki/Spidering" title="Spidering"&gt;spidering&lt;/a&gt; a site. Other, more noticeable efforts, involve including unique content on pages that can be easily indexed and extracted from those pages by search engines while also appealing to human visitors.The term SEO can also refer to "search engine optimizers," a term adopted by an industry of &lt;a href="http://en.wikipedia.org/wiki/Consultants" mce_href="http://en.wikipedia.org/wiki/Consultants" title="Consultants"&gt;consultants&lt;/a&gt; who carry out optimization projects on behalf of clients, and by employees of site owners who may perform SEO services in-house. Search engine optimizers often offer SEO as a stand-alone service or as a part of a larger marketing campaign. Because effective SEO can require making changes to the source code of a site, it is often very helpful when incorporated into the initial development and design of a site, leading to the use of the term "Search Engine Friendly" to describe designs, menus, &lt;a href="http://en.wikipedia.org/wiki/Content_management_systems" mce_href="http://en.wikipedia.org/wiki/Content_management_systems" title="Content management systems"&gt;content management systems&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Shopping_cart_software" mce_href="http://en.wikipedia.org/wiki/Shopping_cart_software" title="Shopping cart software"&gt;shopping carts&lt;/a&gt; that can be optimized easily and effectively.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;The basic SEO rules for New Sites:&lt;/b&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Go through the Google &lt;span style="font-size:85%;"&gt; &lt;a href="http://www.google.com/support/webmasters/bin/answer.py?answer=35769" mce_href="http://www.google.com/support/webmasters/bin/answer.py?answer=35769"&gt;Webmaster Guidelines&lt;/a&gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li  style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;Optimize your content with keyword. Use &lt;a href="https://adwords.google.com/select/KeywordToolExternal" mce_href="https://adwords.google.com/select/KeywordToolExternal"&gt;this tool&lt;/a&gt; to know how much the word is searched in google.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Try to get back links for related site. This will help you to give rank in google.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Put &lt;a href="http://www.google.com/analytics/" mce_href="http://www.google.com/analytics/"&gt;Google Analytics&lt;/a&gt; code in your pages to know the user's activity.&lt;/span&gt;&lt;span style="font-size:0;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;  &lt;p&gt;&lt;b&gt;Web Master Toolkits :&lt;/b&gt;&lt;/p&gt; &lt;ol&gt;&lt;li&gt;&lt;a href="http://www.google.com/webmasters/" mce_href="http://www.google.com/webmasters/"&gt;Google Webmaster&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://video.google.com/videoplay?docid=4526554928294588907" mce_href="http://video.google.com/videoplay?docid=4526554928294588907"&gt;Videos For WebMasters&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://googlewebmastercentral.blogspot.com/2007/02/discover-your-links.html" mce_href="http://googlewebmastercentral.blogspot.com/2007/02/discover-your-links.html"&gt;Google Central Blog&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.seochat.com/" mce_href="http://www.seochat.com/"&gt;SEO Articles&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://www.google.com/support/webmasters/bin/answer.py?answer=35291" mce_href="http://www.google.com/support/webmasters/bin/answer.py?answer=35291"&gt;What's an SEO&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://www.seomoz.org/article/search-ranking-factors" mce_href="http://www.seomoz.org/article/search-ranking-factors"&gt;Search Ranking Factors&lt;/a&gt;  &lt;a href="http://www.seomoz.org/articles" mce_href="http://www.seomoz.org/articles"&gt;Article&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://www.webworkshop.net/pagerank.html" mce_href="http://www.webworkshop.net/pagerank.html"&gt;Page Rank Calculation&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://groups.google.com/group/Google_Webmaster_Help" mce_href="http://groups.google.com/group/Google_Webmaster_Help"&gt;Google Web Master Help Desk&lt;/a&gt; &lt;a href="http://googleblog.blogspot.com/2005/06/webmaster-friendly.html" mce_href="http://googleblog.blogspot.com/2005/06/webmaster-friendly.html"&gt;Webmaster-friendly&lt;/a&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.mattcutts.com/blog/" mce_href="http://www.mattcutts.com/blog/"&gt;Matt Cutts Blog&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.webmaster-toolkit.com/" mce_href="http://www.webmaster-toolkit.com/"&gt;Webmaster ToolKit&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;b&gt;Analise your Web Pages :&lt;/b&gt;&lt;/p&gt; &lt;p&gt;Its important to know the behavior of your visitors. For that its very much important to put some code inside the pages to track the visitors and find out how they are navigating throughout the site. There are too many free web tools available for this, like :&lt;/p&gt; &lt;ol&gt;&lt;li&gt;&lt;a href="http://www.google.com/analytics/" mce_href="http://www.google.com/analytics/"&gt;Google Analytics&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.onestat.com/" mce_href="http://www.onestat.com/"&gt;Free website statistics - 1&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.free-webmaster-tools.com/" mce_href="http://www.free-webmaster-tools.com/"&gt;Free website statistics - 2&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;b&gt;How to Advertise/Earn in/from Google:&lt;/b&gt;&lt;/p&gt; &lt;ol&gt;&lt;li&gt;&lt;span style=""&gt;&lt;a href="http://www.google.com/ads/" mce_href="http://www.google.com/ads/"&gt;Google Advertising Programs&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;b&gt;Good Online Tutorials in SEO :&lt;/b&gt;&lt;/p&gt; &lt;ol&gt;&lt;li&gt;&lt;a href="http://www.seobook.com/" mce_href="http://www.seobook.com/"&gt;SEO Tutorials -1 [seobook]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://seo-tutorial.seoadministrator.com/" mce_href="http://seo-tutorial.seoadministrator.com/"&gt;SEO Tutorials - 2 [seo administrator]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.seo-gold.com/seo-tutorial/" mce_href="http://www.seo-gold.com/seo-tutorial/"&gt;SEO Tutorials - 3 [SEO-Gold]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://searchengineoptimism.com/SEO_Tutorial/" mce_href="http://searchengineoptimism.com/SEO_Tutorial/"&gt;SEO Tutorials - 4 [SEO Optimism]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.webconfs.com/seo-tutorial/" mce_href="http://www.webconfs.com/seo-tutorial/"&gt;SEO Tutorials - 5 [Web Confs]&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;I am sure this will give you the overall about SEO.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6585248230975977138-8439451397072887621?l=prashcom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prashcom.blogspot.com/feeds/8439451397072887621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6585248230975977138&amp;postID=8439451397072887621&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/8439451397072887621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6585248230975977138/posts/default/8439451397072887621'/><link rel='alternate' type='text/html' href='http://prashcom.blogspot.com/2007/05/seo-help.html' title='SEO Help'/><author><name>Prashant Kumar</name><uri>http://www.blogger.com/profile/11617246666689581856</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_AFwTPpbaxUQ/TF2fDIyq06I/AAAAAAAAAIs/M_RWaeYnq0c/S220/prashant.JPG'/></author><thr:total>2</thr:total></entry></feed>
