<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>WordPress Wassup Plugin</title>
	
	<link>http://www.wpwp.org</link>
	<description>The Real Time Visitors Tracking &amp; Statistics Tool</description>
	<lastBuildDate>Mon, 07 Sep 2009 13:24:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/wpwp" /><feedburner:info uri="wpwp" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>WassUp 1.7.2.1 fixes some little bugs</title>
		<link>http://feedproxy.google.com/~r/wpwp/~3/44_76mU_HLA/</link>
		<comments>http://www.wpwp.org/archives/wassup-1-7-2-1-fixes-some-little-bugs/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 13:24:07 +0000</pubDate>
		<dc:creator>Michele</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[wassup]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[fixes]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.wpwp.org/?p=130</guid>
		<description><![CDATA[here we are to release this new WassUp version to fix some little bugs discovered after upgrading to 1.7.2 Download WassUp Version 1.7.2.1 The changelog: - commented out the code for automatic page reload with &#8216;wscr&#8217; GET parameter because it inflated the number of page views per visitor in Wassup&#8217;s logs. Also commented out other [...]]]></description>
			<content:encoded><![CDATA[<p>here we are to release this new WassUp version to fix some little bugs discovered after upgrading to 1.7.2</p>
<blockquote><p><a href="http://www.wpwp.org/download">Download WassUp Version 1.7.2.1</a></p></blockquote>
<p>The changelog:</p>
<p>- commented out the code for automatic page reload with &#8216;wscr&#8217; GET parameter because it inflated the number of page views per visitor in Wassup&#8217;s logs. Also commented out other code related to &#8216;wscr&#8217; GET parmeter in &#8220;wassup.php&#8221;.<br />
- modified duplicate check in &#8220;wassupappend()&#8221; to remove the &#8216;wscr&#8217; argument from the url being tested.<br />
- changed &#8220;screen_res&#8221; variable assignment in &#8220;wassup_meta_info()&#8221;, &#8220;wassupappend()&#8221; and &#8220;wassupPrepend()&#8221; to include $_ENV['HTTP_UA_PIXELS'], a http header global sometimes sent by IE and IE Mobile browsers.<br />
- changed the mysql query for main/detail chronology sublists in &#8220;wassup()&#8221; to include an &#8220;order by &#8216;timestamp&#8217;&#8221; clause instead of &#8220;by &#8216;id&#8217;&#8221; because delayed inserts can cause &#8216;id&#8217; to be NOT sequential with &#8216;timestamp&#8217;. Also added &#8216;distinct&#8217; to the select statement to exclude duplicates from list.<br />
- in &#8220;main.php&#8221;, removed &#8216;attribute_escape&#8217; from &#8216;stringshortener&#8217; $input string because it put garbage characters (ex: &amp;#0;) in the resulting shortened urls. &#8216;stringshortener&#8217; now outputs &#8216;$outstring&#8217; or &#8216;false&#8217; only.<br />
- fixed czech language files</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wpwp.org/archives/wassup-1-7-2-1-fixes-some-little-bugs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wpwp.org/archives/wassup-1-7-2-1-fixes-some-little-bugs/</feedburner:origLink></item>
		<item>
		<title>WassUp 1.7.2</title>
		<link>http://feedproxy.google.com/~r/wpwp/~3/21yPQMtCG84/</link>
		<comments>http://www.wpwp.org/archives/wassup-1-7-2/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 15:31:58 +0000</pubDate>
		<dc:creator>Michele</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[wassup]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[new]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.wpwp.org/?p=125</guid>
		<description><![CDATA[Thanks a lot to Helene who did a wonderful job, now here is the new WassUp version tagged 1.7.2. There are a lot of changes and some new languages added (thank guys! we have reached 25 language translations almost complete, you rock!). Download WassUp Version 1.7.2 ChangeLog 1.7.2: ============================= New features and improvements: ============================= 1) [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks a lot to <a href="http://www.techfromhel.com/">Helene</a> who did a wonderful job, now here is the new WassUp version tagged 1.7.2.</p>
<p>There are a lot of changes and some new languages added (thank guys! we have reached 25 language translations almost complete, you rock!).</p>
<blockquote><p><a href="http://www.wpwp.org/download">Download WassUp Version 1.7.2</a></p></blockquote>
<p>ChangeLog 1.7.2:</p>
<p>=============================</p>
<p>New features and improvements:</p>
<p>=============================</p>
<p>1) Updated Visitor Detail (Latest Hits) screen interface options:</p>
<p>-Extended the automatic timer and ticker to include a pause/restart</p>
<p>toggle option that is triggered when the mouse is clicked on the</p>
<p>countdown numbers.</p>
<p>-Modified the searchbox to restrict initial search parameters to the</p>
<p>current date range, not reset it to the last 24 hours.</p>
<p>2) Optimized how WassUp plugin functions are loaded into WordPress:</p>
<p>-Added a new function, &#8220;wassup_loader()&#8221;, to conditionally load WassUp</p>
<p>functions into WordPress so that only needed hooks are added. This</p>
<p>also fixes a sporadic activation error bug that appeared in some</p>
<p>WordPress 2.8+ configurations.</p>
<p>-Removed the standalone hooks for &#8220;wassupAppend&#8221; and &#8220;wassup_init&#8221;</p>
<p>and put them inside the &#8220;wassupPrepend()&#8221; function so that these</p>
<p>functions are &#8220;hooked&#8221; into WordPress only after &#8220;wassupPrepend&#8221;</p>
<p>determines that they are needed. This also makes it possible to pass</p>
<p>command-line arguments like &#8220;$cookie_value&#8221; and &#8220;$screen_res&#8221; to</p>
<p>these functions.</p>
<p>3) Modified WassUp variables and functions for consistency and to avoid</p>
<p>potential conflicts with other plugins:</p>
<p>-Renamed global &#8220;$version&#8221; variable to &#8220;$wassupversion&#8221; to avoid</p>
<p>potential name conflicts.</p>
<p>-Renamed &#8220;$siteurl&#8221; variable to &#8220;$blogurl&#8221; to avoid mixups between</p>
<p>WordPress admin url and the blog url because the term, &#8220;siteurl&#8221;,</p>
<p>is commonly used (incorrectly, IMHO) to refer to the url address of</p>
<p>wordpress admin files. I also made &#8220;$blogurl&#8221; a global variable.</p>
<p>-Renamed &#8220;createTable()&#8221; and &#8220;updateTable()&#8221; functions to</p>
<p>&#8220;wCreateTable()&#8221; and &#8220;wUpdateTable()&#8221; to avoid potential name</p>
<p>conflicts with other plugins.</p>
<p>4) Updated how WassUp creates and updates it&#8217;s tables after activation:</p>
<p>-Changed &#8220;wCreateTable()&#8221; to insert an initial &#8220;welcome to Wassup&#8221;</p>
<p>record in the new table when it creates it.</p>
<p>-Consolidated tests for default charset inclusion in the table</p>
<p>create/update statement into a single test command.</p>
<p>-Added DB_CHARSET existence to the test for charset inclusion.</p>
<p>-Removed the index (username,ip) from the create/update statement</p>
<p>because this caused a language display problem for non-romanic</p>
<p>languages in some WordPress configurations.</p>
<p>?(where table charset !== database charset)?</p>
<p>-Modified &#8220;wUpdateTable()&#8221; function to call &#8220;wCreateTable()&#8221; (and</p>
<p>&#8216;dbDelta&#8217; function) when updating table structure. This ensures that</p>
<p>the upgraded WassUp table will always have the same structure as new</p>
<p>installs. Previous statements that changed individual fields and</p>
<p>indices have been removed or commented out of &#8220;wUpdateTable()&#8221;.</p>
<p>5) Improved search engine lookups in &#8220;wGetSE()&#8221; and &#8220;seReferer()&#8221;:</p>
<p>-Added Bing to list of search engines in &#8220;wGetSE()&#8221;.</p>
<p>-Fixed redundant lookup of search engine data in &#8220;seReferer()&#8221; when</p>
<p>the data was already found in &#8220;wGetSE()&#8221;.</p>
<p>-Added a &#8220;break&#8221; command to terminate search engine comparison loop</p>
<p>instead of using &#8220;return&#8221;. This allows a page number lookup to be</p>
<p>done prior to function exit (return).</p>
<p>-Added a test to omit internal referrers from search engine lookups.</p>
<p>6) Changed &#8220;wassupAppend()&#8221; duplicate test to include userAgent in the</p>
<p>test so that page requests from a browser add-ons such as a feedreader</p>
<p>is not counted as a duplicate of an online page request.</p>
<p>7) Updated visitor screen resolution cookie and query parameter, &#8216;wscr&#8217;,</p>
<p>and added a javascript timer and function to automatically reload the</p>
<p>current page when a visitor has been online for 40 seconds so that</p>
<p>both cookie and &#8216;wscr&#8217; can be seen and recorded by</p>
<p>&#8220;wassUpAppend()/wassupPrepend()&#8221;.</p>
<p>8) Updated &#8220;WassUp Options: Manage Files&amp;Database&#8221; form and data:</p>
<p>-Added more WordPress/PHP/MySQL configuration settings to the list.</p>
<p>-Modified configuration settings in html to be an &#8220;unordered&#8221;</p>
<p>list (&lt;ul&gt;&lt;li&gt;) instead of a series of paragraphs (&lt;p&gt;).</p>
<p>9) Added two new Wassup settings to WordPress options:</p>
<p>-&#8221;wassup_engine&#8221; is Wassup&#8217;s MySQL table engine type and is used to</p>
<p>avoid engine-related syntax errors in MySQL (ie. insert delayed).</p>
<p>-&#8221;wassup_table&#8221; contains the name of wassup&#8217;s table and is used to</p>
<p>set the variables &#8220;$table_name&#8221; and &#8220;$table_tmp_name&#8221;.</p>
<p>10) Added more security and sanitizing of table and forms to protect</p>
<p>against sql and script injection attacks:</p>
<p>-Wrote a new function, &#8220;wCleanURL()&#8221; in &#8216;main.php&#8217; to replace</p>
<p>&#8220;clean_url&#8221; calls and sanitize URLS with either &#8220;clean_url()&#8221; or</p>
<p>&#8220;esc_url()&#8221; (WP 2.8+), depending on WordPress version.</p>
<p>-Added more checks to block script injections attempts disguised as</p>
<p>wassup query/form parameters.</p>
<p>11) Modified how WassUp data backup/export handles errors and sends data:</p>
<p>-Saved &#8220;backup_table()&#8221; errors messages in options variable</p>
<p>$wassup_options-&gt;wassup_alert_msg and displayed them after</p>
<p>&#8220;export_wassup()&#8221; terminates instead of echoing them to the screen</p>
<p>in middle of export.</p>
<p>-Replaced &#8216;print $sql;&#8217; statement in &#8220;backup_table()&#8221; with a</p>
<p>&#8216;return $sql;&#8217; statement so that output is handled by the calling</p>
<p>function, &#8220;export_wassup()&#8221;, instead.</p>
<p>12) Internationalized Wassup 2.7+ dashboard widget function.</p>
<p>13) Improved &#8220;wGetStats()&#8221; statistics in &#8216;main.php&#8217;:</p>
<p>-Added &#8220;urlrequested&#8221; to the type of statistics output.</p>
<p>-Made stats results case insensitive in MySQL queries.</p>
<p>14) Improved &#8220;top 10&#8243; stats output and tightened security in &#8216;action.php&#8217;:</p>
<p>-Replaced the inflexible &#8216;limit 10&#8242; condition in &#8216;top ten&#8217; stats with</p>
<p>a limit variable &#8220;$stat_limit&#8221;. Currently $stat_limit=10 but this may</p>
<p>be changeable by users in upcoming revisions.</p>
<p>-Replaced separate &#8220;urlrequested&#8221; stats query with a call to</p>
<p>&#8220;wGetStats()&#8221; function.</p>
<p>-[404] urls are no longer shown as links.</p>
<p>-If top 10 results count is less than 10, blank &lt;li&gt; statements are</p>
<p>padded to the output for styling consistency.</p>
<p>-Added a test for &#8216;wp-config.php&#8217; in WordPress&#8217; parent directory</p>
<p>when it is not found in the install directory (re Wassup forum post).</p>
<p>15) Renamed the &#8220;cache_check()&#8221; function to &#8220;wassup_foot()&#8221; to avoid</p>
<p>name conflicts with other plugins. Also place footer content inside a</p>
<p>single paragraph surrounded by html comment tags &#8216;&lt;!&#8211;&#8217; and &#8216;&#8211;&gt;&#8217; to</p>
<p>fix a css/float bug that showed up in some theme templates.</p>
<p>16) Updated &#8220;uadetector&#8221; class in &#8216;uadetector.class.php&#8217; module to detect</p>
<p>more browsers, spiders and mobile user agents, operating systems, and</p>
<p>screen resolution.</p>
<p>17) Added more comments to code including new PHPDocumenter-style comments</p>
<p>ex: (/**, @package, @subpackage)</p>
<p>-Added a disclaimer in plugin comment and in &#8220;readme.txt&#8221; file.</p>
<p>-Added a requirement of WordPress 2.2 or higher in plugin description.</p>
<p>-Added a note about incompatibility with &#8220;Super-cache&#8221; plugin in</p>
<p>&#8220;readme.txt&#8221; usage section.</p>
<p>18) Wrote a new function, &#8216;microtime_float()&#8217;, to output microtime as a</p>
<p>float value, similar to PHP 5&#8242;s microtime(true). This is used in</p>
<p>WassUp timer and in the PHP profiler module (see below).</p>
<p>19) In Wassup development copy (unreleased), added a PHP profiler module,</p>
<p>&#8216;profiler.php&#8217; to /lib directory and included the profiler in Wassup</p>
<p>code when in debug mode.  This PHP profiler identifies potential code</p>
<p>bottlenecks that slows down WassUp.</p>
<p>========================</p>
<p>Bugs and security fixes:</p>
<p>========================</p>
<p>1) Fixed a bug in &#8216;main.php&#8217; &#8220;wGetStats()&#8221; function that caused an error</p>
<p>whenever there are no stats to print.</p>
<p>2) Fixed a bug in &#8220;wassupAppend()&#8221; that caused all spam check (referrer,</p>
<p>previous spam) to be disabled whenever Akismet spam check was</p>
<p>disabled.</p>
<p>3) Fixed a bug in &#8220;wGetSE()&#8221; where the locale &#8220;SK&#8221; was incorrectly</p>
<p>appended to a search engine whenever the search domain was not in the</p>
<p>array of &#8220;known&#8221; search engines.</p>
<p>4) In &#8220;wGetLocale()&#8221; function, renamed language codes: Ko to Kr,</p>
<p>Da to Dk, Ur to In, and both He and Iw to Il so that they match</p>
<p>country codes that have an associated flag image. (Closes ticket #85)</p>
<p>5) Removed the index &#8220;(username,ip)&#8221; from WassUp&#8217;s table structure to fix</p>
<p>a language display problem in some non-romanic languages.</p>
<p>6) Fixed bug in Visitor detail/latest hits that caused [expand all]</p>
<p>and [collapse chronology] button options not to be printed when</p>
<p>&#8220;items-per-page&#8221; was set to an amount different from 10 or 20. (Closes</p>
<p>ticket #97)</p>
<p>7) Fixed WassUp script execution vulnerability by escaping code lines</p>
<p>that included &#8220;html_entity_decode&#8221; and &#8220;urldecode&#8221;. Used</p>
<p>&#8220;attribute_escape&#8221; as the escape function.</p>
<p>8) Fixed a bug in &#8220;wassup_foot()&#8221; function (formerly &#8220;cache_check&#8221;) that</p>
<p>caused the wassup footer line to be split up by span/div floats in</p>
<p>some theme templates.</p>
<p>9) Replaced &#8220;eregi&#8221; and &#8220;eregi_replace&#8221; functions with &#8220;stristr&#8221;,</p>
<p>&#8220;str_replace&#8221; or &#8220;preg_replace&#8221; because all PHP POSIX regex functions</p>
<p>are deprecated since PHP 5.3 and deleted since PHP 6.</p>
<p>For details, see http://www.php.net/manual/en/function.ereg.php</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">=============================</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">New features and improvements:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">=============================</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">1) Updated Visitor Detail (Latest Hits) screen interface options:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Extended the automatic timer and ticker to include a pause/restart</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">toggle option that is triggered when the mouse is clicked on the</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">countdown numbers.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Modified the searchbox to restrict initial search parameters to the</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">current date range, not reset it to the last 24 hours.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">File(s): wassup.php, wassup.css, lib/main.php.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">2) Optimized how WassUp plugin functions are loaded into WordPress:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Added a new function, &#8220;wassup_loader()&#8221;, to conditionally load WassUp</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">functions into WordPress so that only needed hooks are added. This</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">also fixes a sporadic activation error bug that appeared in some</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">WordPress 2.8+ configurations.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Removed the standalone hooks for &#8220;wassupAppend&#8221; and &#8220;wassup_init&#8221;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">and put them inside the &#8220;wassupPrepend()&#8221; function so that these</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">functions are &#8220;hooked&#8221; into WordPress only after &#8220;wassupPrepend&#8221;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">determines that they are needed. This also makes it possible to pass</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">command-line arguments like &#8220;$cookie_value&#8221; and &#8220;$screen_res&#8221; to</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">these functions.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">File(s): wassup.php</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">3) Modified WassUp variables and functions for consistency and to avoid</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">potential conflicts with other plugins:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Renamed global &#8220;$version&#8221; variable to &#8220;$wassupversion&#8221; to avoid</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">potential name conflicts.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Renamed &#8220;$siteurl&#8221; variable to &#8220;$blogurl&#8221; to avoid mixups between</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">WordPress admin url and the blog url because the term, &#8220;siteurl&#8221;,</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">is commonly used (incorrectly, IMHO) to refer to the url address of</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">wordpress admin files. I also made &#8220;$blogurl&#8221; a global variable.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Renamed &#8220;createTable()&#8221; and &#8220;updateTable()&#8221; functions to</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&#8220;wCreateTable()&#8221; and &#8220;wUpdateTable()&#8221; to avoid potential name</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">conflicts with other plugins.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">File(s): wassup.php, lib/main.php, lib/settings.php,</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">lib/wassup.class.php</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">4) Updated how WassUp creates and updates it&#8217;s tables after activation:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Changed &#8220;wCreateTable()&#8221; to insert an initial &#8220;welcome to Wassup&#8221;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">record in the new table when it creates it.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Consolidated tests for default charset inclusion in the table</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">create/update statement into a single test command.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Added DB_CHARSET existence to the test for charset inclusion.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Removed the index (username,ip) from the create/update statement</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">because this caused a language display problem for non-romanic</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">languages in some WordPress configurations.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">?(where table charset !== database charset)?</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Modified &#8220;wUpdateTable()&#8221; function to call &#8220;wCreateTable()&#8221; (and</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&#8216;dbDelta&#8217; function) when updating table structure. This ensures that</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">the upgraded WassUp table will always have the same structure as new</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">installs. Previous statements that changed individual fields and</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">indices have been removed or commented out of &#8220;wUpdateTable()&#8221;.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">File(s): wassup.php</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">5) Improved search engine lookups in &#8220;wGetSE()&#8221; and &#8220;seReferer()&#8221;:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Added Bing to list of search engines in &#8220;wGetSE()&#8221;.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Fixed redundant lookup of search engine data in &#8220;seReferer()&#8221; when</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">the data was already found in &#8220;wGetSE()&#8221;.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Added a &#8220;break&#8221; command to terminate search engine comparison loop</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">instead of using &#8220;return&#8221;. This allows a page number lookup to be</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">done prior to function exit (return).</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Added a test to omit internal referrers from search engine lookups.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">File(s): wassup.php</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">6) Changed &#8220;wassupAppend()&#8221; duplicate test to include userAgent in the</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">test so that page requests from a browser add-ons such as a feedreader</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">is not counted as a duplicate of an online page request.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">File(s): wassup.php</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">7) Updated visitor screen resolution cookie and query parameter, &#8216;wscr&#8217;,</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">and added a javascript timer and function to automatically reload the</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">current page when a visitor has been online for 40 seconds so that</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">both cookie and &#8216;wscr&#8217; can be seen and recorded by</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&#8220;wassUpAppend()/wassupPrepend()&#8221;.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">File(s): wassup.php</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">8) Updated &#8220;WassUp Options: Manage Files&amp;Database&#8221; form and data:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Added more WordPress/PHP/MySQL configuration settings to the list.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Modified configuration settings in html to be an &#8220;unordered&#8221;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">list (&lt;ul&gt;&lt;li&gt;) instead of a series of paragraphs (&lt;p&gt;).</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">File(s): wassup.css, lib/settings.php</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">9) Added two new Wassup settings to WordPress options:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-&#8221;wassup_engine&#8221; is Wassup&#8217;s MySQL table engine type and is used to</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">avoid engine-related syntax errors in MySQL (ie. insert delayed).</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-&#8221;wassup_table&#8221; contains the name of wassup&#8217;s table and is used to</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">set the variables &#8220;$table_name&#8221; and &#8220;$table_tmp_name&#8221;.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">File(s): wassup.php, lib/main.php, lib/wassup.class.php</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">10) Added more security and sanitizing of table and forms to protect</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">against sql and script injection attacks:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Wrote a new function, &#8220;wCleanURL()&#8221; in &#8216;main.php&#8217; to replace</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&#8220;clean_url&#8221; calls and sanitize URLS with either &#8220;clean_url()&#8221; or</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&#8220;esc_url()&#8221; (WP 2.8+), depending on WordPress version.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Added more checks to block script injections attempts disguised as</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">wassup query/form parameters.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">File(s): wassup.php, lib/main.php, lib/action.php</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">11) Modified how WassUp data backup/export handles errors and sends data:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Saved &#8220;backup_table()&#8221; errors messages in options variable</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$wassup_options-&gt;wassup_alert_msg and displayed them after</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&#8220;export_wassup()&#8221; terminates instead of echoing them to the screen</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">in middle of export.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Replaced &#8216;print $sql;&#8217; statement in &#8220;backup_table()&#8221; with a</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&#8216;return $sql;&#8217; statement so that output is handled by the calling</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">function, &#8220;export_wassup()&#8221;, instead.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">File(s): wassup.php, lib/settings.php</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">12) Internationalized Wassup 2.7+ dashboard widget function.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">File(s): wassup.php</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">13) Improved &#8220;wGetStats()&#8221; statistics in &#8216;main.php&#8217;:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Added &#8220;urlrequested&#8221; to the type of statistics output.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Made stats results case insensitive in MySQL queries.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">File(s): wassup.php, lib/main.php, lib/action.php</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">14) Improved &#8220;top 10&#8243; stats output and tightened security in &#8216;action.php&#8217;:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Replaced the inflexible &#8216;limit 10&#8242; condition in &#8216;top ten&#8217; stats with</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">a limit variable &#8220;$stat_limit&#8221;. Currently $stat_limit=10 but this may</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">be changeable by users in upcoming revisions.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Replaced separate &#8220;urlrequested&#8221; stats query with a call to</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&#8220;wGetStats()&#8221; function.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-[404] urls are no longer shown as links.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-If top 10 results count is less than 10, blank &lt;li&gt; statements are</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">padded to the output for styling consistency.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Added a test for &#8216;wp-config.php&#8217; in WordPress&#8217; parent directory</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">when it is not found in the install directory (re Wassup forum post).</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Files(s): lib/action.php.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">15) Renamed the &#8220;cache_check()&#8221; function to &#8220;wassup_foot()&#8221; to avoid</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">name conflicts with other plugins. Also place footer content inside a</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">single paragraph surrounded by html comment tags &#8216;&lt;!&#8211;&#8217; and &#8216;&#8211;&gt;&#8217; to</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">fix a css/float bug that showed up in some theme templates.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Files(s): wassup.php</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">16) Updated &#8220;uadetector&#8221; class in &#8216;uadetector.class.php&#8217; module to detect</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">more browsers, spiders and mobile user agents, operating systems, and</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">screen resolution.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Files: lib/uadetector.class.php.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">17) Added more comments to code including new PHPDocumenter-style comments</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">ex: (/**, @package, @subpackage)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Added a disclaimer in plugin comment and in &#8220;readme.txt&#8221; file.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Added a requirement of WordPress 2.2 or higher in plugin description.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-Added a note about incompatibility with &#8220;Super-cache&#8221; plugin in</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&#8220;readme.txt&#8221; usage section.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Files(s): wassup.php, readme.txt, et al.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">18) Wrote a new function, &#8216;microtime_float()&#8217;, to output microtime as a</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">float value, similar to PHP 5&#8242;s microtime(true). This is used in</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">WassUp timer and in the PHP profiler module (see below).</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Files(s): wassup.php, lib/profiler.php.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">19) In Wassup development copy (unreleased), added a PHP profiler module,</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&#8216;profiler.php&#8217; to /lib directory and included the profiler in Wassup</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">code when in debug mode.  This PHP profiler identifies potential code</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">bottlenecks that slows down WassUp.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Files(s): all, lib/profiler.php</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">========================</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Bugs and security fixes:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">========================</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">1) Fixed a bug in &#8216;main.php&#8217; &#8220;wGetStats()&#8221; function that caused an error</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">whenever there are no stats to print.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">2) Fixed a bug in &#8220;wassupAppend()&#8221; that caused all spam check (referrer,</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">previous spam) to be disabled whenever Akismet spam check was</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">disabled.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">3) Fixed a bug in &#8220;wGetSE()&#8221; where the locale &#8220;SK&#8221; was incorrectly</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">appended to a search engine whenever the search domain was not in the</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">array of &#8220;known&#8221; search engines.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">4) In &#8220;wGetLocale()&#8221; function, renamed language codes: Ko to Kr,</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Da to Dk, Ur to In, and both He and Iw to Il so that they match</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">country codes that have an associated flag image. (Closes ticket #85)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">5) Removed the index &#8220;(username,ip)&#8221; from WassUp&#8217;s table structure to fix</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">a language display problem in some non-romanic languages.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">6) Fixed bug in Visitor detail/latest hits that caused [expand all]</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">and [collapse chronology] button options not to be printed when</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&#8220;items-per-page&#8221; was set to an amount different from 10 or 20. (Closes</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">ticket #97)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">7) Fixed WassUp script execution vulnerability by escaping code lines</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">that included &#8220;html_entity_decode&#8221; and &#8220;urldecode&#8221;. Used</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&#8220;attribute_escape&#8221; as the escape function.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">8) Fixed a bug in &#8220;wassup_foot()&#8221; function (formerly &#8220;cache_check&#8221;) that</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">caused the wassup footer line to be split up by span/div floats in</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">some theme templates.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">9) Replaced &#8220;eregi&#8221; and &#8220;eregi_replace&#8221; functions with &#8220;stristr&#8221;,</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&#8220;str_replace&#8221; or &#8220;preg_replace&#8221; because all PHP POSIX regex functions</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">are deprecated since PHP 5.3 and deleted since PHP 6.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">For details, see http://www.php.net/manual/en/function.ereg.p</div>
]]></content:encoded>
			<wfw:commentRss>http://www.wpwp.org/archives/wassup-1-7-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wpwp.org/archives/wassup-1-7-2/</feedburner:origLink></item>
		<item>
		<title>WassUp 1.7.1 fixes 1.7 bugs – UPGRADE!</title>
		<link>http://feedproxy.google.com/~r/wpwp/~3/qhABTpPtnVY/</link>
		<comments>http://www.wpwp.org/archives/wassup-171-fixes-17-bugs-upgrade/#comments</comments>
		<pubDate>Thu, 21 May 2009 08:03:53 +0000</pubDate>
		<dc:creator>Michele</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[wassup]]></category>

		<guid isPermaLink="false">http://www.wpwp.org/?p=118</guid>
		<description><![CDATA[Here is the latest WassUp version 1.7.1, we hope we have found and fixed every 1.7 bugs, but please use the Forum if you discover problems with this version too. Download WassUp Version 1.7.1 The main changes are: RSS invalid fixed &#8220;string(y) &#8220;post-xxx&#8221;" error fixed &#8220;Illegal request permission denied&#8221; error fixed some little changes to [...]]]></description>
			<content:encoded><![CDATA[<p>Here is the latest WassUp <strong>version 1.7.1</strong>, we hope we have found and fixed every 1.7 bugs, but please use the <a href="http://www.wpwp.org/forums">Forum</a> if you discover problems with this version too.</p>
<blockquote><p><a href="http://www.wpwp.org/download">Download WassUp Version 1.7.1</a></p></blockquote>
<p>The main changes are:</p>
<ul>
<li><a href="http://www.wpwp.org/forums/topic/after-wassup-update-rss-feed-does-not-validate">RSS invalid fixed</a></li>
<li><a href="http://www.wpwp.org/forums/topic/wassup-17-causes-error-in-frontend">&#8220;string(y) &#8220;post-xxx&#8221;" error fixed</a></li>
<li><a href="http://www.wpwp.org/forums/topic/illegal-request-permission-denied-message-with-17">&#8220;Illegal request permission denied&#8221; error fixed</a></li>
<li>some little changes to fix small problems</li>
<li>added a new dashboard style and data, now you can watch some &#8220;current users online&#8221; details on the dashboard.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.wpwp.org/archives/wassup-171-fixes-17-bugs-upgrade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wpwp.org/archives/wassup-171-fixes-17-bugs-upgrade/</feedburner:origLink></item>
		<item>
		<title>WassUp 1.7 has some bugs, 1.7.1 version is coming asap</title>
		<link>http://feedproxy.google.com/~r/wpwp/~3/TfliQw_1Oeo/</link>
		<comments>http://www.wpwp.org/archives/wassup-17-has-some-bugs-171-version-is-coming-asap/#comments</comments>
		<pubDate>Wed, 20 May 2009 07:20:21 +0000</pubDate>
		<dc:creator>Michele</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[warnings]]></category>
		<category><![CDATA[wassup]]></category>

		<guid isPermaLink="false">http://www.wpwp.org/?p=116</guid>
		<description><![CDATA[Hi, we apologize but the new WassUp version 1.7 has a lot of bugs and issues, we are sorry but this new version has a lot of new code (as you can see on the release changelog), so we received a lot of requests and we are just fixing every bugs. The development SVN has [...]]]></description>
			<content:encoded><![CDATA[<p>Hi,</p>
<p>we apologize but the new WassUp version 1.7 has a lot of bugs and issues, we are sorry but this new version has a lot of new code (as you can see on the <a href="http://www.wpwp.org/archives/wassup-17-is-here/">release changelog</a>), so we received a lot of requests and we are just fixing every bugs.</p>
<p>The development SVN has the new fixes yet, so if you are impatient you could take the new 1.7.1 version from this SVN:</p>
<blockquote><p><code>svn co svn://svn.wpwp.org/var/svn/wassup/trunk wassup</code></p></blockquote>
<p>Thanks to Alex from <a href="http://automattic.com/">Automattic</a>, we discovered a bug on the Akismet spam function, we apologize but due to this bug some of your Akismet stats could be invalid, that&#8217;s not a huge problem but you have been warned. Now we fixed it.</p>
<p>Some of the bugs discovered in version 1.7 could be examined from the latest <a href="http://www.wpwp.org/forums/">forum posts</a>, thank you all to report them.</p>
<p>Version 1.7.1 is coming in few hours, if you discover bugs please write us.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wpwp.org/archives/wassup-17-has-some-bugs-171-version-is-coming-asap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wpwp.org/archives/wassup-17-has-some-bugs-171-version-is-coming-asap/</feedburner:origLink></item>
		<item>
		<title>WassUp 1.7 is here!</title>
		<link>http://feedproxy.google.com/~r/wpwp/~3/AWz9Egq-HyA/</link>
		<comments>http://www.wpwp.org/archives/wassup-17-is-here/#comments</comments>
		<pubDate>Mon, 18 May 2009 11:47:26 +0000</pubDate>
		<dc:creator>Michele</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[wassup]]></category>

		<guid isPermaLink="false">http://www.wpwp.org/?p=109</guid>
		<description><![CDATA[Thanks to Helene for the amazing job she did on this new WassUp version. Yes we have a new major release number, because there are a lot of changes on the core code. Download WassUp Version 1.7 Here is the main changelog for this version 1.7: Changelog Summary: 21 feature improvements 15 bug fixes ============================= [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to <strong><a href="http://www.techfromhel.com/">Helene</a></strong> for the amazing job she did on this new WassUp version. Yes we have a new major release number, because there are a lot of changes on the core code.</p>
<blockquote><p><a href="http://www.wpwp.org/download">Download WassUp Version 1.7</a></p></blockquote>
<p>Here is the main changelog for this <strong>version 1.7</strong>:</p>
<p><strong>Changelog Summary:</strong><br />
21 feature improvements<br />
15 bug fixes</p>
<p>=============================<br />
<strong>New features and improvements:</strong><br />
=============================</p>
<p>1) Modified Wassup to include the following design/interface changes</p>
<ul>
<li> -Added a top horizontal menu in the contextual menu area of WordPress 2.7+ for each page of WassUp. This improves page navigation because in WordPress 2.7 submenus are located at the bottom of the page and may be off-screen.</li>
<li> -Added the word &#8220;WassUp&#8221; to the page heading on each submenu page and included the standard plugin icon in the heading for WordPress 2.7+.</li>
<li> -Added a mouse-over effect using jQuery that causes the &#8220;delete&#8221; and &#8220;table&#8221; icons to be swapped with a slightly larger image.</li>
<li>-Added a background color to the jQuery delete effect so the colorchanges just before the div disappears.</li>
</ul>
<p>2) To make WassUp run in WordPress 2.6+ secure configurations that have &#8220;/wp-content/&#8221; in a directory different from WordPress itself, added a new constant, WASSUPURL, to point to WassUp&#8217;s plugin page url. Also added GET parameter, &#8220;wpabspath=ABSPATH&#8221; for &#8220;action.php&#8221; so it will also run. &#8220;wpabspath&#8221; is mime64 encoded to mask ABSPATH value before being passed on the URL.</p>
<p>3) Added more security and sanitizing of table data to protect against sql injection attacks:</p>
<ul>
<li>-Wrote a new function, &#8220;wSanitizeData&#8221;, to clean the wassup record of potentially harmful code prior to insert into mySQL.</li>
<li>-Used &#8220;clean_url&#8221; WordPress function to sanitize referrer urls. This replaces the previous &#8220;htmlentities/urlencode&#8221; functions.</li>
<li>-Cleaned the output of &#8220;Stringshortener()&#8221; and &#8220;AddSiteURL()&#8221; functions, inside these functions, before the output is sent. Removed sanitizing done after output, as it is no longer needed.</li>
<li>-Wrote code to block hackers from using WassUp to hack WordPress by checking page requests for certain words found in malicious code and denying access when found.</li>
<li>-Added a security test for logged-in user in &#8220;action.php&#8221; that aborts the program if no login is detected. This was needed because AJAX requests bypass normal WordPress login checks.</li>
</ul>
<p>4) Updated MySQL code in &#8220;MainItems&#8221; class to improve performance and security:</p>
<ul>
<li>-Changed MySQL &#8220;select&#8221; statement to &#8220;SELECT SQL_BUFFER_RESULT&#8221; to reduce incidents of timeouts and memory errors on large data sets. Available for ISAM and MyISAM engines only, ignored by other engines.</li>
<li>-Increased MySQL &#8220;wait_timeout&#8221; to 120 seconds.</li>
<li>-Used &#8216;sprintf&#8217; PHP function to build MySQL query strings in a cleaner and safer manner (similar to wpdb::prepare in WP2.3.3+).</li>
<li>-Wrote a new method &#8220;MainItem::buildSearch&#8221; to generate the search portion of MySQL queries and protect against SQL injection in user-input.</li>
<li>-Changed &#8220;mainItems&#8221; class constructor to accept up to 5 arguments, 3 required (table_name,to_date,from_date) and 2 optional (whereis, limit) that are used to set class variables. This replaces the requirement to set object variables separately and outside the object definition and reduces the chances of coding bugs.</li>
<li>-Modified &#8220;mainItem::theChart&#8221; method to return chart URL only (no html code) for more flexibility in chart display.  Removed &#8220;$chart_pos&#8221; argument as it is no longer needed.</li>
<li>-Changed the code to generate charts from &#8220;if-elseif&#8221; to &#8220;switch-case&#8221; so more charts can be generated for more date ranges.</li>
</ul>
<p>5) Added three new settings in WassupOptions:</p>
<ul>
<li> -&#8221;wassup_admin&#8221; for separate recording of logged-in administrators.</li>
<li>-&#8221;wassup_exclude_user&#8221; to exclude recording by username.</li>
<li>-&#8221;wassup_version&#8221; for use in updating Wassup tables on activation.</li>
</ul>
<p>6) In Wassup Options page, made the following changes:</p>
<ul>
<li>-Added input fields for Administrator recording and username exclusion in &#8220;Statistics Recording&#8221; section.</li>
<li>-Disabled &#8220;wassup_geoip_map&#8221; input field when &#8216;curl_init&#8217; does not exist.</li>
<li>-Internationalized messages about Curl errors.</li>
<li>-Expanded the list of MySQL server and PHP settings in &#8220;Manage Database&#8221; section.</li>
<li>-Moved page heading out of &#8220;settings.php&#8221; into &#8220;wassup.php&#8221; to keep page headings in one location for easier editing.</li>
</ul>
<p>7) Added new key, &#8220;wassup_time_range&#8221;, in WassupOptions::getKeyOptions (formerly &#8220;getItemOptions&#8221;) method as the name for time range filters.<br />
It is used to display a list of time range options for the select form on WassUp&#8217;s main/detail page.</p>
<p>8) Modified WassUp main/detail page to include the following:</p>
<ul>
<li> -Increased the number of time range filter choices to include &#8220;6 hours&#8221;, &#8220;3 months&#8221;, &#8220;6 months&#8221;, and &#8220;all time&#8221;.</li>
<li>-Extended search filter to include &#8220;username&#8221; and &#8220;comment author&#8221; in the search range (in mainItems::buildSearch).</li>
<li>-Moved chart code to the bottom of page and wrote a jQuery script to insert the chart at the top of page&#8230;to minimize browser timeouts due to slow up page load.</li>
<li>-Administrators are listed as &#8220;Administrators&#8221; instead of &#8220;Logged-In User&#8221; to distinguish them from regular visitors.</li>
</ul>
<p>9) Modified &#8220;createTable()&#8221; function to include the following:</p>
<ul>
<li> -Created a new index on &#8220;username&#8221;.</li>
<li>-Changed  &#8220;CREATE TABLE&#8221; to &#8220;CREATE TABLE IF NOT EXISTS&#8221; so tables are created only if needed.</li>
<li>-Changed &#8220;wp_wassup_tmp&#8221; table creation to use &#8220;CREATE TABLE LIKE&#8221; syntax instead of making a second call to &#8220;createTable()&#8221;. For MySQL 4.0 or less, the 2nd call to &#8220;createTable()&#8221; is still used.</li>
</ul>
<p>10) Modified &#8220;updateTable()&#8221; function to include the following:</p>
<ul>
<li> -Included a test for &#8220;wassup_version&#8221; to limit updates to only those needed for the current WassUp upgrade</li>
<li>-All of &#8216;wp_wassup&#8217; indices except &#8216;id&#8217; are dropped and rebuilt with every upgrade. This should improve WassUp performance because indices get inefficient and corrupt over time.</li>
</ul>
<p>11) Modified &#8220;insert_into_wp()&#8221; function to include:</p>
<ul>
<li> -Changed number of parameters to 2, table name and table record (an associative array). This replaces the over 20 parameters previously required and simplifies the function.</li>
<li>-Changed &#8220;INSERT&#8221; syntax to &#8220;INSERT DELAYED&#8221; to queue the insert request in the background when wassup table is locked or busy.</li>
<li>-Used PHP&#8217;s &#8220;sprintf&#8221; to build the MySQL insert statement and used new sanitizing function, &#8220;wSanitizeData()&#8221;, to clean up data. This is like &#8220;wpdb::prepare&#8221; for pre 2.3.3 versions of WordPress.</li>
</ul>
<p>12) Changed &#8220;wassupAppend()/wassupaPrepend()&#8221; code to include:</p>
<ul>
<li> -Added IP and Hostname to wassup cookie contents to reuse hostname for multi-page visits from the same IP and avoid multiple &#8216;gethostbyaddr&#8217; lookups on one IP.</li>
<li>-Added &#8220;user-agent&#8221;, &#8220;browser&#8221;, &#8220;spider&#8221;, and &#8220;os&#8221; fields to the query for &#8220;duplicate check&#8221;. If results show same visitor within 3 minutes (but not duplicate) these values are reused, avoiding additional tests.</li>
<li>-Added new exclusion controls by &#8220;username&#8221; and for administrators.</li>
<li>-Moved search engine detection and language detection to after all exclusion control are done to avoid unnecessary tests on excluded records.</li>
<li>-For detected hack attempts, URLrequested field is prepended with &#8220;[404]&#8221; to distinguish it from valid page requests. WassUp detail reports do not create a link for these requests as the link would not exist.</li>
<li>-Used PHP&#8217;s &#8220;ignore_user_abort(1)&#8221; to prevent premature aborts and window close from affecting recording. &#8220;wassupAppend&#8221; finishes recording in the background whenever a user interruption occurs.</li>
<li>-Increased script execution time to 0.5 hour when wassup table is optimized as this can be slow on large tables.</li>
<li>-Changed automatic purge of &#8220;wp_wassup_tmp&#8221; table to be less frequent (3 minutes interval) to avoid slowdowns due to table locks or busy server.</li>
</ul>
<p>13) Finished javascript/cookie to record user resolution, but moved the code from &#8220;wassupAppend()&#8221; to &#8220;wassup_meta_info()&#8221; where it is now part of the document &lt;head&gt; and can retrieve the javascript screen variables to save in a cookie. Since cookies are not readable until a new page load, it is only on a 2nd pageview that screen resolution is recorded. To get around this shortcoming, the screen_res cookie has a longer lifespan (48 hours) and, for multi-page visits, the first screen-resolution is retroactively updated in wassupAppend()&#8221;.</p>
<p>14) Wrote a new class, &#8220;uadetector&#8221;, that compares user-agent to the 10 most popular user-agents, then builds on the &#8220;detector&#8221; class to identify more obscure user-agents. It can detect IE8, Win7, Win2008, Windows 64-bit os versions, and mobile devices.</p>
<p>15) Wrote a new function, &#8220;wMajorVersion()&#8221;, to return the major number from a version string. This function is used to make sure that browser information stored in wassup table is limited to browser name and major version number only. Common browsers will now be counted more accurately in WassUp statistics.</p>
<p>16) Wrote a new function, &#8220;validIP()&#8221;, to identify and return a valid IP address from a list of IPs. This is used find a visitor&#8217;s IP when IP forwarding or a proxy server is used.</p>
<p>17) Updated &#8220;wGetSpider()&#8221; function to include the following:</p>
<ul>
<li>-Added tests to identify MSN and Yahoo robots by their hostname or IP as these crawlers don&#8217;t always use a unique user-agent string to distinguish themselves from regular visitors.</li>
<li>-Added a &#8220;break&#8221; to exit foreach loop immediately after user agent match is found.</li>
<li>-Added tests for obvious script injection bots.</li>
<li>-Added a new return parameter, crawlertype, to distinguish Robots, feed readers, link checkers, etc. For script injection bots crawlertype=&#8221;H&#8221; is returned which then causes spam=&#8221;3&#8243; (hack attempt) to be set in wassup record.</li>
<li>-Removed wildcards and version#&#8217;s from spider array because wildcards are not matched and version number can change.</li>
<li>-Added new agents and removed obsolete agents from spider array.</li>
</ul>
<p>18) Wrote a new function, &#8220;wGetStats()&#8221; to compile and output statistics in an ordered array for &#8220;top ten&#8221; and widget stats.  Currently this is only implemented for &#8220;top ten&#8221; referrers.</p>
<p>19) Modified &#8220;spyview()&#8221; function to add an optional 5th parameter, &#8220;spy_datasource&#8221;. This parameter is the name of the wassup table used as the source of spy data. The default is &#8220;wp_wassup_tmp&#8221;. However, when &#8220;spy&#8221; page is first opened, &#8220;wp_wassup&#8221; is used to populate the screen and chart with 10 initial data points.</p>
<p>20) Wrote a new function, &#8220;backup_wassup()&#8221; to output wassup SQL data to a file. Intended as an alternative to &#8220;export_wassup&#8221; which times out<br />
on large tables. Currently not implemented.</p>
<p>21) Added a Debug mode to print out some useful information about the page you are surfing (blog and admin pages). &#8220;$debug_mode&#8221; is assigned only once in the beginning of &#8220;wassup.php&#8221;, then declared global in all functions where it is used in &#8220;wassup.php&#8221;, &#8220;main.php&#8221;, and &#8220;uadetector.php&#8221;. In &#8220;action.php&#8221; it is passed as a GET parameter. you have to manually activate it by set it to TRUE in wassup.php ($debug_mode=true;)</p>
<p>=============================<br />
<strong>Bug fixes and code cleanup:</strong><br />
=============================</p>
<p>1) Fixed the problem with WassUp widget that caused the widget options to be inaccessible after being set once. Also changed widget so that<br />
there is no data displayed when WassUp is inactive (not recording).</p>
<p>2) Updated main/detail page and &#8220;action.php&#8221; to send a keep-alive &#8220;heartbeat&#8221; output to the browser (&lt;!&#8211;heartbeat&#8211;&gt;) and increased PHP script timeout length to help prevent browser timeouts when MySQL is slow  to respond.</p>
<p>3) Removed redundant sanitizing functions such as &#8220;htmlentities(attribute_escape())&#8221; and &#8220;urlencode(attribute_escape())&#8221; on $_POST, $_GET, or database variables and replaced them with either a single &#8220;attribute_escape()&#8221; function or a test for a valid numeric value.</p>
<p>4) Removed the redundant &#8220;attribute_escape&#8221; from the prepare statement in &#8220;insert_into_db()&#8221; function because &#8220;prepare()&#8221; does it&#8217;s own sanitizing of data.</p>
<p>5) In &#8220;createTables()&#8221; function, removed the test for $wpdb-&gt;supports_collation() because that method is only available in wordpress 2.5+ and does the same thing as the existing version check for mySQL 4.1 (redundant).</p>
<p>6) Commented out &#8220;wp_cache_flush() because it clears the database cache and could cause WordPress to run sluggishly on slow servers.</p>
<p>7) Replaced &#8220;wp_get_current_user&#8221; with &#8220;get_currentuserinfo()&#8221; which sets the $current_user global in &#8220;WassupAppend/WassupPrepend&#8221; functions. Plugins can override &#8220;wp_set_current_user&#8221; and this could affect logged-in user detection. It is unknown whether this change fixes the reported problem with WassUp not tracking logged-in users when a login management plugin is installed.</p>
<p>8) Removed &#8220;is_admin()&#8221; test before calling &#8220;wassupPrepend()&#8221; because it caused all &#8220;hack attempts&#8221; to be omitted from recordings.</p>
<p>9) Created variables &#8220;$URLQuery&#8221; and &#8220;$stickyfilters&#8221; to replace $_SERVER['QUERY_STRING'] in link creation for user selectable filters on Wassup Detail page&#8230;to prevent parameters from being reset whenever a new filter is selected.</p>
<p>10) In WassupOptions class, changed user role names to match WordPress user role/level numbers (fixes bug reported in wpwp forums). Role names are now standard WordPress names (no pluralization) and is translatable by WordPress itself, not just Wassup.</p>
<p>11) Set &#8220;wassup_active&#8221; option to inactive in &#8220;wassup_uninstall()&#8221; and for &#8220;Options ==&gt;Uninstall&#8221; to stop recordings before &#8220;wp_wassup&#8221; table is deleted&#8230;to avoid any problems with Wassup&#8217;s delayed inserts and background operations (see new features above).</p>
<p>12) Fixed several problems with the &#8220;spyview()&#8221; function in &#8220;main.php&#8221;:</p>
<ul>
<li>-Replaced MySQL query with a simple select statement with no &#8220;group by&#8221; clause. &#8220;group by id&#8221; was unneeded because `id` is a unique field and any groups on it would have exactly one member.</li>
<li>-Inserted missing quotation marks in $_SERVER[HTTP_USER_AGENT] on lines #660 and 779.</li>
<li>-Added a test for &#8216;curl_init&#8217; so &#8220;spy&#8221; will run even when a user don&#8217;t have &#8216;Curl&#8217; on their server. Line #654.</li>
<li>-Fixed a bug that caused the list of visitor records to occasionally display without any color-coding. Reset $unclass to &#8220;sum-box&#8221; after each &#8220;foreach&#8221; iteration and changed PHP code that sets the &lt;div&gt; class.</li>
<li>-Reduced the frequency of &#8220;No Activity&#8221; messages&#8221; by increasing the modulo number to &#8220;99&#8243; in line#763.</li>
<li>-Added a test for existence of $data[1] on line #695 to prevent PHP warnings.</li>
<li>-Removed a redundancy check on &#8220;username&#8221; in elseif statement on line#642.</li>
</ul>
<p>13) In the &#8220;top ten&#8221; report, added the condition &#8220;spider=&#8221;&#8221; to &#8220;top browsers&#8221; and &#8220;top os&#8221; to prevent spiders from skewing statistics.</p>
<p>14) In &#8220;action.php&#8221;, replaced &#8220;$wassup_options&#8221; with &#8220;$wassup_settings&#8221; because &#8220;$wassup_options&#8221; is not defined in the &#8220;action.php&#8221; module.</p>
<p>15) In &#8220;wGetLocale()&#8221; function, added code to swap japanese language code &#8220;ja&#8221; to Japan country code &#8220;jp&#8221;, for consistency and flag display. Country code swaps (or a flag) is still needed for the languages: ko, he, ur, and da.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wpwp.org/archives/wassup-17-is-here/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.wpwp.org/archives/wassup-17-is-here/</feedburner:origLink></item>
		<item>
		<title>WassUp 1.6.5</title>
		<link>http://feedproxy.google.com/~r/wpwp/~3/v2tdxo7ObuE/</link>
		<comments>http://www.wpwp.org/archives/wassup-165/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 10:09:34 +0000</pubDate>
		<dc:creator>Michele</dc:creator>
				<category><![CDATA[language]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[wassup]]></category>

		<guid isPermaLink="false">http://www.wpwp.org/?p=70</guid>
		<description><![CDATA[Hi everybody, thank you all for your effort to translate WassUp in your preferred language, we got a lot of fans who helped us. Thank you very much! This new version has very few changes in the core but a lot of changes in the language files, here is a little changelog: - New dashboard [...]]]></description>
			<content:encoded><![CDATA[<p>Hi everybody,</p>
<p>thank you all for your effort to translate WassUp in your preferred language, we got a lot of fans who helped us. Thank you very much!</p>
<p>This new version has very few changes in the core but a lot of changes in the language files, here is a little changelog:</p>
<p>- New dashboard item for Wodpress 2.7<br />
- Few bugs fixed<br />
- Language files completely changed</p>
<p style="padding-left: 30px;"><strong><strong><strong><a href="/download"><strong>Download WassUp 1.6.5</strong></a></strong></strong></strong></p>
<p>Here is the list of WassUp translations and the current status as you can see it on the <a href="https://translations.launchpad.net/wassup/trunk/+pots/wassup">Launchpad official WassUp translations</a> page.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wpwp.org/archives/wassup-165/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wpwp.org/archives/wassup-165/</feedburner:origLink></item>
		<item>
		<title>Translations help needed</title>
		<link>http://feedproxy.google.com/~r/wpwp/~3/UlmWf5ELrBo/</link>
		<comments>http://www.wpwp.org/archives/translations-help-needed/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 11:10:03 +0000</pubDate>
		<dc:creator>Michele</dc:creator>
				<category><![CDATA[language]]></category>
		<category><![CDATA[wassup]]></category>

		<guid isPermaLink="false">http://www.wpwp.org/?p=63</guid>
		<description><![CDATA[Hi everyone, WassUp finally got their language translations on the Launchpad site. Now we need your efforts to complete and correct the translations, so please, if you have a Launchpad account and you wanna help us, this is the Translation status for wassup Actually WassUp supports the following languages: English Brazilian Portuguese French German Italian [...]]]></description>
			<content:encoded><![CDATA[<p>Hi everyone,</p>
<p>WassUp finally got their language translations on the <a href="https://launchpad.net/wassup/">Launchpad</a> site. Now we need your efforts to complete and correct the translations, so please, if you have a Launchpad account and you wanna help us, this is the <a href="https://translations.launchpad.net/wassup/trunk/+pots/wassup">Translation status for wassup</a></p>
<p>Actually WassUp supports the following languages:</p>
<ul>
<li>English</li>
<li><a href="https://translations.launchpad.net/wassup/trunk/+pots/wassup/pt_BR/+translate">Brazilian Portuguese</a></li>
<li><a href="https://translations.launchpad.net/wassup/trunk/+pots/wassup/fr/+translate">French</a></li>
<li><a href="https://translations.launchpad.net/wassup/trunk/+pots/wassup/de/+translate">German</a></li>
<li><a href="https://translations.launchpad.net/wassup/trunk/+pots/wassup/it/+translate">Italian</a></li>
<li><a href="https://translations.launchpad.net/wassup/trunk/+pots/wassup/ja/+translate">Japanese</a></li>
<li><a href="https://translations.launchpad.net/wassup/trunk/+pots/wassup/nb/+translate">Norwegian Bokmal</a></li>
<li><a href="https://translations.launchpad.net/wassup/trunk/+pots/wassup/pl/+translate">Polish</a></li>
<li><a href="https://translations.launchpad.net/wassup/trunk/+pots/wassup/es/+translate">Spanish</a></li>
<li><a href="https://translations.launchpad.net/wassup/trunk/+pots/wassup/tr/+translate">Turkish</a></li>
</ul>
<p>Thank you all very much!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wpwp.org/archives/translations-help-needed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wpwp.org/archives/translations-help-needed/</feedburner:origLink></item>
		<item>
		<title>WassUp 1.6.4</title>
		<link>http://feedproxy.google.com/~r/wpwp/~3/lZxbxtk6R8I/</link>
		<comments>http://www.wpwp.org/archives/wassup-164/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 11:38:54 +0000</pubDate>
		<dc:creator>Michele</dc:creator>
				<category><![CDATA[language]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[wassup]]></category>

		<guid isPermaLink="false">http://www.wpwp.org/?p=60</guid>
		<description><![CDATA[Hi wassupers and happy new year!! here I am to annouce you I just release the WassUp 1.6.4 version, the development is still slow but I found the time to add a new language and fix some small things. First of all thanks to Clauber Santos who translated WassUp in Brazilian Portuguese I hope you [...]]]></description>
			<content:encoded><![CDATA[<p>Hi wassupers and happy new year!!</p>
<p>here I am to annouce you I just release the WassUp 1.6.4 version, the development is still slow but I found the time to add a new language and fix some small things.</p>
<p>First of all thanks to Clauber Santos who translated WassUp in <strong>Brazilian Portuguese</strong> I hope you like it. Then I added every Bot/Spider/searchEngines listed in the wiki trac and finally I fixed some small bugs.</p>
<p>Please, as usual, write some feedback on the <a href="http://www.wpwp.org/forums/">forum</a> if you get in trouble with this new version or if you have some new idea.</p>
<blockquote><p><strong><strong><a href="/download"><strong>Download WassUp 1.6.4</strong></a></strong></strong></p></blockquote>
<p>I don&#8217;t know if you checked the WassUp official site recently but I would like to tell you I added <strong><a href="http://www.facebook.com/pages/WassUp-WordPress-Plugin/30811184183">WassUp as Facebook Page</a></strong> (yes I&#8217;m a Facebook fan!) so if you like it you can find your preferred statistics plugin on <a href="http://www.facebook.com/pages/WassUp-WordPress-Plugin/30811184183">Facebook</a> too.</p>
<p>Again, I wish you a very happy new year!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wpwp.org/archives/wassup-164/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wpwp.org/archives/wassup-164/</feedburner:origLink></item>
		<item>
		<title>WassUp 1.6.3</title>
		<link>http://feedproxy.google.com/~r/wpwp/~3/_lYmAJuiaZ4/</link>
		<comments>http://www.wpwp.org/archives/wassup-163/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 13:30:06 +0000</pubDate>
		<dc:creator>Michele</dc:creator>
				<category><![CDATA[language]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[wassup]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.wpwp.org/?p=44</guid>
		<description><![CDATA[Hi everybody! this is a very fast post to let you know I just released the 1.6.3 version of WassUp. This version hasn&#8217;t new features it only fixes some old bugs and add the spanish language (thanks to Hans Christian). Please let me know if the translation is good or not. Unfortunately I have a [...]]]></description>
			<content:encoded><![CDATA[<p>Hi everybody!</p>
<p>this is a very fast post to let you know I just released the <a href="/download"><strong>1.6.3 version of WassUp</strong></a>.<br />
This version hasn&#8217;t new features it only fixes some old bugs and add the <strong>spanish</strong> language (thanks to <a href="http://www.art-deco.es/">Hans Christian</a>). Please let me know if the translation is good or not.</p>
<p>Unfortunately I have a lot of things to do so the time to work on WassUp is almost zero, I hope I will be available for it as soon as possible, in the meantime thank you everybody to help us with your comments on <a href="/forums">the forum</a>.</p>
<blockquote><p><strong><strong><a href="/download"><strong>Download WassUp 1.6.3</strong></a></strong></strong></p></blockquote>
<p>P.S.<br />
I tried WassUp 1.6.3 on the new development version of WordPress (2.7) and it works very fine! So no worry to upgrade your WordPress platform version when 2.7 will be available, WassUp is just fully compatible with it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wpwp.org/archives/wassup-163/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wpwp.org/archives/wassup-163/</feedburner:origLink></item>
		<item>
		<title>WassUp 1.6.2</title>
		<link>http://feedproxy.google.com/~r/wpwp/~3/Y7Kwngx9Muw/</link>
		<comments>http://www.wpwp.org/archives/wassup-162/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 14:14:54 +0000</pubDate>
		<dc:creator>Michele</dc:creator>
				<category><![CDATA[language]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[wassup]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[french]]></category>
		<category><![CDATA[geoip]]></category>
		<category><![CDATA[gmap]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[spy]]></category>

		<guid isPermaLink="false">http://www.wpwp.org/?p=34</guid>
		<description><![CDATA[Finally here is the new WassUp version tagged 1.6.2. This version fixes some bugs and add a new way to look at the Spy view. Now (if you have the PHP Curl installed) you can add a Google Map that displays the visitors location  by their IP. This new feature is based upon the Hostip.info [...]]]></description>
			<content:encoded><![CDATA[<p>Finally here is the new WassUp version tagged <strong>1.6.2</strong>.</p>
<p>This version fixes some bugs and add a new way to look at the Spy view. Now (if you have the PHP Curl installed) you can add a Google Map that displays the visitors location  by their IP.</p>
<p>This new feature is based upon the <a href="http://www.hostip.info/use.html">Hostip.info API</a> (a GEO IP tracker) but unfortunately the data is quite old so you could get some locations wrong.</p>
<p>I would like to improve this new tool so this is only the start, but please suggest your ideas.</p>
<p>This is the changelog for 1.6.2 version:</p>
<ul>
<li>fixed typo in wassup.php (pregi_replace)</li>
<li>added Google Map on Spy view (you have to activate it in the options)</li>
<li>added selection by type of users in Spy view</li>
<li>added two missing flags</li>
<li>added some new spiders/bots</li>
<li>fixed some minor bugs</li>
<li>added <strong>French language</strong></li>
</ul>
<blockquote><p><strong><a href="/download"><strong>Download WassUp 1.6.2</strong></a></strong></p></blockquote>
<p>As usual please refer to the <a href="http://www.wpwp.org/forums/">WassUp Forums</a> if you have problems and stay tuned for the next version.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wpwp.org/archives/wassup-162/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.wpwp.org/archives/wassup-162/</feedburner:origLink></item>
	</channel>
</rss>
