<?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-513970088689012845</id><updated>2011-08-16T20:13:01.334-07:00</updated><category term='Search Engine Optimisation'/><category term='lamp'/><category term='xampp'/><category term='phpBB3'/><category term='mamp'/><category term='easyphp'/><category term='SEO'/><category term='wamp'/><category term='Search Engines'/><category term='Duplicate Content'/><category term='localhost'/><category term='Google'/><title type='text'>phpBB Academy</title><subtitle type='html'>Learn how to code and create MODs for phpBB3 - Simple to Advanced coding techniques and help guide</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://phpbbacademy.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/513970088689012845/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://phpbbacademy.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Highway of Life</name><uri>http://www.blogger.com/profile/04596363922293037203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://bp3.blogger.com/_3dhNwdMGhY0/SCjLh9Pq0mI/AAAAAAAAAAM/ryv7qlTR5zo/S220/Picard140x150.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-513970088689012845.post-6988298946773911865</id><published>2008-08-19T22:57:00.000-07:00</published><updated>2008-08-19T23:43:01.044-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Search Engines'/><category scheme='http://www.blogger.com/atom/ns#' term='Duplicate Content'/><category scheme='http://www.blogger.com/atom/ns#' term='SEO'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Search Engine Optimisation'/><category scheme='http://www.blogger.com/atom/ns#' term='phpBB3'/><title type='text'>SEO Problems and Solutions to improve optimisation within phpBB3</title><content type='html'>Many people think that SEO is basically using or implementing &lt;span style="font-style: italic"&gt;Human Readable&lt;/span&gt; URLs. However, this is not encompassing of “SEO” at all, it is one small part of SEO, and is generally grossly misunderstood. Many people believe that &lt;span style="font-style: italic"&gt;Human Readable&lt;/span&gt; URLs are the only way that Search Engines can correctly index a site, or that it is the best method for spiders to index the site. Or that Dynamic URLs somehow hurt your Search Engine Ranking or performance within Search Engines. But this is not the case. &lt;span style="font-style: italic"&gt;Human Readable&lt;/span&gt; URLs mainly benefit Search Engines as added Keywords within the page, this &lt;span style="font-style: italic"&gt;only&lt;/span&gt; reinforces the keywords already set by the page and topic title, which Search Engines already use for the index.&lt;br /&gt;Search Engines have just as easy of a time indexing dynamic URLs as they will with &lt;span style="font-style: italic"&gt;Human Readable&lt;/span&gt; static URLs. The benefit is minimal.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold"&gt;SEO is Dead! Long Live SEO!&lt;/span&gt;&lt;br /&gt;The other side of the coin is the people who think that you really don’t need to do any Optimisation (SEO) at all. These are people who don’t think that any form of Optimisation can have any sort of positive impact on your site. They have usually never been in the SEO industry, and instead just hear all the hype from people talking about SEO. They believe that SEO no longer applies to today’s world of the internet. But these people do not truly understand what SEO means or what it is meant to do, and they are talking out of inexperience or ignorance.&lt;br /&gt;&lt;br /&gt;This post is meant to address both sides of the argument by giving people a better understanding of what SEO is and it’s place within phpBB3. It also includes problems identified within phpBB3 itself with regards to Search Engine performance and solutions to address these issues.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold"&gt;What is SEO?&lt;/span&gt;&lt;br /&gt;SEO (Search Engine Optimisation) is defined as &lt;span style="font-style: italic"&gt;any&lt;/span&gt; action or adjustment, also known as &lt;span style="font-style: italic"&gt;Optimisation&lt;/span&gt; that you perform on your site for the purpose of improving the volume and quality of traffic to your site or board from search engines by utilising search results for targeted keywords, and can include one or many possible methods. From implementing Human Readable URLs and Keyword targeting, to Marketing, to adding a no-index page or directory to your robots.txt file.&lt;br /&gt;All of this is Search Engine Optimisation (SEO).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold"&gt;How does phpBB3 Handle SEO?&lt;/span&gt;&lt;br /&gt;phpBB3, out of the box, has good Search Engine Optimisation (SEO) capabilities. It handles BOT sessions appropriately, and it hides completely useless content such as forms, links to profiles, or links that spiders should not or could not access, also known as “dead links”, among a few other things. Some of these are just meant to improve the performance of spiders indexing the site, from not displaying useless content, which can cut down on the HTTP requests and bandwidth, to showing useless items such as forms. But that’s about the extent of it. There is so much more that one can do to optimise phpBB3 for best Search Engine capability. Many methods that people I believe are not aware of yet.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold"&gt;What is the main issue of SEO within phpBB3?&lt;/span&gt;&lt;br /&gt;Within phpBB3, the main issue with Optimisation is duplicate content. No, not the kind of duplicate content that will get you penalised or banned from Google (that’s a whole other post), but the kind of duplicate content that distorts search results and causes slightly higher bandwidth because the spider is indexing and re-indexing the same exact content as separate pages within it’s index. Then the search results for this single page instead display as multiple results of the exact same page, which defeats the purpose of good search results and degrades the effectiveness of those results.&lt;br /&gt;&lt;br /&gt;How can this be improved? First the problem must be completely understood. When a spider crawls your board, from the index page, it looks at all the links: There are links to the Categories, Forums, Subforums, and also the last post of that particular forum. Upon entering a forum, it sees a list of links to topics, up to four pages within a single topic, and again the last post within that topic. Upon entering the topic, it will see a whole other &lt;span style="font-style: italic"&gt;page&lt;/span&gt; through the print option.&lt;br /&gt;&lt;br /&gt;The idea is that we want the spider to index the topic in pages, and to do this, the spider has to see the exact same URL, dynamic or static of the pages for that topic. If it sees different URLs (such as those containing the p -post- variable), it considers the page a completely new page and it indexes it as such. But the last post URL on the index, and category views, as well as the last post within a specific topic shows the spider that there are far more pages to your forum than there really are. Thus causing multiple indexing of the same content.&lt;br /&gt;&lt;br /&gt;Secondly, users will post links directly to a post within a topic, this URL may contain parameters other than the forum id, topic id and the start variable, which the spider should only recognising. It may see multiple parameters including: sort key, sort direction, order, session id, post id, print view, and highlighting.&lt;br /&gt;&lt;br /&gt;Each new variable thrown in that is different from the last time it indexed this topic and page will mean a completely new page and thus another indexing pass by the spider. Further diluting search results for keywords or content for this page and again repeatedly consuming bandwidth over the same content.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold"&gt;The Solution for Duplicate Content within phpBB3&lt;/span&gt;&lt;br /&gt;Now that we understand the problem, what is the solution?&lt;br /&gt;There are two methods that can be used to improve the optimisation with the duplicate content issue within phpBB3.&lt;br /&gt;First, by removing (hiding) the links to the last post within the topics and forums.&lt;br /&gt;Second, by filtering out all parameters except for the topic_id and the start variable for bots only -- and perhaps enforcing the forum_id, but it has to be consistent, one way or another. Remember that every variable added means a new page to the Search Engines including Google. -- This type of change means basically redirecting the page on viewtopic for spiders if the parameters are not those strictly allowed, this kind of change is something that can increase the number of HTTP Requests if overused, but may be necessary to improve the optimisation, and due to the decreased repeated indexing, may result in fewer HTTP Requests, so it may even itself out in the end. But this change should &lt;span style="font-weight: bold"&gt;only&lt;/span&gt; be performed for spiders and bots, as it would be a detriment to the user attempting to navigate your board if they experience this effect.&lt;br /&gt;&lt;br /&gt;These changes will be far more beneficial for Search Engines than any Human Readable URLs change will have. Implementing Human Readable URLs &lt;span style="font-style: italic"&gt;can&lt;/span&gt; have a negative impact on this issue if Bots are still allowed to index the dynamic URLs, thus throwing in additional &lt;span style="font-style: italic"&gt;pages&lt;/span&gt; to what the Search Engines already see.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/513970088689012845-6988298946773911865?l=phpbbacademy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://startrekguide.com/blog/Highway%20of%20Life/seo_problems_and_solutions_to_improve_optimisation_within_phpbb3_b-123.html' title='SEO Problems and Solutions to improve optimisation within phpBB3'/><link rel='replies' type='application/atom+xml' href='http://phpbbacademy.blogspot.com/feeds/6988298946773911865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=513970088689012845&amp;postID=6988298946773911865' title='42 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/513970088689012845/posts/default/6988298946773911865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/513970088689012845/posts/default/6988298946773911865'/><link rel='alternate' type='text/html' href='http://phpbbacademy.blogspot.com/2008/08/seo-problems-and-solutions-to-improve.html' title='SEO Problems and Solutions to improve optimisation within phpBB3'/><author><name>Highway of Life</name><uri>http://www.blogger.com/profile/04596363922293037203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://bp3.blogger.com/_3dhNwdMGhY0/SCjLh9Pq0mI/AAAAAAAAAAM/ryv7qlTR5zo/S220/Picard140x150.jpg'/></author><thr:total>42</thr:total></entry><entry><id>tag:blogger.com,1999:blog-513970088689012845.post-1519261125732167376</id><published>2008-05-14T20:07:00.000-07:00</published><updated>2008-05-14T20:08:11.405-07:00</updated><title type='text'>Performance difference using mysql_real_escape_string versus intval</title><content type='html'>Someone asked me today what the performance difference would be if they used &lt;code style="color:green;"&gt;mysql_real_escape_string()&lt;/code&gt; on all of their variable inputs into a database instead of casting to variable type integers for the int inputs.&lt;br /&gt;
I created the below bechmark test to demonstrate what performance differences there would be in using each of the possible functions in such a situation.&lt;br /&gt;
&lt;br /&gt;
It’s important to note that &lt;em&gt;all&lt;/em&gt; user input variables that are intended to be &lt;strong&gt;strings&lt;/strong&gt; go through the &lt;code style="color:green;"&gt;mysql_real_escape_string()&lt;/code&gt; function to ensure proper sanitisation for those strings.&lt;br /&gt;
But for integers, what about those? should we use the &lt;code style="color:green;"&gt;mysql_real_escape_string()&lt;/code&gt; function on them, or should we cast the variable type int?&lt;br /&gt;
Lets find out what the performance differences are:&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;PHP Code:&lt;/div&gt;
 &lt;div class="alt2" dir="ltr" style="
  margin: 0px;
  padding: 6px;
  border: 1px inset;
  width: 500px;
  height: 498px;
  text-align: left;
  overflow: auto"&gt;
  &lt;code style="white-space:nowrap"&gt;
   &lt;!-- php buffer start --&gt;&lt;code&gt;&lt;span style="color: #000000"&gt;
&lt;span style="color: #0000BB"&gt;&amp;lt;?php
&lt;br /&gt;
&lt;br /&gt;$link&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;mysql_connect&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #DD0000"&gt;'localhost'&lt;/span&gt;&lt;span style="color: #007700"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;'username'&lt;/span&gt;&lt;span style="color: #007700"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;'password'&lt;/span&gt;&lt;span style="color: #007700"&gt;);
&lt;br /&gt;if&amp;nbsp;(!&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$link&lt;/span&gt;&lt;span style="color: #007700"&gt;)
&lt;br /&gt;{
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;die(&lt;/span&gt;&lt;span style="color: #DD0000"&gt;'Could&amp;nbsp;not&amp;nbsp;connect:&amp;nbsp;'&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;.&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;mysql_error&lt;/span&gt;&lt;span style="color: #007700"&gt;());
&lt;br /&gt;}
&lt;br /&gt;echo&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"Connected&amp;nbsp;successfully&amp;lt;br&amp;nbsp;/&amp;gt;\n"&lt;/span&gt;&lt;span style="color: #007700"&gt;;
&lt;br /&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$string&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"12345'?;/FOO/FUM\';Example&amp;nbsp;String&amp;nbsp;="&lt;/span&gt;&lt;span style="color: #007700"&gt;;
&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$num&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;500000&lt;/span&gt;&lt;span style="color: #007700"&gt;;
&lt;br /&gt;echo&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"benchmark:&amp;nbsp;Begin&amp;lt;br&amp;nbsp;/&amp;gt;\n"&lt;/span&gt;&lt;span style="color: #007700"&gt;;
&lt;br /&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$start_time&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;microtime&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;true&lt;/span&gt;&lt;span style="color: #007700"&gt;);
&lt;br /&gt;
&lt;br /&gt;for&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$i&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;0&lt;/span&gt;&lt;span style="color: #007700"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$i&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;&amp;lt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$num&lt;/span&gt;&lt;span style="color: #007700"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$i&lt;/span&gt;&lt;span style="color: #007700"&gt;++)
&lt;br /&gt;{
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$escaped&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;mysql_real_escape_string&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$string&lt;/span&gt;&lt;span style="color: #007700"&gt;);
&lt;br /&gt;}
&lt;br /&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$escape_benchmark&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;microtime&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;true&lt;/span&gt;&lt;span style="color: #007700"&gt;)&amp;nbsp;-&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$start_time&lt;/span&gt;&lt;span style="color: #007700"&gt;;
&lt;br /&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$start_time&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;microtime&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;true&lt;/span&gt;&lt;span style="color: #007700"&gt;);
&lt;br /&gt;
&lt;br /&gt;for&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$i&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;0&lt;/span&gt;&lt;span style="color: #007700"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$i&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;&amp;lt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$num&lt;/span&gt;&lt;span style="color: #007700"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$i&lt;/span&gt;&lt;span style="color: #007700"&gt;++)
&lt;br /&gt;{
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$intval&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;intval&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$string&lt;/span&gt;&lt;span style="color: #007700"&gt;);
&lt;br /&gt;}
&lt;br /&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$intval_benchmark&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;microtime&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;true&lt;/span&gt;&lt;span style="color: #007700"&gt;)&amp;nbsp;-&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$start_time&lt;/span&gt;&lt;span style="color: #007700"&gt;;
&lt;br /&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$start_time&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;microtime&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;true&lt;/span&gt;&lt;span style="color: #007700"&gt;);
&lt;br /&gt;
&lt;br /&gt;for&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$i&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;0&lt;/span&gt;&lt;span style="color: #007700"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$i&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;&amp;lt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$num&lt;/span&gt;&lt;span style="color: #007700"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$i&lt;/span&gt;&lt;span style="color: #007700"&gt;++)
&lt;br /&gt;{
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$int&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;=&amp;nbsp;(int)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$string&lt;/span&gt;&lt;span style="color: #007700"&gt;;
&lt;br /&gt;}
&lt;br /&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$int_benchmark&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;microtime&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;true&lt;/span&gt;&lt;span style="color: #007700"&gt;)&amp;nbsp;-&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$start_time&lt;/span&gt;&lt;span style="color: #007700"&gt;;
&lt;br /&gt;
&lt;br /&gt;echo&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"escape_string&amp;nbsp;time:&amp;nbsp;$escape_benchmark&amp;nbsp;&amp;lt;br&amp;nbsp;/&amp;gt;\n"&lt;/span&gt;&lt;span style="color: #007700"&gt;;
&lt;br /&gt;echo&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"intval&amp;nbsp;time:&amp;nbsp;$intval_benchmark&amp;nbsp;&amp;lt;br&amp;nbsp;/&amp;gt;\n"&lt;/span&gt;&lt;span style="color: #007700"&gt;;
&lt;br /&gt;echo&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"int&amp;nbsp;time:&amp;nbsp;$int_benchmark&amp;nbsp;&amp;lt;br&amp;nbsp;/&amp;gt;\n"&lt;/span&gt;&lt;span style="color: #007700"&gt;;
&lt;br /&gt;
&lt;br /&gt;echo&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;'intval&amp;nbsp;vs&amp;nbsp;escape_string&amp;nbsp;difference:&amp;nbsp;'&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;.&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$escape_benchmark&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;-&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$intval_benchmark&lt;/span&gt;&lt;span style="color: #007700"&gt;)&amp;nbsp;.&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"&amp;lt;br&amp;nbsp;/&amp;gt;\n"&lt;/span&gt;&lt;span style="color: #007700"&gt;;
&lt;br /&gt;echo&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;'int&amp;nbsp;vs&amp;nbsp;escape_string&amp;nbsp;difference:&amp;nbsp;'&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;.&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$escape_benchmark&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;-&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$int_benchmark&lt;/span&gt;&lt;span style="color: #007700"&gt;)&amp;nbsp;.&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"&amp;lt;br&amp;nbsp;/&amp;gt;\n"&lt;/span&gt;&lt;span style="color: #007700"&gt;;
&lt;br /&gt;echo&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;'int&amp;nbsp;vs&amp;nbsp;intval&amp;nbsp;difference:&amp;nbsp;'&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;.&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$intval_benchmark&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;-&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$int_benchmark&lt;/span&gt;&lt;span style="color: #007700"&gt;)&amp;nbsp;.&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"&amp;lt;br&amp;nbsp;/&amp;gt;\n"&lt;/span&gt;&lt;span style="color: #007700"&gt;;
&lt;br /&gt;
&lt;br /&gt;echo&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;'Percent&amp;nbsp;faster&amp;nbsp;intval&amp;nbsp;is&amp;nbsp;than&amp;nbsp;escape:&amp;nbsp;'&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;.&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;round&lt;/span&gt;&lt;span style="color: #007700"&gt;((&lt;/span&gt;&lt;span style="color: #0000BB"&gt;1&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;-&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$intval_benchmark&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;/&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$escape_benchmark&lt;/span&gt;&lt;span style="color: #007700"&gt;))&amp;nbsp;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;100&lt;/span&gt;&lt;span style="color: #007700"&gt;)&amp;nbsp;.&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"%&amp;lt;br&amp;nbsp;/&amp;gt;\n"&lt;/span&gt;&lt;span style="color: #007700"&gt;;
&lt;br /&gt;echo&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;'Percent&amp;nbsp;faster&amp;nbsp;int&amp;nbsp;is&amp;nbsp;than&amp;nbsp;escape:&amp;nbsp;'&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;.&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;round&lt;/span&gt;&lt;span style="color: #007700"&gt;((&lt;/span&gt;&lt;span style="color: #0000BB"&gt;1&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;-&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$int_benchmark&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;/&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$escape_benchmark&lt;/span&gt;&lt;span style="color: #007700"&gt;))&amp;nbsp;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;100&lt;/span&gt;&lt;span style="color: #007700"&gt;)&amp;nbsp;.&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"%&amp;lt;br&amp;nbsp;/&amp;gt;\n"&lt;/span&gt;&lt;span style="color: #007700"&gt;;
&lt;br /&gt;echo&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;'Percent&amp;nbsp;faster&amp;nbsp;int&amp;nbsp;is&amp;nbsp;than&amp;nbsp;intval:&amp;nbsp;'&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;.&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;round&lt;/span&gt;&lt;span style="color: #007700"&gt;((&lt;/span&gt;&lt;span style="color: #0000BB"&gt;1&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;-&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$int_benchmark&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;/&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$intval_benchmark&lt;/span&gt;&lt;span style="color: #007700"&gt;))&amp;nbsp;*&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;100&lt;/span&gt;&lt;span style="color: #007700"&gt;)&amp;nbsp;.&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"%&amp;lt;br&amp;nbsp;/&amp;gt;\n"&lt;/span&gt;&lt;span style="color: #007700"&gt;;
&lt;br /&gt;echo&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"&amp;lt;br&amp;nbsp;/&amp;gt;\nThe&amp;nbsp;result&amp;nbsp;of&amp;nbsp;the&amp;nbsp;sanitisation:&amp;lt;br&amp;nbsp;/&amp;gt;\n"&lt;/span&gt;&lt;span style="color: #007700"&gt;;
&lt;br /&gt;echo&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"escape_string:&amp;nbsp;$escaped&amp;nbsp;&amp;lt;br&amp;nbsp;/&amp;gt;\n"&lt;/span&gt;&lt;span style="color: #007700"&gt;;
&lt;br /&gt;echo&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;"intval&amp;nbsp;func:&amp;nbsp;$intval&amp;nbsp;&amp;lt;br&amp;nbsp;/&amp;gt;\n"&lt;/span&gt;&lt;span style="color: #007700"&gt;;
&lt;br /&gt;echo&amp;nbsp;&lt;/span&gt;&lt;span style="color: #DD0000"&gt;'cast&amp;nbsp;int:&amp;nbsp;'&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700"&gt;.&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$int&lt;/span&gt;&lt;span style="color: #007700"&gt;;
&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;mysql_close&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$link&lt;/span&gt;&lt;span style="color: #007700"&gt;);
&lt;br /&gt;
&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;?&amp;gt;&lt;/span&gt;
&lt;/span&gt;
&lt;/code&gt;&lt;!-- php buffer end --&gt;
  &lt;/code&gt;
 &lt;/div&gt;
&lt;/div&gt;&lt;h3&gt;Result:&lt;/h3&gt;
Connected successfully&lt;br /&gt;
benchmark: Begin&lt;br /&gt;
&lt;pre&gt;escape_string time: 0.697912931442
intval time:  0.349272966385
int time:   0.16778588295

intval vs escape_string difference: 0.348639965057
int vs escape_string difference: 0.530127048492
int vs intval difference:   0.181487083435

Percent faster intval is than escape: 50%
Percent faster int is than escape:  76%
Percent faster int is than intval:  52%&lt;/pre&gt;
&lt;br /&gt;
&lt;h4&gt;The result of the sanitisation:&lt;/h4&gt;
&lt;pre&gt;escape_string: 12345\'?;/FOO/FUM\\\';Example String = 
intval func: 12345
cast int:  12345&lt;/pre&gt;
&lt;br /&gt;
From the benchmark, we can deduce that (int) produces a 70% to 75% performance advantage over using &lt;code style="color:green;"&gt;mysql_real_escape_string();&lt;/code&gt; and a 50% performance advantage over using the &lt;code style="color:green;"&gt;intval()&lt;/code&gt; function.&lt;br /&gt;
In addition, if you are using an &lt;code&gt;UPDATE&lt;/code&gt; or &lt;code&gt;INSERT&lt;/code&gt; SQL query, forcing var type int on integer variables will mean that your query will produce a valid result, whereas an intended int variable that contains a string which goes through the &lt;code style="color:green;"&gt;mysql_real_escape_string()&lt;/code&gt; function is going to throw an SQL Error if the SQL database is expecting a float or integer value of some sort.&lt;br /&gt;
&lt;br /&gt;
Of course, don’t take my word for it... the above script is provided for you to test yourselves as well. :) &lt;br /&gt;
If you want to test the benchmark without making a database connect, substitute the &lt;code style="color:green;"&gt;mysql_real_escape_string()&lt;/code&gt; with the older &lt;code style="color:green;"&gt;mysql_escape_string()&lt;/code&gt; function, which does not require a database link to process.&lt;br /&gt;
Enjoy!&lt;br /&gt;
- Highway of Life&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/513970088689012845-1519261125732167376?l=phpbbacademy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpbbacademy.blogspot.com/feeds/1519261125732167376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=513970088689012845&amp;postID=1519261125732167376' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/513970088689012845/posts/default/1519261125732167376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/513970088689012845/posts/default/1519261125732167376'/><link rel='alternate' type='text/html' href='http://phpbbacademy.blogspot.com/2008/05/performance-difference-using.html' title='Performance difference using mysql_real_escape_string versus intval'/><author><name>Highway of Life</name><uri>http://www.blogger.com/profile/04596363922293037203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://bp3.blogger.com/_3dhNwdMGhY0/SCjLh9Pq0mI/AAAAAAAAAAM/ryv7qlTR5zo/S220/Picard140x150.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-513970088689012845.post-1221543488916863692</id><published>2008-05-02T22:17:00.000-07:00</published><updated>2008-05-02T22:34:03.581-07:00</updated><title type='text'>Why Sanitisation and Type Casting is Important in PHP</title><content type='html'>&lt;p&gt;PHP is a language that is very open to different types of coding.&lt;br /&gt;
 Many good, many bad. There are always multiple ways of doing something in PHP, that’s one reason it is such a great language.&lt;br /&gt;
 Everyone has their own way of doing something. The most common problem, however, is lack of proper knowledge of the language. Take someone who has worked on Java or C for 20 years and put them in front of PHP, they will learn the language quickly, but they will not necessarily pick up the true and correct methods and concepts of the language. Amazingly, few do.&lt;/p&gt;
&lt;p&gt;In working with many PHP programmers as an instructor, I’ve seen coders from every level, starting from novice to advanced.&lt;br /&gt;
 From inexperienced beginners to 20-30 years of experience programming C-based languages.&lt;br /&gt;
 It is an easy language to learn, but a difficult language to master -- properly.&lt;br /&gt;
 But even as easy as the language is, as popular as the language is, as many people program in it, few code correctly and securely as the language was intended to be programmed in. -- As an instructor, I regularly see code that is vulnerable in one way or another, about 1 in every 3 scripts has a severe vulnerability of some kind (75% of the time, it is an SQL Injection and usually due to poor or no sanitisation methods).&lt;br /&gt;
 These are mostly due to not understanding typecasting properly, not using it, or not understanding the concepts behind proper coding in PHP, including coding PHP securely and the way it was intended to be used.&lt;/p&gt;
&lt;p&gt;The reason that there were 20,000 sites hacked between January and April of 2008 was due to SQL Injections in web applications that hackers exploited to insert code that would inject iframes into every web-based dynamic (ASP or PHP) file on the website.&lt;br /&gt;
 Some 200,000 plus webpages contained these iframes.&lt;br /&gt;
 So how do people address this? How do you, as a site owner and coder, secure your site or ensure that the applications or scripts that you use or code are going to be secure and free from exploits?&lt;br /&gt;
 You code in the way that PHP was &lt;em&gt;intended&lt;/em&gt;, and the way that PHP was &lt;em&gt;intended&lt;/em&gt; to work with databases.&lt;br /&gt;
 Sure, you can program PHP in the way that you want to, you can use shortcuts, or do things &lt;em&gt;your way&lt;/em&gt; because you feel like it, or you can program in a way that is correct and secure.&lt;/p&gt;
&lt;p&gt;One of the most important concepts that I’ve had to drill into the heads of my students has been proper sanitisation of variables AND type casting.&lt;br /&gt;
 Type casting is equally as important as sanitisation of strings.&lt;br /&gt;
 PHP is built to be a dynamic language where you can dynamically assign an assortment of type definitions to a variable, it does not require or support explicit type definitions, this means that it is set by the content that is assigned to the variable.&lt;/p&gt;
&lt;p&gt;If your Database field is intended to contain a float, you, the programmer &lt;strong&gt;must&lt;/strong&gt; ensure that the data you are placing into that field is a float. If the field is an integer, you must ensure that the variable is an integer. If it is meant to contain a string, you must ensure that the variable type is going to be a string.&lt;br /&gt;
 User data can be entered as a string, integer, float, or an array.&lt;br /&gt;
 You cannot insert an array into a string field, a string field into an integer field, or float into an integer field (for example).&lt;/p&gt;
&lt;p&gt;When you create a database, you define the fields to be exact database types, exact numeric data types such as Integer, decimal and numeric, approximate numeric data types such as float, real or double, a bit data type (as of MySQL 5), date and time data types, string data types such as char, varchar, text, binary (similar to char, but stores binary byte strings), blob and enum.&lt;/p&gt;
&lt;p&gt;When creating a database, you do not create each field to be a string, you create the field with the data type of the information it will be storing -- I hope I don’t have to go into examples about *why* you must do this with databases --.&lt;br /&gt;
 You then assign data to these database tables through your database interface, most commonly the built-in mysql functions in PHP.&lt;br /&gt;
 When inserting data, they are meant to contain the data type that you have assigned to the field. If you created an numeric data type field, you need to ensure that the variable is an integer or float (float, double or real) as necessary.&lt;br /&gt;
 If you do not, you introduce many potential and guaranteed problems into both your code and your database, database errors notwithstanding.&lt;/p&gt;
&lt;p&gt;If you insert string data types, you need to ensure that the data that you are inputting is not a resource or array. -- Integer data types are allowed in string data type fields.&lt;br /&gt;
 That means that even when pulling data, such as &lt;code&gt;$_POST['my_variable']&lt;/code&gt;, you cannot just input this straight into your database, obviously, you need to sanitise the variable.&lt;br /&gt;
 Your method of sanitisation does depend on what data type the field is that you will be inserting it into.&lt;br /&gt;
 If it is int, force var-type int, if it is a float, you need to force it to be a float or double. Remember, PHP is a dynamic language, so it will change the var-type easily.&lt;br /&gt;
 The variable may be an array, which you will need to deal with if you are attempting to insert the data into a string data type field.&lt;/p&gt;
&lt;p&gt;All these must be must be considered if one is to create a script that is completely secure from Injection. -- If you want to ensure you are secure, create your code the way PHP intended for it to be created. Use proper type-casting.&lt;br /&gt;
 It will save you many headaches down the road, it is well worth the research anyone would bother to spend on data types and type casting in PHP and your database.&lt;/p&gt;
&lt;p&gt;People take database manipulation and interaction much too lightly, and it shows... 20,000 sites hacked in 4 months is too many. Certainly unnecessary and could have been avoided if the programmers had bothered to become familiar with correct sanitisation methods and typecasting.&lt;/p&gt;
&lt;p&gt;If you are a user who is unsure about your script, you are unsure if you are using proper sanitisation and type casting methods, talk to programmers who you know are experienced in the language you are working with.&lt;br /&gt;
 Do some research, on type casting and proper usage of the &lt;a href="http://us2.php.net/manual/en/function.mysql-real-escape-string.php"&gt;mysql_real_escape_string()&lt;/a&gt; function. If you are not using MySQL, check your DBMS type to see what function it uses to properly sanitise strings.&lt;br /&gt;
 And last but not least, read &lt;a href="http://us.php.net/language.types.type-juggling"&gt;Type Casting in PHP&lt;/a&gt; on how to properly use typecasting in PHP.&lt;br /&gt;
 And use Google to research the topic in question, a little bit of research will go a long way to providing you with the necessary knowledge to build secure and stable scripts for your site or your clients.&lt;/p&gt;
&lt;p&gt;- Highway of Life&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/513970088689012845-1221543488916863692?l=phpbbacademy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpbbacademy.blogspot.com/feeds/1221543488916863692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=513970088689012845&amp;postID=1221543488916863692' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/513970088689012845/posts/default/1221543488916863692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/513970088689012845/posts/default/1221543488916863692'/><link rel='alternate' type='text/html' href='http://phpbbacademy.blogspot.com/2008/05/why-sanitisation-and-type-casting-is.html' title='Why Sanitisation and Type Casting is Important in PHP'/><author><name>Highway of Life</name><uri>http://www.blogger.com/profile/04596363922293037203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://bp3.blogger.com/_3dhNwdMGhY0/SCjLh9Pq0mI/AAAAAAAAAAM/ryv7qlTR5zo/S220/Picard140x150.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-513970088689012845.post-5787112343379591209</id><published>2007-12-13T15:21:00.000-08:00</published><updated>2007-12-13T15:28:07.264-08:00</updated><title type='text'>phpBB3 Gold Released!</title><content type='html'>&lt;p&gt;London, UK (PRWEB) December 13, 2007 -- phpBB&amp;#8482;, the leading open source forum and online collaboration system, announced today the availability of phpBB Version 3.0. This release includes enhanced collaboration features, better security and delegated administration features, extended support for open source and commercial database management systems, and optimisation for mobile devices and search engines. phpBB is available at no cost, released under the GNU General Public License.
&lt;/P&gt;
&lt;P&gt;
&lt;img style="margin:10px 5px;" src="http://ww1.prweb.com/prfiles/2007/12/12/275801/gI_logophpbbtm.png.jpg" align="right" alt="News Image" border="0"&gt;
&lt;/P&gt;
&lt;P&gt;
Online discussion forums and user-generated content represent the largest source of new information on the Internet. phpBB is used throughout the world by commercial and non-commercial companies to share documents, collaborate and encourage peer-to-peer resolution of issues to reduce the cost of product and/or technical support. 
&lt;/P&gt;
&lt;P&gt;
&amp;quot;phpBB is a highly scalable, feature rich environment that can be easily deployed and integrated into any Web site or online application,&amp;quot; says Bob Norton of HREnhancement. &amp;quot;phpBB version 3 represents a huge milestone and we continue to be amazed by this project and its community.&amp;quot;
&lt;/P&gt;
&lt;P&gt;
phpBB is easy-to-use with an intuitive administration system and extensive customisation capabilities. It is capable of supporting hundreds of millions of discussions in any language and boasts some of the largest forum communities on the Internet. phpBB is developed by six core developers, more than forty team members and is supported by a community of almost 300,000 users and developers. Among the new features announced today, phpBB has been specifically optimised for the mobile market. 
&lt;/P&gt;
&lt;P&gt;
&amp;quot;With the enhanced search engine optimisation of phpBB, we see a huge opportunity for companies to deploy more customer self-service and collaboration features for their customers,&amp;quot; says William Leake, Chief Executive Officer of Apogee Search. &amp;quot;The mobile Web is a key component for every 2008 Web strategy and phpBB is a perfect fit for the growing mobile collaboration market.&amp;quot;
&lt;/P&gt;
&lt;P&gt;
The phpBB community, comprised of users, Web developers and designers, have produced more than 5,000 add-ons and 400 styles for phpBB2 making it easy for Website owners to customise the system to their needs. The phpBB community has already made nearly 500 enhancements, modifications and extensions for phpBB version 3.0, even before final release. 
&lt;/P&gt;
&lt;P&gt;
Organisations can quickly build advanced social and peer networking communities using phpBB and it can be deployed with &amp;quot;one-click&amp;quot; through cPanel, Plesk, Ensim, DirectAdmin and Fantastico. Hosting providers such as GoDaddy, The Planet, and 1and1 provide phpBB with many standard hosting packages. 
&lt;/P&gt;
&lt;P&gt;
&amp;quot;phpBB version 3 represents over five years of development from some of the most talented developers in the world. As the project continues to grow, we hope to serve our community better and deliver innovative software that is released under the GPL. Our sincere thanks go to our users, developers, team members and partners.&amp;quot; Says Meik Sievertsen, Lead Developer of the phpBB project. With phpBB version 3, detailed source code analysis and penetration testing has also been performed to proactively make steps toward improved enterprise security. 
&lt;/P&gt;
&lt;P&gt;
For developers who want to quickly and inexpensively integrate collaboration and forum capabilities into their own Web applications, phpBB provides a flexible framework, documented Application Programming Interfaces (APIs), customisable themes, and extensions. phpBB can quickly integrate into almost any content management system (CMS) or static Website. 
&lt;/P&gt;
&lt;P&gt;
About phpBB&lt;BR&gt;
phpBB&amp;#8482; (&amp;quot;PHP Bulletin Board&amp;quot;) is the world&amp;#039;s leading Open Source forum software. Distributed under the GNU General Public License, phpBB is free software, developed by volunteers from around the world. phpBB is used on over 2.4 million commercial, non-profit, social networking and community websites in over sixty languages. For more information and to learn how you can contribute, please visit &lt;a href="http://www.phpbb.com" onclick="linkClick( this.href );" target="_blank"&gt;http://www.phpbb.com&lt;/a&gt;
&lt;/P&gt;
&lt;P&gt;
Press Contact&lt;BR&gt;
Christopher Justice&lt;BR&gt;
(512) 493-2071&lt;BR&gt;
justice @ sparksight.com
&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/513970088689012845-5787112343379591209?l=phpbbacademy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.phpbb.com/community/viewtopic.php?f=14&amp;t=615945' title='phpBB3 Gold Released!'/><link rel='replies' type='application/atom+xml' href='http://phpbbacademy.blogspot.com/feeds/5787112343379591209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=513970088689012845&amp;postID=5787112343379591209' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/513970088689012845/posts/default/5787112343379591209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/513970088689012845/posts/default/5787112343379591209'/><link rel='alternate' type='text/html' href='http://phpbbacademy.blogspot.com/2007/12/phpbb3-gold-released.html' title='phpBB3 Gold Released!'/><author><name>Highway of Life</name><uri>http://www.blogger.com/profile/04596363922293037203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://bp3.blogger.com/_3dhNwdMGhY0/SCjLh9Pq0mI/AAAAAAAAAAM/ryv7qlTR5zo/S220/Picard140x150.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-513970088689012845.post-18937291813204334</id><published>2007-11-05T21:03:00.001-08:00</published><updated>2007-11-05T21:03:50.510-08:00</updated><title type='text'>Community Time III - Joomla! Meeting phpBB</title><content type='html'>We, Chris Justice and myself, met the phpBB crew down in the lobby of our hotel for a few drinks and then headed out to a restaurant for some food and off course more drinks. Talks ranged over the release of phpBB3, press announcements, marketing, GPL and legal issues … and off-course code. What else did you expect when you put the core guys of two...&lt;br/&gt;&lt;br/&gt;&lt;a href='http://www.joomla.org/component/option,com_jd-wp/Itemid,105/p,438/'&gt;read more&lt;/a&gt; | &lt;a href='http://digg.com/software/Community_Time_III_Meeting_phpBB'&gt;digg story&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/513970088689012845-18937291813204334?l=phpbbacademy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpbbacademy.blogspot.com/feeds/18937291813204334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=513970088689012845&amp;postID=18937291813204334' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/513970088689012845/posts/default/18937291813204334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/513970088689012845/posts/default/18937291813204334'/><link rel='alternate' type='text/html' href='http://phpbbacademy.blogspot.com/2007/11/community-time-iii-joomla-meeting-phpbb.html' title='Community Time III - Joomla! Meeting phpBB'/><author><name>Highway of Life</name><uri>http://www.blogger.com/profile/04596363922293037203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://bp3.blogger.com/_3dhNwdMGhY0/SCjLh9Pq0mI/AAAAAAAAAAM/ryv7qlTR5zo/S220/Picard140x150.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-513970088689012845.post-2152806062308829263</id><published>2007-05-09T10:46:00.001-07:00</published><updated>2007-05-09T10:49:48.662-07:00</updated><title type='text'>Cracking WaterCap CAPTCHA In 24 Hours</title><content type='html'>It didn’t take long for one of our guys at &lt;a href="http://startrekguide.com/forum/viewtopic.php?f=60&amp;t=2235#p28410"&gt;StarTrekGuide.com&lt;/a&gt; to break the WaterCap CAPTCHA... 24 hours to be exact.&lt;br /&gt;
Elbertf, our resident "hacker" (not cracker) gave &lt;a href="http://www.softwaresecretweapons.com/jspwiki/Wiki.jsp?page=PavelSimakov"&gt;Pavel Simakov&lt;/a&gt; some information on how he broke the CAPTCHA and tips to how it can be improved.&lt;br/&gt;
Although the CAPTCHA is still unique to any previous method, it can still be cracked. But the key is if each board incorporates a unique method of spambot blocking, it can defeat the spambots. So don’t discount this CAPTCHA, it is still very much a good one, and I believe with just a little improvement in the code, it can become extremely difficult for spambots to crack.&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;&lt;a href='http://www.softwaresecretweapons.com/jspwiki/Wiki.jsp?page=Cracking_WaterCap_CAPTCHA_In_24_Hours'&gt;read more&lt;/a&gt; | &lt;a href='http://digg.com/programming/Cracking_WaterCap_CAPTCHA_In_24_Hours'&gt;digg story&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/513970088689012845-2152806062308829263?l=phpbbacademy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.softwaresecretweapons.com/jspwiki/Wiki.jsp?page=Cracking_WaterCap_CAPTCHA_In_24_Hours' title='Cracking WaterCap CAPTCHA In 24 Hours'/><link rel='replies' type='application/atom+xml' href='http://phpbbacademy.blogspot.com/feeds/2152806062308829263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=513970088689012845&amp;postID=2152806062308829263' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/513970088689012845/posts/default/2152806062308829263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/513970088689012845/posts/default/2152806062308829263'/><link rel='alternate' type='text/html' href='http://phpbbacademy.blogspot.com/2007/05/cracking-watercap-captcha-in-24-hours.html' title='Cracking WaterCap CAPTCHA In 24 Hours'/><author><name>Highway of Life</name><uri>http://www.blogger.com/profile/04596363922293037203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://bp3.blogger.com/_3dhNwdMGhY0/SCjLh9Pq0mI/AAAAAAAAAAM/ryv7qlTR5zo/S220/Picard140x150.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-513970088689012845.post-3731627289582110181</id><published>2007-05-07T23:23:00.000-07:00</published><updated>2007-05-07T23:24:51.274-07:00</updated><title type='text'>MAMP and MAMP Pro 1.6 released! - Apache, PHP, MySQL Package for Mac</title><content type='html'>&lt;p&gt;living-e AG  released a new version of their Mac OS X Apache bundle on April 27th.&lt;br&gt;
  This release marks only the second release of the MAMP Pro bundle, and the first with both MAMP and MAMP pro combined.&lt;/p&gt;
&lt;p&gt;The MAMP is a free, open source utility that enables Mac OS X users to install Apache server, MySQL, PHP, eAccelerator and PHPMyAdmin with ease. Mac OS X users can download the MAMP, and with just a few clicks, install the software bundle in a folder, making it easier than ever (in typical Mac fashion) for users to host applications on their local server with MAMP, or remote server using MAMP Pro. The process takes about a minute to complete.&lt;br&gt;
Requirements:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Mac OS X 10.4 or higher (Universal binary)&lt;/li&gt;
&lt;/ul&gt;
MAMP 1.6  is designed to run on the following operating systems:
&lt;ul&gt;
&lt;li&gt; Mac OS X 10.4 PPC&lt;/li&gt;
  &lt;li&gt; Mac OS X 10.4 Intel&lt;/li&gt;
  &lt;li&gt;Mac OS X 10.5 PPC&lt;/li&gt;
  &lt;li&gt;Mac OS X 10.5 Intel&lt;/li&gt;
&lt;/ul&gt;
    &lt;p&gt;
  Earlier versions of Mac OS X can still download older versions of MAMP from the Sourceforge file releases.&lt;/p&gt;
&lt;p&gt;The new version carries some  new upgrades including: Apache 2.0.59, PHP 5.2.1 (and PHP4), MySQL 5.0.37, support now for &lt;br&gt;
the new XCache from lighttpd as an alternative to eAccelerator, which is still included in the default MAMP package, and APC support. &lt;/p&gt;
&lt;p&gt;MAMP Pro is ideal for running on a OS X based server, as upgrading is simply drag-and-drop into the applications folder.&lt;br&gt;
  Since the databases are contained in the &lt;code&gt;/Library/Application\ Support/MAMP\ Pro/db/&lt;/code&gt; directory. And the preferences within MAMP Pro allow you to choose a localhost directory outside of the default /htdocs/ location within the MAMP package, making upgrades only seconds long. &lt;/p&gt;
&lt;p&gt;You can download the latest distribution of MAMP from the official website: &lt;a href="http://www.living-e.com/products/MAMP-PRO/download.php"&gt;living-e.com&lt;/a&gt; or from &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=121134"&gt;Sourceforge&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I’ll post some tutorials and tips for setting up the httpd.conf and php.ini configuration files for both localhost testing of your PHP applications, and secure use on a remote server later.&lt;/p&gt;
&lt;p&gt;Enjoy!! &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/513970088689012845-3731627289582110181?l=phpbbacademy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.living-e.com/products/MAMP-PRO/download.php' title='MAMP and MAMP Pro 1.6 released! - Apache, PHP, MySQL Package for Mac'/><link rel='replies' type='application/atom+xml' href='http://phpbbacademy.blogspot.com/feeds/3731627289582110181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=513970088689012845&amp;postID=3731627289582110181' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/513970088689012845/posts/default/3731627289582110181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/513970088689012845/posts/default/3731627289582110181'/><link rel='alternate' type='text/html' href='http://phpbbacademy.blogspot.com/2007/05/mamp-and-mamp-pro-16-released-apache.html' title='MAMP and MAMP Pro 1.6 released! - Apache, PHP, MySQL Package for Mac'/><author><name>Highway of Life</name><uri>http://www.blogger.com/profile/04596363922293037203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://bp3.blogger.com/_3dhNwdMGhY0/SCjLh9Pq0mI/AAAAAAAAAAM/ryv7qlTR5zo/S220/Picard140x150.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-513970088689012845.post-4304051445930240436</id><published>2007-05-07T22:50:00.001-07:00</published><updated>2007-05-07T22:54:55.346-07:00</updated><title type='text'>WaterCap Strong PHP CAPTCHA With Negative Spaces And Shadows</title><content type='html'>&lt;p&gt;Most of you are aware of the weak CAPTCHA that is used on phpBB2, and the basic version on phpBB3.&lt;br&gt;
  Recently, phpBB3 revamped their advanced CAPTCHA, giving the user more options with the x/y axis of noise levels.&lt;br&gt;
  The problem is, the CAPTCHA can be fairly un-readable.&lt;br&gt;
  Some users are saying nobody over the age of 55 (or under if you wear glasses) is going to be able to decipher the CAPTCHA image.&lt;br&gt;
  The solution, is of course to turn the x/y values up quite high, decreasing the amount of noise and making it easier to see.&lt;br&gt;
  But if you don’t have freetype enabled on your server, you’re stuck with the default (breakable) CAPTCHA.&lt;br&gt;
  Although you usually can persuade your host to enable CAPTCHA with your PHP installation, there are other methods of CAPTCHA as well... the WaterCap method uses the background color inside the letters themselves, making it extremely difficult for bots to pick out the definable boundaries of the characters. But our minds automatically make out the shapes and we "see" the letters, even though it is an optical illusion.&lt;br&gt;
  It’s only using shadows to give our brains a hint of what letter it is.&lt;br&gt;
  So the question is, will this work for phpBB3?&lt;br&gt;
  Perhaps, but only time will tell... if the phpBB team implements something like this by default, the spam world is going to work very hard to come up with a way to crack it... and we know it’s only a matter of time, they eventually will.&lt;br&gt;
  The alternative is to use it as a MOD on your board.&lt;br&gt;
  We (the Star Trek Guide Group) will create a MOD from this idea if it is not implemented in phpBB3 by default.&lt;br&gt;
  But I would like to hear your thoughts on it.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.softwaresecretweapons.com/jspwiki/Wiki.jsp?page=WaterCap_Strong_PHP_CAPTCHA_With_Negative_Spaces_And_Shadows"&gt;read more&lt;/a&gt; | &lt;a href="http://digg.com/security/WaterCap_Strong_PHP_CAPTCHA_With_Negative_Spaces_And_Shadows"&gt;digg story&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/513970088689012845-4304051445930240436?l=phpbbacademy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://phpbbacademy.blogspot.com/feeds/4304051445930240436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=513970088689012845&amp;postID=4304051445930240436' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/513970088689012845/posts/default/4304051445930240436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/513970088689012845/posts/default/4304051445930240436'/><link rel='alternate' type='text/html' href='http://phpbbacademy.blogspot.com/2007/05/watercap-strong-php-captcha-with.html' title='WaterCap Strong PHP CAPTCHA With Negative Spaces And Shadows'/><author><name>Highway of Life</name><uri>http://www.blogger.com/profile/04596363922293037203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://bp3.blogger.com/_3dhNwdMGhY0/SCjLh9Pq0mI/AAAAAAAAAAM/ryv7qlTR5zo/S220/Picard140x150.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-513970088689012845.post-7172293001873285397</id><published>2007-05-07T20:16:00.000-07:00</published><updated>2007-05-07T20:20:30.715-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='localhost'/><category scheme='http://www.blogger.com/atom/ns#' term='easyphp'/><category scheme='http://www.blogger.com/atom/ns#' term='lamp'/><category scheme='http://www.blogger.com/atom/ns#' term='wamp'/><category scheme='http://www.blogger.com/atom/ns#' term='xampp'/><category scheme='http://www.blogger.com/atom/ns#' term='mamp'/><title type='text'>Installing and using phpBB3 on your localhost</title><content type='html'>&lt;p&gt;This tutorial has instructions for installing an apache package and installing and running phpBB3 on your localhost&lt;/p&gt;
&lt;p&gt;Using phpBB on your localhost is a very simple process and a much faster way to test it then waiting for FTP to upload everything for you.&lt;/p&gt;
&lt;p&gt;When installing a localhost, the first thing you will need is one of the following Apache packages.
Although most of these packages  contain both PHP4 and PHP5, only the latest version of PHP5 is shown below. 
All of the following packages are free except for MAMP Pro, which enables you to use it in a live (non-localhost) environment.
Other packages require some adjustments (for security purposes) for use within a server (live) environment.&lt;/p&gt;
&lt;h3&gt;Download LAMP/XAMPP/WAMP/MAMP package&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt; &lt;a href="http://www.easyphp.org" class="external text" title="http://www.easyphp.org" rel="nofollow"&gt;EasyPHP&lt;/a&gt; &lt;i&gt;Apache 2.2.3 - PHP 5.2.0 - MySQL 5.0.27&lt;/i&gt;&lt;br&gt;
for Windows Win9x/Me/NT/2000/XP -- should work on Vista as well&lt;br&gt;
&lt;br&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="http://www.wampserver.com/en/" class="external text" title="http://www.wampserver.com/en/" rel="nofollow"&gt;WAMP server&lt;/a&gt; &lt;i&gt;Apache 2.2.4 - PHP 5.2.1 - MySQL 5.0.27&lt;/i&gt;&lt;br&gt;
For Windows NT/XP and Vista&lt;br&gt;
&lt;br&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="http://mamp.info" class="external text" title="http://mamp.info" rel="nofollow"&gt;MAMP and MAMP Pro&lt;/a&gt; &lt;i&gt;Apache 2.0.59 - PHP 5.2.1 - MySQL 5.0.37&lt;/i&gt;&lt;br&gt;
For Mac OS X 10.3, 10.4+, PPC and Intel&lt;br&gt;
&lt;br&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="http://www.apachefriends.org/en/xampp-linux.html" class="external text" title="http://www.apachefriends.org/en/xampp-linux.html" rel="nofollow"&gt;XAMP for Linux&lt;/a&gt; &lt;i&gt;Apache 2.2.4 - PHP 5.2.1 - MySQL 5.0.37&lt;/i&gt;&lt;br&gt;
For Linux SuSE, RedHat, Mandrake and Debian (other versions untested)&lt;br&gt;
&lt;br&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="http://www.apachefriends.org/en/xampp-windows.html" class="external text" title="http://www.apachefriends.org/en/xampp-windows.html" rel="nofollow"&gt;XAMPP for Windows&lt;/a&gt; &lt;i&gt;Apache 2.2.4 - PHP 5.2.1 - MySQL 5.0.37&lt;/i&gt;&lt;br&gt;
For Windows 98, NT, 2000 and XP (should work on Vista as well)&lt;br&gt;
&lt;br&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="http://www.apachefriends.org/en/xampp-macosx.html" class="external text" title="http://www.apachefriends.org/en/xampp-macosx.html" rel="nofollow"&gt;XAMPP for Mac OS X&lt;/a&gt; &lt;i&gt;Apache 2.2.4 - PHP 5.2.1 - MySQL 5.0.33&lt;/i&gt;&lt;br&gt;
For Mac OS X (intel ONLY) -- version 0.6.1 (at print time) is still in development&lt;br&gt;
&lt;br&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="http://www.apachefriends.org/en/xampp-solaris.html" class="external text" title="http://www.apachefriends.org/en/xampp-solaris.html" rel="nofollow"&gt;XAMPP for Solaris&lt;/a&gt; &lt;i&gt;Apache 2.2.0 - PHP 5.1.1 - MySQL 5.0.18&lt;/i&gt;&lt;br&gt;
For Solaris 8 and 9 (other versions untested) -- version 0.8.1 (at print time) is still in development.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Install Apache Package&lt;/h3&gt;
&lt;p&gt;Once Downloaded, install one of the above packages, making sure to follow the instructions.
Be sure to remember what directory it uses for it’s "webroot".
Average time needed to install an Apache package: 15 minutes&lt;/p&gt;
&lt;p&gt;Be sure to consult the documentation regarding your Apache Package for configuration.
Each package (except for MAMP Pro) requires special configuration for use on a live server. 
Check to make sure the  Apache/MySQL ports are set to 80/3306 -- some may be set to 8888/8889 (for example).
For Mac OS X: Make sure Web Sharing is turned OFF in System Preferences.
The preferences/options allow you to pick which PHP version to run. In This tutorial, we will assume you are running PHP5
Although you can test either version, you should choose the version that your server is using.&lt;/p&gt;
&lt;h3&gt;Start localhost Apache/MySQL Services/Server&lt;/h3&gt;
&lt;p&gt;Once installed, start your servers (or "services" on Windows).
MAMP -- 10.4+: Use the MAMP Widget or MAMP.app to Start Servers; 10.3+: Use the MAMP.app;
WAMP -- XP: Click the services icon in the lower right-hand corner, and select "start all services"&lt;br&gt;
Everytime you start up your computer, you’ll have to start your localhost services/server to run "localhost" on your computer.&lt;br&gt;
Some packages may contain details on how to setup startup files to start the servers/services on computer startup. -- Consult the documentation for details.&lt;/p&gt;
&lt;p&gt;Any changes that you manually make to the &lt;code&gt;php.ini&lt;/code&gt; or &lt;code&gt;httpd.conf&lt;/code&gt; files will require you to restart (stop and start) your Servers/Services.&lt;br&gt;
In MAMP pro, it contains it’s own server config templates located in &lt;code&gt;/Applications/MAMP\ PRO.app/Contents/Resources/&lt;/code&gt; Most other packages they are located within a &lt;code&gt;conf/&lt;/code&gt; directory or within their own &lt;code&gt;php/php.ini &lt;/code&gt;and &lt;code&gt;apache2/conf/&lt;/code&gt; directories. 
In the &lt;code&gt;php.ini&lt;/code&gt; file, set &lt;code&gt;error_reporting&lt;/code&gt; to &lt;code&gt;error_reporting  =  E_ALL&lt;/code&gt; and &lt;code&gt;display_errors&lt;/code&gt; to &lt;code&gt;display_errors = On&lt;/code&gt; Be sure to note the location of the error log files... &lt;code&gt;error_log&lt;/code&gt; Which you’ll need for debugging any errors you find in phpBB3.&lt;/p&gt;
&lt;h3&gt;Create new Database for phpBB&lt;/h3&gt;
&lt;p&gt;Now that you have your Apache package all setup and running, test it by going to &lt;code&gt;http://localhost&lt;/code&gt; it should 
Go to your Database Manager, in this tutorial, we will be using MySQL, as it is the most common database.
You can use the pre-installed phpMyAdmin (an alias is located in each package, or try browsing to &lt;code&gt;http://localhost/phpmyadmin&lt;/code&gt; or &lt;code&gt;http://localhost/phpMyAdmin&lt;/code&gt; depending on your package), it is recommended that you grab a copy of &lt;a href="http://navicat.com" class="external text" title="http://navicat.com" rel="nofollow"&gt;Navicat&lt;/a&gt; or another GUI database administration tool. (highly recommended, as it will speed up your development/testing time by 400%-500%)&lt;/p&gt;
&lt;p&gt;Create a new Database, in this example, we’ll name it &lt;code&gt;phpBB3&lt;/code&gt;. -- Consult the documentation for the database admin tool on how to create a new Database. -- in Navicat, go to menu &amp;gt; Connection &amp;gt; New Database; or in phpMyAdmin just type in the name of the new database. &lt;br&gt;
Now create a new user (and unique password) and give that user permission (privileges) to access all aspects of the database. (Select, Insert, Update, Delete, Create, Drop, References, Index, Alter, etc) -- use full permission as this is your localhost user, and it cannot be accessed through the internet.
If you want to test multiple versions of phpBB3, such as a Beta version, an RC version, varius CVS versions, etc... you can give each one it’s own unique database name.
e.g.: phpBB2_CVS (CVS), phpBB2 (patch tests), phpBB3 (Beta or RC), forum (live), area51 (MOD testing), etc.
You will also be able to use several phpBB installations with just one database if you prefer. &lt;br&gt;
To keep things as simple as possible, use the same user for each of your databases.&lt;/p&gt;
&lt;h3&gt;Download phpBB3&lt;/h3&gt;
&lt;p&gt; Download a fresh copy of the development package of phpBB3 by going to &lt;a href="http://www.phpbb.com/downloads/development.php" class="external text" title="http://www.phpbb.com/downloads/development.php" rel="nofollow"&gt;phpBB Downloads&lt;/a&gt; or go to &lt;a href="http://area51.phpbb.com/cvs" class="external text" title="http://area51.phpbb.com/cvs" rel="nofollow"&gt;area51&lt;/a&gt; to download a daily snapshot -- We’ll be using the daily snapshot in this tutorial.
If you are not comfortable with or feel frightened by manual database edits, it is recommended that you not install a CVS version -- use the more stable Beta or RC download instead.&lt;/p&gt;
&lt;p&gt; Drag your phpBB download package to your webroot directory&lt;br&gt;
&lt;b&gt;Defaults:&lt;/b&gt;&lt;br&gt;
WAMP: &lt;code&gt;C:/wamp/www/&lt;/code&gt;;&lt;br&gt;
MAMP: &lt;code&gt;/Applications/MAMP/htdocs/&lt;/code&gt;;&lt;br&gt;
XAMPP (win): &lt;code&gt;C:\program files\xampp\htdocs&lt;br&gt;
&lt;/code&gt;It’s usually &lt;code&gt;www&lt;/code&gt;, &lt;code&gt;htdocs&lt;/code&gt; or &lt;code&gt;public_html&lt;/code&gt; -- If you are unsure where it is located, consult your package documentation.&lt;/p&gt;
&lt;p&gt; Unzip/unpack your phpBB package. -- If you have a CVS download, it will be called &lt;code&gt;phpBB2&lt;/code&gt;, don’t be alarmed, it really is phpBB3.x.x-dev.&lt;br&gt;
If you download a Beta or RC package, it will be called &lt;code&gt;phpBB3&lt;/code&gt; Keep in mind that if you want to test multiple phpBB installations, you will want to rename them accordingly.
e.g.: phpBB3 (Beta or RC), forum (live), area51 (MOD testing), phpBB2_CVS (CVS), phpBB2 (patch tests), etc...
This will be important later on when we reach updating your phpBB3 installation using CVS.
From here forward, we are going to assume you downloaded the CVS version, and will be calling the package "phpBB2".&lt;/p&gt;
&lt;h3&gt;Install phpBB&lt;/h3&gt;
&lt;p&gt;Open your browser (recommended to use Firefox, as it has more testing capabilities and is faster) and browse to &lt;code&gt;http://localhost/phpBB2&lt;/code&gt;&lt;br&gt;
Since the &lt;code&gt;config.php&lt;/code&gt; file is empty, you will be redirected to the &lt;code&gt;install/&lt;/code&gt; directory. You will be presented with options and instructions to install phpBB3.
Keep in mind that while you can test any Database schema available from your Apache package (and we encourage you to test multiple versions), you should primarily test the same version as what you will be using live on your server.
Use the database connection information you specified for the user earlier.
Make sure to use a simple password for your Founder/Admin login information, you’ll be typing it in a lot. -- and this is localhost, so nobody else will be using it.&lt;/p&gt;
&lt;p&gt;Once installation is complete, rename your install directory to _install (for example) so that it does not interfere with your testing.&lt;br&gt;
You have now successfully installed phpBB3 on your localhost.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/513970088689012845-7172293001873285397?l=phpbbacademy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://olympuswiki.naderman.de/Localhost' title='Installing and using phpBB3 on your localhost'/><link rel='replies' type='application/atom+xml' href='http://phpbbacademy.blogspot.com/feeds/7172293001873285397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=513970088689012845&amp;postID=7172293001873285397' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/513970088689012845/posts/default/7172293001873285397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/513970088689012845/posts/default/7172293001873285397'/><link rel='alternate' type='text/html' href='http://phpbbacademy.blogspot.com/2007/05/installing-and-using-phpbb3-on-your.html' title='Installing and using phpBB3 on your localhost'/><author><name>Highway of Life</name><uri>http://www.blogger.com/profile/04596363922293037203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://bp3.blogger.com/_3dhNwdMGhY0/SCjLh9Pq0mI/AAAAAAAAAAM/ryv7qlTR5zo/S220/Picard140x150.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-513970088689012845.post-2451628116966040853</id><published>2007-05-07T19:33:00.000-07:00</published><updated>2007-05-07T19:57:24.877-07:00</updated><title type='text'>AJAX powered vBulletin, phpBB2 and phpBB3 style changer</title><content type='html'>&lt;p&gt;This is the best thing since sliced cheese.&lt;br&gt;
  &lt;a href="http://phpbbstyles.com/profile.php?mode=viewprofile&amp;amp;u=2" class="postlink"&gt;CyberAlien&lt;/a&gt; from &lt;a href="http://phpbbstyles.com" class="postlink"&gt;http://phpbbstyles.com&lt;/a&gt; created a dynamic, AJAX powered style changer for popular vBulletin and phpBB2 styles (skins), he’s just recently added prosilver and subSilver2 from phpBB3 and will be adding more in the near future. &lt;br&gt;
  &lt;br&gt;
  &lt;a href="http://beta.colorizeit.com/index.php"&gt;http://beta.colorizeit.com/index.php&lt;/a&gt;
  -- Currently in beta stage, you can choose a color that exists on the style, and choose what color you want to change it to.&lt;br&gt;
  Pick up to four layers, see how your phpBB3 forum prosilver could look in Green! or Red! or Pink!&lt;br&gt;
  Live preview of your changes, and you can even download your new style, and install it on your vBulletin, phpBB2, or phpBB3 board in minutes. &lt;br&gt;
  Give it a try!&lt;br&gt;
  CyberAlien says release is scheduled for May or June if life™ gets in the way.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/513970088689012845-2451628116966040853?l=phpbbacademy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://beta.colorizeit.com/index.php' title='AJAX powered vBulletin, phpBB2 and phpBB3 style changer'/><link rel='replies' type='application/atom+xml' href='http://phpbbacademy.blogspot.com/feeds/2451628116966040853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=513970088689012845&amp;postID=2451628116966040853' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/513970088689012845/posts/default/2451628116966040853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/513970088689012845/posts/default/2451628116966040853'/><link rel='alternate' type='text/html' href='http://phpbbacademy.blogspot.com/2007/05/ajax-powered-vbulletin-phpbb2-and.html' title='AJAX powered vBulletin, phpBB2 and phpBB3 style changer'/><author><name>Highway of Life</name><uri>http://www.blogger.com/profile/04596363922293037203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://bp3.blogger.com/_3dhNwdMGhY0/SCjLh9Pq0mI/AAAAAAAAAAM/ryv7qlTR5zo/S220/Picard140x150.jpg'/></author><thr:total>0</thr:total></entry></feed>
