Plugin Directory

Changeset 1769247


Ignore:
Timestamp:
11/17/2017 10:16:36 AM (8 years ago)
Author:
michelem
Message:

Release 1.9.4.2 version

Location:
wassup/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • wassup/trunk/lib/wassup.class.php

    r1693623 r1769247  
    25362536    static function get_menu_arg(){
    25372537        $menuarg="wassup";
    2538         if(isset($_GET['page'])) $menuarg=$_GET['page'];
     2538        if(isset($_GET['page'])) $menuarg=htmlspecialchars($_GET['page']);
    25392539        if(stristr($menuarg,"wassup")!==false){
    25402540            if(isset($_GET['ml'])){
    2541                 $menuarg=$_GET['ml'];
     2541                $menuarg=htmlspecialchars($_GET['ml']);
    25422542            }else{
    25432543                $wassupfolder=basename(WASSUPDIR);
  • wassup/trunk/readme.txt

    r1693623 r1769247  
    11=== WassUp Real Time Analytics ===
    2 Contributors: michelem, helened 
    3 Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=michele%40befree%2eit&item_name=WassUp&no_shipping=0&no_note=1&tax=0&currency_code=EUR&lc=IT&bn=PP%2dDonationsBF&charset=UTF%2d8 
    4 Tags: analytics, counter, online, seo, statistics, stats, tracker, traffic, trends, user, visitor, web 
    5 Requires at least: 4.0 
    6 Tested up to: 4.8 
    7 Stable tag: 1.9.4 
    8 License: GPLv2 or later 
    9 License URI: http://www.gnu.org/licenses/gpl-2.0.html 
     2Contributors: michelem, helened
     3Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=michele%40befree%2eit&item_name=WassUp&no_shipping=0&no_note=1&tax=0&currency_code=EUR&lc=IT&bn=PP%2dDonationsBF&charset=UTF%2d8
     4Tags: analytics, counter, online, seo, statistics, stats, tracker, traffic, trends, user, visitor, web
     5Requires at least: 4.0
     6Tested up to: 4.8
     7Stable tag: 1.9.4.2
     8License: GPLv2 or later
     9License URI: http://www.gnu.org/licenses/gpl-2.0.html
    1010
    1111Analyze your website traffic with accurate, real-time stats, live views, visitor counts, top stats, IP geolocation, customizable tracking, and more.
     
    2525= WassUp comes with 4 admin screen panels for viewing your visitors' activities and for customizing those views =
    2626* There is a fancy "Visitors Details" screen that lets you to see almost everything about your visitors and what they do on your site and that includes search capability, view filters, plus a chart and top stats summary.
    27 * There is an ajax "Spy View" screen (like Digg Spy) that lets you monitor your visitors live, with optional geolocation on a Google!maps world map. 
     27* There is an ajax "Spy View" screen (like Digg Spy) that lets you monitor your visitors live, with optional geolocation on a Google!maps world map.
    2828* There is a "Current Visitors Online" screen that shows a summary of your online visitors in real-time.
    29 * There is an "Options" panel with lots of customizable settings for WassUp. 
     29* There is an "Options" panel with lots of customizable settings for WassUp.
    3030
    3131There is a nice Dashboard widget that shows a line chart of hits over time (24 hours default) and a count of current visitors online and their latest activities.
     
    3636* The widgets are fully customizable.
    3737
    38 = WassUp's advanced tracking features can: = 
     38= WassUp's advanced tracking features can: =
    3939* Distinguish registered users from anonymous visitors, and administrators from other registered users.
    4040* Identify and label new browsers, robots, and feed readers, heuristically.
     
    4747For people with database size limitations, WassUp has a few options to manage the database table growth: you can empty it; you can delete old records automatically; and you can set a warning notice for when it exceeds a preset size limit.
    4848
    49 = WassUp gives a detailed chronology of your hits with a lot of information for each single user session: = 
     49= WassUp gives a detailed chronology of your hits with a lot of information for each single user session: =
    5050* ip / hostname
    5151* referrer
     
    7474* Screen refresh frequency (minutes)
    7575* Screen resolution (browser width)
    76 * User permission levels 
     76* User permission levels
    7777* Top stats selections
    7878* Record or not logged-in users
     
    9494= _____________________________________ =
    9595= IMPORTANT NOTICES =
    96 * Wassup is compatible with Wordpress 4.0+ and PHP 5.2+ 
     96* Wassup is compatible with Wordpress 4.0+ and PHP 5.2+
    9797* To run Wassup with Wordpress 2.2 - 3.9 or with PHP 4.3 - 5.1, you must install the full copy of Wassup with backward-compatibility feature available at [http://github.com/michelem09/wassup/](http://github.com/michelem09/wassup/)
    9898* WassUp is incompatible with static html caching plugins such as "WP Super-Cache"
     
    107107From the Wordpress widgets panel, drag the "WassUp Online" widget or the "Wassup Top Stats" widget from the list of available widgets on the left into your theme's "Sidebar" or "Footer" area on the right.
    108108
    109 = How do I view the real-time visitor geolocation map in WassUp? = 
     109= How do I view the real-time visitor geolocation map in WassUp? =
    110110Check the box for "Display a GEO IP Map in spy visitors view" under WassUp >>Options >>[General Setup] and save, then navigate to WassUp >>SPY Visitors panel to see the map.
    111111
     
    160160   4. Activate it and you are done!
    161161
    162 B. If you prefer to install the plugin manually or you are running an older version of Wordpress, download the latest full release of WassUp (Real-Time Analytics) plugin directly from [gitHub.com/michelem09/wassup/releases/](https://github.com/michelem09/wassup/releases/) and save onto your local computer 
    163 
    164    * If available, use Wordpress' `Upload Plugin` option in the plugins panel to complete your install: 
     162B. If you prefer to install the plugin manually or you are running an older version of Wordpress, download the latest full release of WassUp (Real-Time Analytics) plugin directly from [gitHub.com/michelem09/wassup/releases/](https://github.com/michelem09/wassup/releases/) and save onto your local computer
     163
     164   * If available, use Wordpress' `Upload Plugin` option in the plugins panel to complete your install:
    165165
    166166     1. Navigate to Plugins panel >> `Add New` >> `Upload Plugin`
    167167     2. Click `Browse`, then find and select the plugin zip file that you downloaded
    168168     3. Click `Install Now`
    169      4. Activate WassUp plugin and you are done! 
     169     4. Activate WassUp plugin and you are done!
    170170
    171171   * Otherwise, unpack the plugin's zip or gz file with your preferred unzip/untar program or use the command line: `tar xzvf wassup.tar.gz` (linux), then follow these steps to complete your install:
     
    195195
    196196To safely upgrade WassUp when your site is busy, you must manually stop visitor recording beforehand, do the upgrade, then manually resume recording afterwards:
    197  
     197
    1981981. In WordPress admin panel, navigate to WassUp >>Options >>[Genernal Setup] tab. Uncheck the box for "Enable statistics recording" and save.
    1991991. Navigate to Plugins page and click the "Update Now" link under "WassUp" plugin name or follow the manual upgrade instructions above
     
    204204
    205205= Compatibility Notice =
    206 * WassUp is incompatible with the following static page caching plugins: WP Super Cache, WP Cache, WP Fastest Cache, and WP Hyper Cache. 
     206* WassUp is incompatible with the following static page caching plugins: WP Super Cache, WP Cache, WP Fastest Cache, and WP Hyper Cache.
    207207
    208208== Upgrade Notice ==
    209 = 1.9.4 =
    210 * Important feature & bugfix upgrade. DO NOT upgrade when your site busy! Read [installation instructions](http://wordpress.org/plugins/wassup/installation/) for safe upgrade instructions.
     209= 1.9.4.2: Security bugfix =
     210* Important security bugfix.
     211* DO NOT UPGRADE when your site busy!
     212* Read [installation instructions](http://wordpress.org/plugins/wassup/installation/) for safe upgrade instructions.
    211213
    212214== Changelog ==
     215= 1.9.4.1 =
     216* Important feature & bugfix upgrade.
    213217= v1.9.4 =
    214 = Important feature improvement & bugfix upgrade = 
     218= Important feature improvement & bugfix upgrade =
    215219* new option to whitelist referrers that are mislabeled as spam in WassUp (ex: Rx or sexy words in domain name)
    216220* new option to export data in Excel-compatible CSV format
     
    224228* fixed a search field validation issue with URL special characters
    225229* fixed a bug in "stringShortener" function that caused empty results
    226 * fixed a bug in Top Stats widget that caused blank lines to display 
     230* fixed a bug in Top Stats widget that caused blank lines to display
    227231* fixed some Top Stats widget translations
    228232* removed Google!maps API key from Wassup source due to Google's TOS limitations
     
    230234
    231235= v1.9.3.1 =
    232 = Important bugfix upgrade = 
     236= Important bugfix upgrade =
    233237* fixed various preg_match regexes to improve matching
    234238* fixed a parenthesis error in tracking/exclusion code for 404 hits
     
    237241
    238242= v1.9.3 =
    239 = Important bugfix upgrade = 
     243= Important bugfix upgrade =
    240244* fixed an 'unknown modifier' preg_match error in 'wassup.php' module.
    241245* fixed an IP validation loophole that could cause invalid/malformed forwarding IPs in client's http_header to be stored as client IP.
    242246* fixed code to stop recording of front-end ajax requests ('/wp-admin/admin-ajax.php' url) as "possible spam/malware" hits.
    243 * updated code to restore 'shutdown' hook as the primary hook for 'wassupAppend' function. 
     247* updated code to restore 'shutdown' hook as the primary hook for 'wassupAppend' function.
    244248* updated translation script to re-attempt language load with "language x2" as filename whenever the initial load (with "locale") fails.
    245 * updated translation template and language files to v1.9.2 
    246 * miscellaneous minor changes. 
     249* updated translation template and language files to v1.9.2
     250* miscellaneous minor changes.
    247251
    248252= v1.9.2 =
    249 = Urgent bugfix upgrade = 
     253= Urgent bugfix upgrade =
    250254* fixed fatal error on `wassup_options::is_recording_active` that occurred in some configurations
    251255* fixed erroneous 'hack attempt' labels that occurred on sites without permalinks
     
    267271* new module, 'compatibility.php' to check for Wordpress and PHP compatibility and to load compatibility modules from `/lib/compat-lib/` subfolder when available
    268272* removed backward compatibility modules ('/lib/compat-lib/') and features from Wordpress repository.
    269   Wassup's backward-compatibility feature remains in the full copy of Wassup available at [http://github.com/michelem09/wassup/](http://github.com/michelem09/wassup/) 
     273  Wassup's backward-compatibility feature remains in the full copy of Wassup available at [http://github.com/michelem09/wassup/](http://github.com/michelem09/wassup/)
    270274* deleted obsolete files ('badhosts.txt','badhosts-intl.txt') and javascripts
    271275* updated Google!Maps API link to use a common API key for Wassup-Spy (required by Google since 2016-06-22).
     
    321325= v1.8.1 =
    322326* bugfix and minor changes.
    323  
     327
    324328= 1.8 =
    325329= Important feature improvement upgrade =
  • wassup/trunk/wassup.php

    r1693623 r1769247  
    44Plugin URI: http://www.wpwp.org
    55Description: Analyze your website traffic with accurate, real-time stats, live views, visitor counts, top stats, IP geolocation, customizable tracking, and more. For Wordpress 2.2+
    6 Version: 1.9.4
     6Version: 1.9.4.2
    77Author: Michele Marcucci, Helene Duncker
    88Author URI: http://www.michelem.org/
     
    1212
    1313Copyright (c) 2007-2016 Michele Marcucci
    14 Released under the GNU General Public License GPLv2 or later 
     14Released under the GNU General Public License GPLv2 or later
    1515http://www.gnu.org/licenses/gpl-2.0.html
    1616
    1717Disclaimer:
    1818  This program is distributed in the hope that it will be useful, but
    19   WITHOUT ANY WARRANTY; without even the implied warranty of 
     19  WITHOUT ANY WARRANTY; without even the implied warranty of
    2020  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    2121  See the GNU General Public License for more details.
     
    5353    //define wassup globals & constants
    5454    if(!defined('WASSUPVERSION')){
    55         define('WASSUPVERSION','1.9.4');
    56         define('WASSUPDIR',dirname(preg_replace('/\\\\/','/',__FILE__))); 
     55        define('WASSUPVERSION','1.9.4.2');
     56        define('WASSUPDIR',dirname(preg_replace('/\\\\/','/',__FILE__)));
    5757    }
    5858    //turn on debugging (global)...Use cautiously! Will display errors from all plugins, not just WassUp
     
    149149 * Install or upgrade Wassup plugin.
    150150 *  - check wordpress compatibility
    151  *  - set initial plugin settings 
     151 *  - set initial plugin settings
    152152 *  - check for multisite and set initial wassup network settings
    153153 *  - create/upgrade Wassup tables.
     
    307307} //end wassup_install
    308308
    309 /** 
     309/**
    310310 * Completely remove all wassup tables and options from Wordpress and deactivate plugin, if needed.
    311311 *
     
    315315 * @param boolean (for multisite uninstall)
    316316 * @return void
    317  */ 
     317 */
    318318function wassup_uninstall($network_wide=false){
    319319    global $wpdb,$wp_version,$current_user;
     
    598598        if(!$is_compatible) return; //nothing to do
    599599    }
    600     //uninstall on deactivation when 'wassup_uninstall' option is set...applies to multisite subdomains and Wordpress 2.x setups only 
     600    //uninstall on deactivation when 'wassup_uninstall' option is set...applies to multisite subdomains and Wordpress 2.x setups only
    601601    if(!empty($wassup_options->wassup_uninstall)){
    602602        register_deactivation_hook(__FILE__,'wassup_uninstall');
     
    873873        $wscreen_res = esc_attr(trim($_COOKIE['wassup_screen_res'.$sessionhash]));
    874874        if ($wscreen_res == "x") $wscreen_res="";
    875     } 
     875    }
    876876    if (empty($wscreen_res) && isset($_SERVER['HTTP_UA_PIXELS'])) {
    877877        //resolution in IE/IEMobile header sometimes
     
    10001000    if($wdebug_mode){
    10011001        if($is_media || is_feed() || (!is_page() && !is_home() && !is_single() && !is_archive())){
    1002             //turn off error display for media, feed, and any non-html requests 
     1002            //turn off error display for media, feed, and any non-html requests
    10031003            $wdebug_mode=false;
    10041004            @wassup_disable_errors();
     
    10731073        if($ua->agenttype == "B"){
    10741074            $browser = $ua->name;
    1075             if(!empty($ua->version)){ 
     1075            if(!empty($ua->version)){
    10761076                $browser .= " ".wMajorVersion($ua->version);
    10771077                if (strstr($ua->version,"Mobile")!==false){
     
    11881188            $wscreen_res=esc_attr(trim($_COOKIE['wassup_screen_res'.$sessionhash]));
    11891189            if($wscreen_res == "x") $wscreen_res = "";
    1190         } 
     1190        }
    11911191        if(empty($wscreen_res) && isset($_SERVER['HTTP_UA_PIXELS'])) {
    11921192            //resolution in IE/IEMobile header sometimes
     
    13311331            }//end foreach
    13321332        }
    1333     //#6 Exclude IPs on exclusion list... 
     1333    //#6 Exclude IPs on exclusion list...
    13341334    if ((empty($wassup_options->wassup_exclude) || preg_match('#(?:^|\s*,)\s*('.preg_quote($IP).')\s*(?:,|$)#',$wassup_options->wassup_exclude)==0) && !$exclude_visit){
    13351335        //match for wildcards in exclude list @since v1.9
     
    13751375    //#11 Exclude for wassup_attack (via libwww-perl or xss in user agent)
    13761376    if ($wassup_options->wassup_attack==1 || (stristr($userAgent,"libwww-perl")===FALSE && $spam==0)) {
    1377         // Check for duplicates, previous spam check, and screen resolution and get previous settings to prevent redundant checks on same visitor. 
     1377        // Check for duplicates, previous spam check, and screen resolution and get previous settings to prevent redundant checks on same visitor.
    13781378        // Dup==same wassup_id and URL, and timestamp<180 secs
    13791379        $wpageviews=0;
     
    16111611            }
    16121612            //it's a browser
    1613             if($spidertype == "B" && $urlRequested != "/robots.txt"){ 
     1613            if($spidertype == "B" && $urlRequested != "/robots.txt"){
    16141614                if (empty($browser)) $browser = $spider;
    16151615                $spider = "";
     
    16511651                //it's a browser
    16521652                if(!empty($spider)){
    1653                 if($spidertype == "B" && $urlRequested != "/robots.txt"){ 
     1653                if($spidertype == "B" && $urlRequested != "/robots.txt"){
    16541654                    if(empty($browser)) $browser=$spider;
    16551655                    $spider="";
     
    16971697            } //end if wpageviews >7
    16981698        } //end if empty($spider)
    1699         //identify spoofers of Google/Yahoo 
     1699        //identify spoofers of Google/Yahoo
    17001700        if(!empty($spider)){
    17011701            if(!empty($hostname) && preg_match('/^(googlebot|yahoo\!\sslurp)/i',$spider)>0 && preg_match('/\.(googlebot|yahoo)\./i',$hostname)==0){
     
    17391739        //## Check for comment spammer...
    17401740        // No spam check on spiders unless there is a comment or forum page request...
    1741         if ($spam == 0 && (empty($spider) || stristr($urlRequested,"comment")!== FALSE || stristr($urlRequested,"forum")!== FALSE  || !empty($comment_user))) { 
     1741        if ($spam == 0 && (empty($spider) || stristr($urlRequested,"comment")!== FALSE || stristr($urlRequested,"forum")!== FALSE  || !empty($comment_user))) {
    17421742            //check for previous spammer detected by anti-spam plugin
    17431743            $spammerIP = $spamComment->isSpammer($IP);
     
    17531753                if (!empty($akismet_key) && is_readable($akismet_class)) {
    17541754                    include_once($akismet_class);
    1755                     // load array with comment data 
     1755                    // load array with comment data
    17561756                    $comment_user_email = (!empty($_COOKIE['comment_author_email_'.COOKIEHASH])? utf8_encode($_COOKIE['comment_author_email_'.COOKIEHASH]):"");
    17571757                    $comment_user_url = (!empty($_COOKIE['comment_author_url_'.COOKIEHASH])? utf8_encode($_COOKIE['comment_author_url_'.COOKIEHASH]):"");
     
    19081908        if($req_code==404) $urlRequested="[404] ".$_SERVER['REQUEST_URI'];
    19091909        // #Record visit in wassup tables...
    1910         // #create record to add to wassup tables...   
    1911         $wassup_rec = array('wassup_id'=>$wassup_id, 
    1912                 'timestamp'=>$timenow, 
    1913                 'ip'=>$ipAddress, 
    1914                 'hostname'=>$hostname, 
     1910        // #create record to add to wassup tables...
     1911        $wassup_rec = array('wassup_id'=>$wassup_id,
     1912                'timestamp'=>$timenow,
     1913                'ip'=>$ipAddress,
     1914                'hostname'=>$hostname,
    19151915                'urlrequested'=>wassupDb::xescape($urlRequested),
    19161916                'agent'=>wassupDb::xescape($userAgent),
    1917                 'referrer'=>wassupDb::xescape($referrer), 
     1917                'referrer'=>wassupDb::xescape($referrer),
    19181918                'search'=>$search_phrase,
    19191919                'searchpage'=>$searchpage,
    19201920                'searchengine'=>$searchengine,
    1921                 'os'=>$os, 
    1922                 'browser'=>$browser, 
    1923                 'language'=>$language, 
    1924                 'screen_res'=>$wscreen_res, 
    1925                 'spider'=>$spider, 
    1926                 'feed'=>$feed, 
    1927                 'username'=>$logged_user, 
    1928                 'comment_author'=>$comment_user, 
     1921                'os'=>$os,
     1922                'browser'=>$browser,
     1923                'language'=>$language,
     1924                'screen_res'=>$wscreen_res,
     1925                'spider'=>$spider,
     1926                'feed'=>$feed,
     1927                'username'=>$logged_user,
     1928                'comment_author'=>$comment_user,
    19291929                'spam'=>$spam,
    19301930                'url_wpid'=>$article_id,
     
    19411941                $errno=$wassup_recid->get_error_code();
    19421942                if(!empty($errno)) $error_msg="\nError saving record: $errno: ".$wassup_recid->get_error_message()."\n";
    1943                
     1943
    19441944                $wassup_recid=false;
    19451945            }elseif(empty($wassup_recid) || !is_numeric($wassup_recid)){
     
    20572057            else $debug_output .="\nin_temp=".$result;
    20582058        }
    2059         //add new temp record 
     2059        //add new temp record
    20602060        if($in_temp==0){
    20612061        if(empty($wassup_rec)){
     
    20712071            }
    20722072            // #Record visit in wassup tables...
    2073             $wassup_rec = array('wassup_id'=>$wassup_id, 
    2074                 'timestamp'=>$timenow, 
    2075                 'ip'=>$ipAddress, 
    2076                 'hostname'=>$hostname, 
     2073            $wassup_rec = array('wassup_id'=>$wassup_id,
     2074                'timestamp'=>$timenow,
     2075                'ip'=>$ipAddress,
     2076                'hostname'=>$hostname,
    20772077                'urlrequested'=>wassupDb::xescape($urlRequested),
    20782078                'agent'=>wassupDb::xescape($userAgent),
     
    20812081                'searchpage'=>$searchpage,
    20822082                'searchengine'=>$searchengine,
    2083                 'os'=>$os, 
    2084                 'browser'=>$browser, 
    2085                 'language'=>$language, 
    2086                 'screen_res'=>$wscreen_res, 
    2087                 'spider'=>$spider, 
    2088                 'feed'=>$feed, 
    2089                 'username'=>$logged_user, 
    2090                 'comment_author'=>$comment_user, 
     2083                'os'=>$os,
     2084                'browser'=>$browser,
     2085                'language'=>$language,
     2086                'screen_res'=>$wscreen_res,
     2087                'spider'=>$spider,
     2088                'feed'=>$feed,
     2089                'username'=>$logged_user,
     2090                'comment_author'=>$comment_user,
    20912091                'spam'=>$spam,
    20922092                'url_wpid'=>$article_id,
     
    21112111            $data_lenght=$fstatus->Data_length+$fstatus->Index_length;
    21122112            $tusage = ($data_lenght/1024/1024);
    2113         } 
     2113        }
    21142114        if($tusage >0 && $tusage > $wassup_options->wassup_remind_mb){
    21152115            if(!empty($network_settings['wassup_table']) && $network_settings['wassup_table']==$wassup_table){
     
    21292129    } //if wassup_remind_flag
    21302130    } //if timestamp%139
    2131    
     2131
    21322132    //# schedule purge of temporary records - also done hourly in wp-cron
    21332133    if(((int)$timestamp)%11 == 0){
     
    21382138            $wassup_dbtask[]=sprintf("DELETE FROM `$wassup_tmp_table` WHERE `timestamp`<'%d' OR (`timestamp`<'%d' AND `username`='') OR (`timestamp`<'%d' AND `spider`!='')",(int)($timestamp - 10*60),(int)($timestamp - 3*60),(int)($timestamp - 60));
    21392139            if(((int)$timestamp)%5 == 0){
    2140                 //Purge expired cache data from wassup_meta 
     2140                //Purge expired cache data from wassup_meta
    21412141                $result=$wpdb->query(sprintf("DELETE FROM `$wassup_meta_table` WHERE `meta_expire`>'0' AND `meta_expire`<'%d'",$now - 3600));
    21422142            }
     
    21592159        }
    21602160    }
    2161     //# Lastly, perform scheduled database tasks 
     2161    //# Lastly, perform scheduled database tasks
    21622162    if(count($wassup_dbtask)>0){
    21632163        $args=array('dbtasks'=>$wassup_dbtask);
     
    21742174        }
    21752175    }
    2176     if($wdebug_mode){ //close comment tag to hide debug data from visitors 
     2176    if($wdebug_mode){ //close comment tag to hide debug data from visitors
    21772177        if(headers_sent()){
    21782178            echo "\n--> \n";
     
    22312231/**
    22322232 * Assign an id for current visitor session from a combination of date/hour/min/ip/loggeduser/useragent/hostname.
    2233  * This is not unique so that multiple visits from the same ip/userAgent within a 30 minute-period, can be tracked, even when session/cookies is disabled. 
     2233 * This is not unique so that multiple visits from the same ip/userAgent within a 30 minute-period, can be tracked, even when session/cookies is disabled.
    22342234 * @since v1.9
    22352235 * @param args (array)
     
    22862286            $temp_id=sprintf("%-040.40s",gmdate('YmdH',$timestamp).$sessiontime.str_replace(array('.',':','-'),'',substr(strrev($ipAddress),2).strrev($tempUA).$sessiontime.gmdate('HdmY',$timestamp).strrev($hostname)).$templen.rand());
    22872287        }
    2288         //#assign new wassup id from "temp_id" 
     2288        //#assign new wassup id from "temp_id"
    22892289        $session_id= (int)$subsite_id.'b_'.md5($temp_id);
    22902290    }
     
    22922292} //end wassup_get_sessionid
    22932293
    2294 /** 
     2294/**
    22952295 * Retrieve a hash value to assign to a session cookie
    22962296 * - replaces 'COOKIEHASH' which breaks up a continuous session with user login/reauthorization
     
    23622362    if(preg_match('#^https?://([^/]+).*[&\?](prev|q|p|s|search|searchfor|as_q|as_epq|query|keywords|term|encquery)=([^&]+)#i',$SeReferer,$pcs) > 0){
    23632363        $SeDomain = trim(strtolower($pcs[1]));
    2364         if ($pcs[2] == "encquery") { 
     2364        if ($pcs[2] == "encquery") {
    23652365            $SeQuery = " *".__("encrypted search","wassup")."* ";
    2366         } else { 
     2366        } else {
    23672367            $SeQuery = $pcs[3];
    23682368        }
     
    23852385    unset ($pcs);
    23862386    //-- We have a query
    2387     if(isset($SeQuery)){ 
     2387    if(isset($SeQuery)){
    23882388        // Multiple URLDecode Trick to fix DogPile %XXXX Encodes
    23892389        if (strstr($SeQuery,'%')) {
     
    23952395            }
    23962396        }
    2397         if (!isset($SePos)) { 
     2397        if (!isset($SePos)) {
    23982398            if(preg_match('#[&\?](start|startpage|b|cd|first|stq|pi|page)[=/](\d+)#i',$SeReferer,$pcs)) {
    23992399                $SePos = $pcs[2];
     
    24282428    $selocale="";
    24292429    $blogurl = preg_replace('#(https?\://)?(www\.)?#','',strtolower(get_option('home')));
    2430     //list of well known search engines. 
     2430    //list of well known search engines.
    24312431    //  Structure: "SE Name|SE Domain(partial+unique)|query_key|page_key|language_key|locale|charset|"
    24322432    $lines = array(
     
    24652465        "avg.com|search.avg.com|q|cd|hl|||",
    24662466        "Babylon|search.babylon.com|q|||||",
    2467         "Baidu|.baidu.com|wd|||cn|utf8|", 
    2468         "Baidu|.baidu.com|word|||cn|utf8|", 
     2467        "Baidu|.baidu.com|wd|||cn|utf8|",
     2468        "Baidu|.baidu.com|word|||cn|utf8|",
    24692469        "Baidu|.baidu.com|kw|||cn|utf8|",
    24702470        "Biglobe Images|images.search.biglobe.ne.jp|q|||jp||",
    24712471        "Biglobe|.search.biglobe.ne.jp|q|||jp||",
    2472         "Bing Images|.bing.com/images/|q|first||||", 
    2473         "Bing Images|.bing.com/images/|Q|first||||", 
    2474         "Bing|.bing.com|q|first||||", 
    2475         "Bing|.bing.com|Q|first||||", 
    2476         "Bing|search.msn.|q|first|||", 
    2477         "Bing|.it.msn.com|q|first||it||", 
    2478         "Bing|msnbc.msn.com|q|first||||", 
    2479         "Bing Cache|cc.bingj.com|q|first||||", 
    2480         "Bing Cache|cc.bingj.com|Q|first||||", 
     2472        "Bing Images|.bing.com/images/|q|first||||",
     2473        "Bing Images|.bing.com/images/|Q|first||||",
     2474        "Bing|.bing.com|q|first||||",
     2475        "Bing|.bing.com|Q|first||||",
     2476        "Bing|search.msn.|q|first|||",
     2477        "Bing|.it.msn.com|q|first||it||",
     2478        "Bing|msnbc.msn.com|q|first||||",
     2479        "Bing Cache|cc.bingj.com|q|first||||",
     2480        "Bing Cache|cc.bingj.com|Q|first||||",
    24812481        "Blogdigger|.blogdigger.com|q|||||",
    24822482        "Blogpulse|.blogpulse.com|query|||||",
     
    25382538        "Google Custom Search|google.com/cse|q|cd|hl|||",
    25392539        "Google Custom Search|google.com/custom|q|cd|hl|||",
    2540         "Google Groups|groups.google.|q|start||||", 
     2540        "Google Groups|groups.google.|q|start||||",
    25412541        "Google Images|.google.com/images?|q|cd|hl|||",
    25422542        "Google Images|images.google.|q|cd|hl|||",
     
    25562556        "Google Video|video.google.com|q|cd|hl|||",
    25572557        "Google Cache|.googleusercontent.com|q|cd|hl|||",
    2558         "Google Cache|http://64.233.1|q|cd|hl|||", 
    2559         "Google Cache|http://72.14.|q|cd|hl|||", 
    2560         "Google Cache|http://74.125.|q|cd|hl|||", 
    2561         "Google Cache|http://209.85.|q|cd|hl|||", 
     2558        "Google Cache|http://64.233.1|q|cd|hl|||",
     2559        "Google Cache|http://72.14.|q|cd|hl|||",
     2560        "Google Cache|http://74.125.|q|cd|hl|||",
     2561        "Google Cache|http://209.85.|q|cd|hl|||",
    25622562        "Google|www.google.|q|cd|hl|||",
    25632563        "Google|www.google.|as_q|start|hl|||",
     
    25832583        "InfoSpace|webfetch.com|q|||||",
    25842584        "InfoSpace|search.webssearches.com|q|||||",
    2585         "Ixquick|ixquick.com|query|||||", 
    2586         "Ixquick|ixquick.de|query|||de||", 
     2585        "Ixquick|ixquick.com|query|||||",
     2586        "Ixquick|ixquick.de|query|||de||",
    25872587        "Jyxo|jyxo.1188.cz|q|||cz||",
    25882588        "Jumpy|.mediaset.it|searchWord|||it||",
     
    26452645        "Road Runner|search.rr.com|q|||||",
    26462646        "Sapo|pesquisa.sapo.pt|q|||pt||",
    2647         "Search.com|.search.com|q|||||", 
     2647        "Search.com|.search.com|q|||||",
    26482648        "Search.ch|.search.ch|q|||ch||",
    26492649        "Searchy|.searchy.co.uk|q|||gb||",
     
    26622662        "Soso|.soso.com|q|||cn|gb2312|",
    26632663        "Sputnik|.sputnik.ru|q|||ru||",
    2664         "Start.no|start.no|q|||||", 
     2664        "Start.no|start.no|q|||||",
    26652665        "Startpagina|.startpagina.nl|q|cd|hl|nl||",
    26662666        "Suche.info|suche.info|Keywords|||||",
     
    28602860            $browser="";
    28612861        }
    2862         $os=trim($os); 
     2862        $os=trim($os);
    28632863        $browser=trim($browser);
    28642864        if($wdebug_mode){
     
    29172917    $os="";
    29182918    $pcs=array();
    2919     //identify obvious script injection bots 
     2919    //identify obvious script injection bots
    29202920    if(!empty($ua)){
    29212921        //New in v1.9.3.1: check for more variations of <script> and <a> tags embedded in user agent string
     
    30093009        // array format: "Spider Name|UserAgent keywords (no spaces)| Spider type (R=robot, B=Browser/downloader, F=feedreader, H=hacker, L=Link checker, M=siteMap generator, S=Spammer/email harvester, V=CSS/Html validator)
    30103010        $lines=array(
    3011             "Internet Archive|archive.org_bot|R|", 
    3012             "Internet Archive|.archive.org|R|", 
     3011            "Internet Archive|archive.org_bot|R|",
     3012            "Internet Archive|.archive.org|R|",
    30133013            "Baiduspider|Baiduspider/|R|",
    30143014            "Baiduspider|.crawl.baidu.com|R|",
     
    30253025            "Yahoo!|.crawl.yahoo.net|R|",
    30263026            "YandexBot|YandexBot/|R|",
    3027             "AboutUsBot|AboutUsBot/|R|", 
    3028             "80bot|80legs.com|R|", 
    3029             "Aggrevator|Aggrevator/|F|", 
    3030             "AlestiFeedBot|AlestiFeedBot||", 
    3031             "Alexa|ia_archiver|R|", "AltaVista|Scooter-|R|", 
    3032             "AltaVista|Scooter/|R|", "AltaVista|Scooter_|R|", 
     3027            "AboutUsBot|AboutUsBot/|R|",
     3028            "80bot|80legs.com|R|",
     3029            "Aggrevator|Aggrevator/|F|",
     3030            "AlestiFeedBot|AlestiFeedBot||",
     3031            "Alexa|ia_archiver|R|", "AltaVista|Scooter-|R|",
     3032            "AltaVista|Scooter/|R|", "AltaVista|Scooter_|R|",
    30333033            "AMZNKAssocBot|AMZNKAssocBot/|R|",
    30343034            "AppleSyndication|AppleSyndication/|F|",
     
    30423042            "BlogPulseLive|BlogPulseLive|F|",
    30433043            "IceRocket BlogSearch|icerocket.com|F|",
    3044             "Charlotte|Charlotte/|R|", 
     3044            "Charlotte|Charlotte/|R|",
    30453045            "Xyleme|cosmos/0.|R|", "cURL|curl/|R|",
    30463046            "Daumoa|Daumoa-feedfetcher|F|",
    30473047            "Daumoa|DAUMOA|R|",
    30483048            "Daumoa|.daum.net|R|",
    3049             "Die|die-kraehe.de|R|", 
    3050             "Diggit!|Digger/|R|", 
     3049            "Die|die-kraehe.de|R|",
     3050            "Diggit!|Digger/|R|",
    30513051            "disco/Nutch|disco/Nutch|R|",
    30523052            "DotBot|DotBot/|R|",
    3053             "Emacs-w3|Emacs-w3/v||", 
    3054             "ananzi|EMC||", 
    3055             "EnaBot|EnaBot||", 
    3056             "esculapio|esculapio/||", "Esther|esther||", 
    3057             "everyfeed-spider|everyfeed-spider|F|", 
    3058             "Evliya|Evliya||", "nzexplorer|explorersearch||", 
     3053            "Emacs-w3|Emacs-w3/v||",
     3054            "ananzi|EMC||",
     3055            "EnaBot|EnaBot||",
     3056            "esculapio|esculapio/||", "Esther|esther||",
     3057            "everyfeed-spider|everyfeed-spider|F|",
     3058            "Evliya|Evliya||", "nzexplorer|explorersearch||",
    30593059            "eZ publish Validator|eZpublishLinkValidator||",
    30603060            "FacebookExternalHit|facebook.com/externalhit|R|",
    3061             "FastCrawler|FastCrawler|R|", 
    3062             "FDSE|FDSErobot|R|", 
     3061            "FastCrawler|FastCrawler|R|",
     3062            "FDSE|FDSErobot|R|",
    30633063            "Feed::Find|Feed::Find||",
    30643064            "FeedBurner|FeedBurner|F|",
    30653065            "FeedDemon|FeedDemon/|F|",
    3066             "FeedHub FeedFetcher|FeedHub|F|", 
    3067             "Feedreader|Feedreader|F|", 
    3068             "Feedshow|Feedshow|F|", 
     3066            "FeedHub FeedFetcher|FeedHub|F|",
     3067            "Feedreader|Feedreader|F|",
     3068            "Feedshow|Feedshow|F|",
    30693069            "Feedster|Feedster|F|",
    30703070            "FeedTools|feedtools|F|",
    3071             "Feedfetcher-Google|Feedfetcher-google|F|", 
    3072             "Felix|FelixIDE/||", 
    3073             "FetchRover|ESIRover||", 
    3074             "fido|fido/||", 
    3075             "Fish|Fish-Search-Robot||", "Fouineur|Fouineur||", 
    3076             "Freecrawl|Freecrawl|R|", 
     3071            "Feedfetcher-Google|Feedfetcher-google|F|",
     3072            "Felix|FelixIDE/||",
     3073            "FetchRover|ESIRover||",
     3074            "fido|fido/||",
     3075            "Fish|Fish-Search-Robot||", "Fouineur|Fouineur||",
     3076            "Freecrawl|Freecrawl|R|",
    30773077            "FriendFeedBot|FriendFeedBot/|F|",
    30783078            "FunnelWeb|FunnelWeb-||",
     
    30843084            "GreatNews|GreatNews|F|",
    30853085            "Gregarius|Gregarius/|F|",
    3086             "Gromit|Gromit/||", 
    3087             "gsinfobot|gsinfobot||", 
    3088             "Gulliver|Gulliver/||", "Gulper|Gulper||", 
    3089             "GurujiBot|GurujiBot||", 
     3086            "Gromit|Gromit/||",
     3087            "gsinfobot|gsinfobot||",
     3088            "Gulliver|Gulliver/||", "Gulper|Gulper||",
     3089            "GurujiBot|GurujiBot||",
    30903090            "havIndex|havIndex/||",
    30913091            "heritrix|heritrix/||", "HI|AITCSRobot/||",
    3092             "HKU|HKU||", "Hometown|Hometown||", 
     3092            "HKU|HKU||", "Hometown|Hometown||",
    30933093            "HostTracker|host-tracker.com/|R|",
    30943094            "ht://Dig|htdig/|R|","HTMLgobble|HTMLgobble||",
     
    31083108            "Israeli-search|IsraeliSearch/||",
    31093109            "IRLIRLbot/|IRLIRLbot||",
    3110             "Italian Blog Rankings|blogbabel|F|", 
    3111             "Jakarta|Jakarta||", "Java|Java/||", 
    3112             "JBot|JBot||", 
    3113             "JCrawler|JCrawler/||", 
    3114             "JoBo|JoBo||", "Jobot|Jobot/||", 
     3110            "Italian Blog Rankings|blogbabel|F|",
     3111            "Jakarta|Jakarta||", "Java|Java/||",
     3112            "JBot|JBot||",
     3113            "JCrawler|JCrawler/||",
     3114            "JoBo|JoBo||", "Jobot|Jobot/||",
    31153115            "JoeBot|JoeBot/||",
    3116             "JumpStation|jumpstation||", 
    3117             "image.kapsi.net|image.kapsi.net/|R|", 
    3118             "kalooga/kalooga|kalooga/kalooga||", 
    3119             "Katipo|Katipo/||", 
    3120             "KDD-Explorer|KDD-Explorer/||", 
    3121             "KIT-Fireball|KIT-Fireball/||", 
    3122             "KindOpener|KindOpener||", "kinjabot|kinjabot||", 
    3123             "KO_Yappo_Robot|yappo.com/info/robot.html||", 
    3124             "Krugle|Krugle||", 
     3116            "JumpStation|jumpstation||",
     3117            "image.kapsi.net|image.kapsi.net/|R|",
     3118            "kalooga/kalooga|kalooga/kalooga||",
     3119            "Katipo|Katipo/||",
     3120            "KDD-Explorer|KDD-Explorer/||",
     3121            "KIT-Fireball|KIT-Fireball/||",
     3122            "KindOpener|KindOpener||", "kinjabot|kinjabot||",
     3123            "KO_Yappo_Robot|yappo.com/info/robot.html||",
     3124            "Krugle|Krugle||",
    31253125            "LabelGrabber|LabelGrab/||",
    31263126            "Larbin|larbin_||",
     
    31503150            "Naver|NaverBot||",
    31513151            "Naver|Cowbot||",
    3152             "NDSpider|NDSpider/||", 
    3153             "Nederland.zoek|Nederland.zoek||", 
    3154             "NetCarta|NetCarta||", 
    3155             "NetMechanic|NetMechanic||", 
    3156             "NetScoop|NetScoop/||", 
    3157             "NetNewsWire|NetNewsWire||", 
     3152            "NDSpider|NDSpider/||",
     3153            "Nederland.zoek|Nederland.zoek||",
     3154            "NetCarta|NetCarta||",
     3155            "NetMechanic|NetMechanic||",
     3156            "NetScoop|NetScoop/||",
     3157            "NetNewsWire|NetNewsWire||",
    31583158            "NewsAlloy|NewsAlloy||",
    31593159            "newscan-online|newscan-online/||",
     
    31873187            "Raven|Raven-v||",
    31883188            "relevantNOISE|relevantnoise.com||",
    3189             "Resume|Resume||", "RoadHouse|RHCS/||", 
     3189            "Resume|Resume||", "RoadHouse|RHCS/||",
    31903190            "RixBot|RixBot||",
    3191             "Robbie|Robbie/||", "RoboCrawl|RoboCrawl||", 
     3191            "Robbie|Robbie/||", "RoboCrawl|RoboCrawl||",
    31923192            "RoboFox|Robofox||",
    3193             "Robozilla|Robozilla/||", 
    3194             "Rojo|rojo1|F|", 
    3195             "Roverbot|Roverbot||", 
    3196             "RssBandit|RssBandit||", 
     3193            "Robozilla|Robozilla/||",
     3194            "Rojo|rojo1|F|",
     3195            "Roverbot|Roverbot||",
     3196            "RssBandit|RssBandit||",
    31973197            "RSSMicro|RSSMicro.com|F|",
    3198             "Ruby|Rfeedfinder||", 
    3199             "RuLeS|RuLeS/||", 
    3200             "Runnk RSS aggregator|Runnk||", 
    3201             "SafetyNet|SafetyNet||", 
     3198            "Ruby|Rfeedfinder||",
     3199            "RuLeS|RuLeS/||",
     3200            "Runnk RSS aggregator|Runnk||",
     3201            "SafetyNet|SafetyNet||",
    32023202            "Sage|(Sage)|F|",
    3203             "SBIder|sitesell.com|R|", 
    3204             "Scooter|Scooter/||", 
     3203            "SBIder|sitesell.com|R|",
     3204            "Scooter|Scooter/||",
    32053205            "ScoutJet|ScoutJet||",
    32063206            "Screaming Frog SEO Spider|ScreamingFrogSEOSpider/|L|",
    32073207            "SearchProcess|searchprocess/||",
    3208             "Seekbot|seekbot.net|R|", 
    3209             "SimplePie|SimplePie/|F|", 
    3210             "Sitemap Generator|SitemapGenerator||", 
    3211             "Senrigan|Senrigan/||", 
     3208            "Seekbot|seekbot.net|R|",
     3209            "SimplePie|SimplePie/|F|",
     3210            "Sitemap Generator|SitemapGenerator||",
     3211            "Senrigan|Senrigan/||",
    32123212            "SeznamBot|SeznamBot/|R|",
    32133213            "SeznamScreenshotator|SeznamScreenshotator/|R|",
    3214             "SG-Scout|SG-Scout||", "Shai'Hulud|Shai'Hulud||", 
    3215             "Simmany|SimBot/||", 
    3216             "SiteTech-Rover|SiteTech-Rover||", 
    3217             "shelob|shelob||", 
    3218             "Sleek|Sleek||", 
     3214            "SG-Scout|SG-Scout||", "Shai'Hulud|Shai'Hulud||",
     3215            "Simmany|SimBot/||",
     3216            "SiteTech-Rover|SiteTech-Rover||",
     3217            "shelob|shelob||",
     3218            "Sleek|Sleek||",
    32193219            "Slurp|.inktomi.com/slurp.html|R|",
    3220             "Snapbot|.snap.com|R|", 
     3220            "Snapbot|.snap.com|R|",
    32213221            "SnapPreviewBot|SnapPreviewBot|R|",
    3222             "Smart|ESISmartSpider/||", 
    3223             "Snooper|Snooper/b97_01||", "Solbot|Solbot/||", 
     3222            "Smart|ESISmartSpider/||",
     3223            "Snooper|Snooper/b97_01||", "Solbot|Solbot/||",
    32243224            "Sphere Scout|SphereScout|R|",
    32253225            "Sphere|sphere.com|R|",
    32263226            "spider_monkey|mouse.house/||",
    3227             "SpiderBot|SpiderBot/||", 
     3227            "SpiderBot|SpiderBot/||",
    32283228            "Spiderline|spiderline/||",
    3229             "SpiderView(tm)|SpiderView||", 
     3229            "SpiderView(tm)|SpiderView||",
    32303230            "SragentRssCrawler|SragentRssCrawler|F|",
    32313231            "Site|ssearcher100||",
     
    32463246            "Twingly|twingly.com|R|",
    32473247            "UCSD|UCSD-Crawler||", "UdmSearch|UdmSearch/||",
    3248             "UniversalFeedParser|UniversalFeedParser|F|", 
    3249             "UptimeBot|uptimebot||", 
    3250             "URL_Spider|URL_Spider_Pro/|R|", 
    3251             "VadixBot|VadixBot||", "Valkyrie|Valkyrie/||", 
    3252             "Verticrawl|Verticrawlbot||", 
    3253             "Victoria|Victoria/||", 
    3254             "vision-search|vision-search/||", 
     3248            "UniversalFeedParser|UniversalFeedParser|F|",
     3249            "UptimeBot|uptimebot||",
     3250            "URL_Spider|URL_Spider_Pro/|R|",
     3251            "VadixBot|VadixBot||", "Valkyrie|Valkyrie/||",
     3252            "Verticrawl|Verticrawlbot||",
     3253            "Victoria|Victoria/||",
     3254            "vision-search|vision-search/||",
    32553255            "void-bot|void-bot/||", "Voila|VoilaBot||",
    32563256            "Voyager|.kosmix.com/html/crawler|R|",
    3257             "VWbot|VWbot_K/||", 
     3257            "VWbot|VWbot_K/||",
    32583258            "W3C_Validator|W3C_Validator/|V|",
    3259             "w3m|w3m/|B|", "W3M2|W3M2/||", "w3mir|w3mir/||", 
    3260             "w@pSpider|w@pSpider/||", 
     3259            "w3m|w3m/|B|", "W3M2|W3M2/||", "w3mir|w3mir/||",
     3260            "w@pSpider|w@pSpider/||",
    32613261            "WallPaper|CrawlPaper/||",
    3262             "WebCatcher|WebCatcher/||", 
    3263             "webCollage|webcollage/|R|", 
    3264             "webCollage|collage.cgi/|R|", 
     3262            "WebCatcher|WebCatcher/||",
     3263            "webCollage|webcollage/|R|",
     3264            "webCollage|collage.cgi/|R|",
    32653265            "WebCopier|WebCopierv|R|",
    3266             "WebFetch|WebFetch|R|", "WebFetch|webfetch/|R|", 
    3267             "WebMirror|webmirror/||", 
    3268             "webLyzard|webLyzard||", "Weblog|wlm-||", 
    3269             "WebReaper|webreaper.net|R|", 
    3270             "WebVac|webvac/||", "webwalk|webwalk||", 
    3271             "WebWalker|WebWalker/||", 
    3272             "WebWatch|WebWatch||", 
    3273             "WebStolperer|WOLP/||", 
    3274             "WebThumb|WebThumb/|R|", 
    3275             "Wells Search II|WellsSearchII||", 
     3266            "WebFetch|WebFetch|R|", "WebFetch|webfetch/|R|",
     3267            "WebMirror|webmirror/||",
     3268            "webLyzard|webLyzard||", "Weblog|wlm-||",
     3269            "WebReaper|webreaper.net|R|",
     3270            "WebVac|webvac/||", "webwalk|webwalk||",
     3271            "WebWalker|WebWalker/||",
     3272            "WebWatch|WebWatch||",
     3273            "WebStolperer|WOLP/||",
     3274            "WebThumb|WebThumb/|R|",
     3275            "Wells Search II|WellsSearchII||",
    32763276            "Wget|Wget/||",
    3277             "whatUseek|whatUseek_winona/||", 
     3277            "whatUseek|whatUseek_winona/||",
    32783278            "whiteiexpres/Nutch|whiteiexpres/Nutch||",
    3279             "wikioblogs|wikioblogs||", 
    3280             "WikioFeedBot|WikioFeedBot||", 
     3279            "wikioblogs|wikioblogs||",
     3280            "WikioFeedBot|WikioFeedBot||",
    32813281            "WikioPxyFeedBo|WikioPxyFeedBo||",
    3282             "Wild|Hazel's||", 
    3283             "Wired|wired-digital-newsbot/||", 
     3282            "Wild|Hazel's||",
     3283            "Wired|wired-digital-newsbot/||",
    32843284            "Wordpress Pingback/Trackback|Wordpress/||",
    3285             "WWWC|WWWC/||", 
     3285            "WWWC|WWWC/||",
    32863286            "XGET|XGET/||",
    32873287            "Xenu Link Sleuth|XenuLinkSleuth/|L|",
     
    32933293            "YahooSeeker|YahooSeeker/|R|",
    32943294            "Yandex|.yandex.com|R|",
    3295             "YoudaoBot|YoudaoBot|R|", 
     3295            "YoudaoBot|YoudaoBot|R|",
    32963296            "Tailrank|spinn3r.com/robot|R|",
    32973297            "Tailrank|tailrank.com/robot|R|",
     
    33023302            list($nome,$key,$crawlertype)=explode("|",$spider);
    33033303            if($key !=""){
    3304                 if(strpos($uagent,$key)!==false || (strpos($hostname,$key)!==false && strlen($key)>6)){ 
     3304                if(strpos($uagent,$key)!==false || (strpos($hostname,$key)!==false && strlen($key)>6)){
    33053305                    $crawler=trim($nome);
    33063306                    if(!empty($crawlertype) && $crawlertype == "F") $feed=$crawler;
     
    33153315        //Assume first word in useragent is crawler name
    33163316        if(preg_match('/^(\w+)[\/ \-\:_\.;]/',$ua,$pcs) > 0){
    3317             if(strlen($pcs[1])>1 && $pcs[1]!="Mozilla"){ 
     3317            if(strlen($pcs[1])>1 && $pcs[1]!="Mozilla"){
    33183318                $crawler=$pcs[1];
    33193319            }
     
    33313331        }
    33323332    }elseif(empty($feed) && (is_feed() || preg_match("/(feed|rss)/i",$ua)>0)){
    3333         if(!empty($crawler)){ 
     3333        if(!empty($crawler)){
    33343334            $feed=$crawler;
    33353335        }elseif(empty($browser)){
     
    37933793/**
    37943794 * Output Wassup tag and javascripts in html document footer.
    3795  * -call screen resolution javascript function for IE users 
     3795 * -call screen resolution javascript function for IE users
    37963796 * -put a timestamp in page footer as page caching test
    37973797 * -output any stored debug data
     
    39703970}
    39713971
    3972 /** 
    3973  * TEMPLATE TAG: wassup_sidebar 
     3972/**
     3973 * TEMPLATE TAG: wassup_sidebar
    39743974 * Displays Wassup Current Visitors Online widget directly from "sidebar.php" template or from a page template
    39753975 * Usage: wassup_sidebar('1:before_widget_tag','2:after_widget_tag','3:before_title_tag','4:after_title_tag','5:title','6:list css-class','7:max-width in chars','8:top_searches_limit, 9:top_referrers_limit, 10:top_browsers_limit, 11:top_os_limit)
     
    40774077//## Add essential hooks after functions have been defined
    40784078//uninstall hook for complete plugin removal from WordPress
    4079 register_activation_hook($wassupfile,'wassup_install'); 
     4079register_activation_hook($wassupfile,'wassup_install');
    40804080if(function_exists('register_uninstall_hook')){
    40814081    register_uninstall_hook($wassupfile,'wassup_uninstall');
Note: See TracChangeset for help on using the changeset viewer.