Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Who's Online Enhancement 1.4


Guest

Recommended Posts

Matt

Just out of curiosity.

Have you edited your spiders.txt file? And what did you edit it with?

Also are you uploading with a FTP program.

 

I know this may sound a little silly but I felt it's worth asking.

 

I UL te latest vrsion.

With SQL before the file sessions probs, all the bots used to show, though the IP of it did jump around and thus did the name, but it stayed counting on the same visit..

I use Smartftp. Have tried 3 different versions of spider, of which in SQL worked.

 

Spider sessions is on.

 

Its just not IDing BOTS.. rest is not bad :)

Link to comment
Share on other sites

Been spending toomuch time on this.. will post code.

 

<?php
/*
?$Id: whos_online.php,v 1.32 2003/06/29 22:50:52 hpdl Exp $

?osCommerce, Open Source E-Commerce Solutions
?http://www.oscommerce.com

?Copyright (c) 2003 osCommerce

?Released under the GNU General Public License
*/

?require('includes/application_top.php');

?require(DIR_WS_CLASSES . 'currencies.php');
?$currencies = new currencies();


/*
?Configuration Values
? ?Set these to easily personalize your Whos Online
*/

// Seconds that a visitor is considered "active"
?$active_time = 300;
// Seconds before visitor is removed from display
?$track_time = 900;

// Automatic refresh times in seconds and display names
// ? Time and Display Text order must match between the arrays
// ? "None" is handled separately in the code
?$refresh_time = array( ? ? 30, ? ?60, ? ? 120, ? ?180 );
?$refresh_display = array( ':30', '1:00', '2:00', '3:00' );

// Images used for status lights
?$status_active_cart = 'icon_status_green.gif';
?$status_inactive_cart = 'icon_status_red.gif';
?$status_active_nocart = 'icon_status_green_light.gif';
?$status_inactive_nocart = 'icon_status_red_light.gif';
?$status_active_bot = 'icon_status_green_border_light.gif';
?$status_inactive_bot = 'icon_status_red_border_light.gif';

// Text color used for table entries
// ? Different colored text for different users
// ? Named colors and Hex values should work fine here
?$fg_color_bot = 'maroon';
?$fg_color_admin = 'darkblue';
?$fg_color_guest = 'green';
?$fg_color_account = '#000000'; // Black


/*
?Determines status and cart of visitor and displays appropriate icon.
*/
function tep_check_cart($which, $customer_id, $session_id) {
?global $cart, $status_active_cart, $status_inactive_cart, $status_active_nocart, $status_inactive_nocart, $status_inactive_bot, $status_active_bot, $active_time;

? ? ? // Pull Session data from the correct source.
? if (STORE_SESSIONS == 'mysql') {
? ? $session_data = tep_db_query("select value from " . TABLE_SESSIONS . " WHERE sesskey = '" . $session_id . "'");
? ? $session_data = tep_db_fetch_array($session_data);
? ? $session_data = trim($session_data['value']);
? } else {
? ? if ( (file_exists(tep_session_save_path() . '/sess_' . $session_id)) && (filesize(tep_session_save_path() . '/sess_' . $session_id) > 0) ) {
? ? ? $session_data = file(tep_session_save_path() . '/sess_' . $session_id);
? ? ? $session_data = trim(implode('', $session_data));
? ? }
? }

? ?if ($length = strlen($session_data)) {
? ? ?if (PHP_VERSION < 4) {
? ? ? ?$start_id = strpos($session_data, 'customer_id[==]s');
? ? ? ?$start_cart = strpos($session_data, 'cart[==]o');
? ? ? ?$start_currency = strpos($session_data, 'currency[==]s');
? ? ? ?$start_country = strpos($session_data, 'customer_country_id[==]s');
? ? ? ?$start_zone = strpos($session_data, 'customer_zone_id[==]s');
? ? ?} else {
? ? ? ?$start_id = strpos($session_data, 'customer_id|s');
? ? ? ?$start_cart = strpos($session_data, 'cart|O');
? ? ? ?$start_currency = strpos($session_data, 'currency|s');
? ? ? ?$start_country = strpos($session_data, 'customer_country_id|s');
? ? ? ?$start_zone = strpos($session_data, 'customer_zone_id|s');
? ? ?}

? ? ?for ($i=$start_cart; $i<$length; $i++) {
? ? ? ?if ($session_data[$i] == '{') {
? ? ? ? ?if (isset($tag)) {
? ? ? ? ? ?$tag++;
? ? ? ? ?} else {
? ? ? ? ? ?$tag = 1;
? ? ? ? ?}
? ? ? ?} elseif ($session_data[$i] == '}') {
? ? ? ? ?$tag--;
? ? ? ?} elseif ( (isset($tag)) && ($tag < 1) ) {
? ? ? ? ?break;
? ? ? ?}
? ? ?}

? ? ?$session_data_id = substr($session_data, $start_id, (strpos($session_data, ';', $start_id) - $start_id + 1));
? ? ?$session_data_cart = substr($session_data, $start_cart, $i);
? ? ?$session_data_currency = substr($session_data, $start_currency, (strpos($session_data, ';', $start_currency) - $start_currency + 1));
? ? ?$session_data_country = substr($session_data, $start_country, (strpos($session_data, ';', $start_country) - $start_country + 1));
? ? ?$session_data_zone = substr($session_data, $start_zone, (strpos($session_data, ';', $start_zone) - $start_zone + 1));

? ? ?session_decode($session_data_id);
? ? ?session_decode($session_data_currency);
? ? ?session_decode($session_data_country);
? ? ?session_decode($session_data_zone);
? ? ?session_decode($session_data_cart);

? ? ?if (PHP_VERSION < 4) {
? ? ? ?$broken_cart = $cart;
? ? ? ?$cart = new shoppingCart;
? ? ? ?$cart->unserialize($broken_cart);
? ? ?}

? ? ?if (is_object($cart)) {
? ? ? ?$products = $cart->get_products();
? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?}

?$which_query = $session_data;

?$who_data = ? tep_db_query(("select session_id, time_entry, time_last_click
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? from " . TABLE_WHOS_ONLINE . "
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? where session_id='" . $which . "'"));
?$who_query = tep_db_fetch_array($who_data);

?// Determine if visitor active/inactive
?$xx_mins_ago_long = (time() - $active_time);

?// Determine Bot active/inactive
?if( $customer_id < 0 ) {
? ?// inactive
? ?if ($who_query['time_last_click'] < $xx_mins_ago_long) {
? ? ?return tep_image(DIR_WS_IMAGES . $status_inactive_bot, TEXT_STATUS_INACTIVE_BOT);
? ?// active
? ?} else {
? ? ?return tep_image(DIR_WS_IMAGES . $status_active_bot, TEXT_STATUS_ACTIVE_BOT);
? ?}
? ? ? ?}

?// Determine active/inactive and cart/no cart status
?// no cart
?if ( sizeof($products) == 0 ) {
? ?// inactive
? ?if ($who_query['time_last_click'] < $xx_mins_ago_long) {
? ? ?return tep_image(DIR_WS_IMAGES . $status_inactive_nocart, TEXT_STATUS_INACTIVE_NOCART);
? ?// active
? ?} else {
? ? ?return tep_image(DIR_WS_IMAGES . $status_active_nocart, TEXT_STATUS_ACTIVE_NOCART);
? ?}
?// cart
? ? ? ?} else {
? ?// inactive
? ?if ($who_query['time_last_click'] < $xx_mins_ago_long) {
? ? ?return tep_image(DIR_WS_IMAGES . $status_inactive_cart, TEXT_STATUS_INACTIVE_CART);
? ?// active
? ?} else {
? ? ?return tep_image(DIR_WS_IMAGES . $status_active_cart, TEXT_STATUS_ACTIVE_CART);
? ?}
?}
}
// WOL 1.5 EOF

/* Display the details about a visitor */
function display_details() {
? global $whos_online, $is_bot, $is_admin, $is_guest, $is_account;

? ? ? ? // Display Name/User Agent
? echo '<b>' . ($is_bot ? TEXT_USER_AGENT.': ' : TABLE_HEADING_FULL_NAME .': ') . '</b>' . $whos_online['full_name'];
? echo '<br clear="all">' . tep_draw_separator('pixel_trans.gif', '10', '4') . '<br clear="all">';
? ? ? ? // Display Customer ID for non-bots
? if ( !$is_bot ){
? ? ?echo '<b>'.TABLE_HEADING_CUSTOMER_ID.':</b> ' . $whos_online['customer_id'];
? ? ?echo '<br clear="all">' . tep_draw_separator('pixel_trans.gif', '10', '4') . '<br clear="all">';
? }
? ? ? ? // Display IP Address
? echo '<b>'.TABLE_HEADING_IP_ADDRESS.'</b> ' . $whos_online['ip_address'];
? echo '<br clear="all">' . tep_draw_separator('pixel_trans.gif', '10', '4') . '<br clear="all">';
? ? ? ? // Display Session ID if available
? if ( $whos_online['session_id'] != "" ) {
? ? ?echo '<b>'.TEXT_OSCID.':</b> ' . $whos_online['session_id'];
? ? ?echo '<br clear="all">' . tep_draw_separator('pixel_trans.gif', '10', '4') . '<br clear="all">';
? }
? ? ? ? // Display Referrer if available
? if($whos_online['http_referer'] != "" ) {
? ? ?echo '<b>'.TEXT_HTTP_REFERER_URL.':</b> ' . $whos_online['http_referer'];
? ? ?echo '<br clear="all">' . tep_draw_separator('pixel_trans.gif', '10', '4') . '<br clear="all">';
? }
}


?// Time to remove old entries
?$xx_mins_ago = (time() - $track_time);

// remove entries that have expired
?tep_db_query("delete from " . TABLE_WHOS_ONLINE . " where time_last_click < '" . $xx_mins_ago . "'");
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">

<!-- WOL 1.6 - Cleaned up refresh -->
<?php if( $_SERVER["QUERY_STRING"] > 0 ){ ??>
?<meta http-equiv="refresh" content="<?php echo $_SERVER["QUERY_STRING"];?>;URL=whos_online.php?<?php echo $_SERVER["QUERY_STRING"];?>">
<?php } ?>
<!-- WOL 1.6 EOF -->

<title><?php echo TITLE; ?></title>
<link rel="stylesheet" type="text/css" href="includes/stylesheet.css">
<script language="javascript" src="includes/general.js"></script>
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF">
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="2" cellpadding="2">
?<tr>
? ?<td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1" class="columnLeft">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
? ?</table></td>
<!-- body_text //-->
? ?<td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
? ? ?<tr>
? ? ? ?<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
? ? ? ? ?<tr>
? ? ? ? ? ?<td valign="bottom" class="pageHeading">
? ? ? ? ? ?<?php echo HEADING_TITLE; ?>
? ? ? ? ? ?<br clear="all"><br><span class="smallText" style="color:#909090"><?php echo TEXT_SET_REFRESH_RATE.': ?'; ?></span>
? ? ? ? ? ?<span class="dataTableContent" style="font-size: 10px; color:#000000">
? ? ? ? ? ?<!-- For loop displays refresh time links -->
? ? ? ? ? ?<?php
? ? ? ? ? ? ?echo '<a href="whos_online.php"><b>| '. TEXT_NONE_ . '</b></a>';
? ? ? ? ? ? ?foreach ($refresh_time as $key => $value) {
? ? ? ? ? ? ? ?echo ' | <a href="whos_online.php?' . $value . '"><b>' . $refresh_display[$key] . '</b></a>';
? ? ? ? ? ? ?}
? ? ? ? ? ??>
? ? ? ? ? ?<!-- Display Profile links -->
? ? ? ? ? ?<br clear="all">
? ? ? ? ? ?<span class="smallText" style="color:#909090"><?php echo TEXT_PROFILE_DISPLAY.': '; ?></span>
? ? ? ? ? ?<a href="whos_online.php"><b><?php echo TEXT_NONE_; ?></b></a> |
? ? ? ? ? ?<a href="whos_online.php?showAll"><b><?php echo TEXT_ALL; ?></b></a> |
? ? ? ? ? ?<a href="whos_online.php?showBots"><b><?php echo TEXT_BOTS; ?></b></a> |
? ? ? ? ? ?<a href="whos_online.php?showCust"><b><?php echo TEXT_REAL_CUSTOMERS; ?></b></a>
? ? ? ? ? ?</span>
? ? ? ? ? ?</td>
? ? ? ? ? ?<!-- Status Legend - Uses variables for image names -->
? ? ? ? ? ?<td rowspan="2" align="right" class="smallText">
? ? ? ? ? ? ?<table border="0" cellspacing="0" cellpadding="0">
? ? ? ? ? ? ?<tr>
? ? ? ? ? ? ? ?<td class="smallText"><?php echo
? ? ? ? ? ? ? ? ?tep_image(DIR_WS_IMAGES . $status_active_cart, TEXT_STATUS_ACTIVE_CART) . ' ' . TEXT_STATUS_ACTIVE_CART . '  ';
? ? ? ? ? ? ??></td>
? ? ? ? ? ? ? ? ? ? ? <td class="smallText"><?php echo
? ? ? ? ? ? ? ? ?tep_image(DIR_WS_IMAGES . $status_inactive_cart, TEXT_STATUS_INACTIVE_CART) . ' ' . TEXT_STATUS_INACTIVE_CART . '  ';
? ? ? ? ? ? ??></td>
? ? ? ? ? ? ?</tr>
? ? ? ? ? ? ?<tr>
? ? ? ? ? ? ? ?<td class="smallText"><?php echo
? ? ? ? ? ? ? ? ?tep_image(DIR_WS_IMAGES . $status_active_nocart, TEXT_STATUS_ACTIVE_NOCART) . ' ' . TEXT_STATUS_ACTIVE_NOCART ? .'  ';
? ? ? ? ? ? ??></td>
? ? ? ? ? ? ? ? ? ? ? <td class="smallText"><?php echo
? ? ? ? ? ? ? ? ?tep_image(DIR_WS_IMAGES . $status_inactive_nocart, TEXT_STATUS_INACTIVE_NOCART) . ' ' . TEXT_STATUS_INACTIVE_NOCART ? . '  ';
? ? ? ? ? ? ??></td>
? ? ? ? ? ? ?</tr>
? ? ? ? ? ? ?<tr>
? ? ? ? ? ? ? ?<td class="smallText"><?php echo
? ? ? ? ? ? ? ? ?tep_image(DIR_WS_IMAGES . $status_active_bot, TEXT_STATUS_ACTIVE_BOT) . ' ' . TEXT_STATUS_ACTIVE_BOT . '  ';
? ? ? ? ? ? ??></td>
? ? ? ? ? ? ? ? ? ? ? <td class="smallText"><?php echo
? ? ? ? ? ? ? ? ?tep_image(DIR_WS_IMAGES . $status_inactive_bot, TEXT_STATUS_INACTIVE_BOT) . ' ' . TEXT_STATUS_INACTIVE_BOT . '  ';
? ? ? ? ? ? ?></td>
? ? ? ? ? ? </tr>
? ? ? ? ? ? </table>
? ? ? ? ? </td>
? ? ? ? </tr>
? ? ? ?</table></td>
? ? ?</tr>
? ? ?<tr>
? ? ? ?<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
? ? ? ? ?<tr>
? ? ? ? ? ?<td valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
? ? ? ? ? ? ?<tr class="dataTableHeadingRow">
? ? ? ? ? ? ? ?<td> </td>
? ? ? ? ? ? ? ?<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_ONLINE; ?></td>
? ? ? ? ? ? ? ?<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_FULL_NAME; ?></td>
? ? ? ? ? ? ? ?<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_IP_ADDRESS; ?></td>
? ? ? ? ? ? ? ?<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_ENTRY_TIME; ?></td>
? ? ? ? ? ? ? ?<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_LAST_CLICK; ?></td>
? ? ? ? ? ? ? ?<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_LAST_PAGE_URL; ?> </td>
? ? ? ? ? ? ? ?<td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_USER_SESSION; ?> </td>
? ? ? ? ? ? ? ?<td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_HTTP_REFERER; ?> </td>
? ? ? ? ? ? ?</tr>

<?php
?// Order by is on Last Click. Also initialize total_bots and total_admin counts
?$whos_online_query = tep_db_query("select customer_id, full_name, ip_address, time_entry, time_last_click, last_page_url, http_referer, session_id from " . TABLE_WHOS_ONLINE . ' order by time_last_click DESC');
?$total_bots=0;
?$total_admin=0;
?$total_guests=0;
?$total_loggedon=0;

?while ($whos_online = tep_db_fetch_array($whos_online_query)) {

? ?$time_online = ($whos_online['time_last_click'] - $whos_online['time_entry']);
? ?if ((!isset($HTTP_GET_VARS['info']) || (isset($HTTP_GET_VARS['info']) && ($HTTP_GET_VARS['info'] == $whos_online['session_id']))) && !isset($info)) {
? ? ?$info = $whos_online['session_id'];
? ?}

/* BEGIN COUNT MOD */
? ?if ($old_array['ip_address'] == $whos_online['ip_address']) {
? ? ?$i++;
? ?}
/* END COUNT MOD */

? ?if ($whos_online['session_id'] == $info) {
? ? ? if($whos_online['http_referer'] != "")
? ? ? {
? ? ? ?$http_referer_url = $whos_online['http_referer'];
? ? ? }
? ? ?echo '<tr id="defaultSelected" class="dataTableRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)">' . "\n";
? ?} else {
? ? ?echo '<tr class="dataTableRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . tep_href_link(FILENAME_WHOS_ONLINE, tep_get_all_get_params(array('info', 'action')) . 'info=' . $whos_online['session_id'], 'NONSSL') . '\'">' . "\n";
? ?}

? // Display Status
? // ? Check who it is and set values
? ?$is_bot = $is_admin = $is_guest = $is_account = false;
? ?// Bot detection
? ?if ($whos_online['customer_id'] < 0) {
? ? ?$total_bots++;
? ? ?$fg_color = $fg_color_bot;
? ? ?$is_bot = true;
? ? ?// Admin detection
? ?} elseif ($whos_online['ip_address'] == tep_get_ip_address() ) { //$_SERVER["REMOTE_ADDR"]) {
? ? ?$total_admin++;
? ? ?$fg_color = $fg_color_admin;
? ? ?$is_admin = true;
? ?// Guest detection (may include Bots not detected by Prevent Spider Sessions/spiders.txt)
? ?} elseif ($whos_online['customer_id'] == 0) {
? ? ?$fg_color = $fg_color_guest;
? ? ?$is_guest = true;
? ? ?$total_guests++;
? ?// Everyone else (should only be account holders)
? ?} else {
? ? ?$fg_color = $fg_color_account;
? ? ?$is_account = true;
? ? ?$total_loggedon++;
? ?}
?>
? ? ? ? ? ? ? ?<!-- Status Light Column -->
? ? ? ? ? ? ? ?<td class="dataTableContent" align="left" valign="top">
? ? ? ? ? ? ? ? ?<?php echo ' ' . tep_check_cart($whos_online['session_id'], $whos_online['customer_id'], $whos_online['session_id']); ?>
? ? ? ? ? ? ? ?</td>

? ? ? ? ? ? ? ?<!-- Time Online Column -->
? ? ? ? ? ? ? ?<td class="dataTableContent" valign="top"><font color="<?php echo $fg_color; ?>">
? ? ? ? ? ? ? ? ?<?php echo gmdate('H:i:s', $time_online); ?>
? ? ? ? ? ? ? ?</font> </td>

? ? ? ? ? ? ? ?<!-- Name Column -->
? ? ? ? ? ? ? ?<td class="dataTableContent" valign="top"><font color="<?php echo $fg_color; ?>">
? ? ? ? ? ? ? ? ?<?php
? ? ? ? ? ? ? ? ?// WOL 1.6 Restructured to Check for Guest or Admin
? ? ? ? ? ? ? ? ?if ( $is_guest || $is_admin )
? ? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ?echo $whos_online['full_name'] . ' ';
? ? ? ? ? ? ? ? ?// Check for Bot
? ? ? ? ? ? ? ? ?} elseif ( $is_bot ) {
? ? ? ? ? ? ? ? ? ?// Tokenize UserAgent and try to find Bots name
? ? ? ? ? ? ? ? ? ?$tok = strtok($whos_online['full_name']," ();/");
? ? ? ? ? ? ? ? ? ?while ($tok) {
? ? ? ? ? ? ? ? ? ? ?if ( strlen($tok) > 3 )
? ? ? ? ? ? ? ? ? ? ? ?if ( !strstr($tok, "mozilla") &&
? ? ? ? ? ? ? ? ? ? ? ? ? ? !strstr($tok, "compatible") &&
? ? ? ? ? ? ? ? ? ? ? ? ? ? !strstr($tok, "msie") &&
? ? ? ? ? ? ? ? ? ? ? ? ? ? !strstr($tok, "windows")
? ? ? ? ? ? ? ? ? ? ? ? ? ) {
? ? ? ? ? ? ? ? ? ? ? ? ?echo "$tok";
? ? ? ? ? ? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? ? ?$tok = strtok(" ();/");
? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ?// Check for Account
? ? ? ? ? ? ? ? ?} elseif ( $is_account ) {
? ? ? ? ? ? ? ? ? ?echo '<a HREF="customers.php?selected_box=customers&cID=' . $whos_online['customer_id'] . '&action=edit">' . $whos_online['full_name'] . '</a>';
? ? ? ? ? ? ? ? ?} else {
? ? ? ? ? ? ? ? ? ?echo TEXT_ERROR;
? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ??>
? ? ? ? ? ? ? ?</font> </td>

? ? ? ? ? ? ? ?<!-- IP Address Column -->
? ? ? ? ? ? ? ?<td class="dataTableContent" valign="top"><font color="<?php echo $fg_color; ?>">
? ? ? ? ? ? ? ? ?<?php
? ? ? ? ? ? ? ? ?// Show 'Admin' instead of IP for Admin
? ? ? ? ? ? ? ? ?if ( $is_admin )
? ? ? ? ? ? ? ? ? ?echo TEXT_ADMIN;
? ? ? ? ? ? ? ? ?else
? ? ? ? ? ? ? ? ? ?// Show IP with link to IP checker
? ? ? ? ? ? ? ? ? ?echo '<a HREF="http://www.showmyip.com/?ip=' . $whos_online['ip_address'] . '" target="_blank">' . $whos_online['ip_address'] . '</a>';
? ? ? ? ? ?; ? ? ??>
? ? ? ? ? ? ? ?</font> </td>

? ? ? ? ? ? ? ?<!-- Time Entry Column -->
? ? ? ? ? ? ? ?<td class="dataTableContent" valign="top"><font color="<?php echo $fg_color; ?>">
? ? ? ? ? ? ? ? ?<?php echo date('H:i:s', $whos_online['time_entry']); ?>
? ? ? ? ? ? ? ?</font></td>

? ? ? ? ? ? ? ?<!-- Last Click Column -->
? ? ? ? ? ? ? ?<td class="dataTableContent" align="center" valign="top"><font color="<?php echo $fg_color; ?>">
? ? ? ? ? ? ? ? ?<?php echo date('H:i:s', $whos_online['time_last_click']); ?>
? ? ? ? ? ? ? ?</font> </td>

? ? ? ? ? ? ? ?<!-- Last URL Column -->
? ? ? ? ? ? ? ?<td class="dataTableContent" valign="top">
? ? ? ? ? ? ? ?<?php
? ? ? ? ? ? ? ?$temp_url_link = $whos_online['last_page_url'];
? ? ? ? ? ? ? ?if (eregi('^(.*)' . tep_session_name() . '=[a-f,0-9]+[&]*(.*)', $whos_online['last_page_url'], $array)) {
? ? ? ? ? ? ? ? ?$temp_url_display = ?$array[1] . $array[2];
? ? ? ? ? ? ? ?} else {
? ? ? ? ? ? ? ? ?$temp_url_display = $whos_online['last_page_url'];
? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?// WOL 1.6 - Removes osCid from the Last Click URL and the link
? ? ? ? ? ? ? ?if ( $osCsid_position = strpos($temp_url_display, "osCsid") )
? ? ? ? ? ? ? ? ?$temp_url_display = substr_replace($temp_url_display, "", $osCsid_position - 1 );
? ? ? ? ? ? ? ?if ( $osCsid_position = strpos($temp_url_link, "osCsid") )
? ? ? ? ? ? ? ? ?$temp_url_link = substr_replace($temp_url_link, "", $osCsid_position - 1 );
? ? ? ? ? ? ? ??>
? ? ? ? ? ? ? ? ?<a HREF="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . $temp_url_link; ?>" target=\"_blank\">
? ? ? ? ? ? ? ? ? ?<font color="<?php echo $fg_color; ?>">
? ? ? ? ? ? ? ? ? ? ?<?php
? ? ? ? ? ? ? ? ? ? ? ?echo $temp_url_display;
? ? ? ? ? ? ? ? ? ? ??>
? ? ? ? ? ? ? ? ? ?</font>
? ? ? ? ? ? ? ? ?</a>
? ? ? ? ? ? ? ?</td>

? ? ? ? ? ? ? ?<!-- osCsid? Column -->
? ? ? ? ? ? ? ?<td class="dataTableContent" align="center" valign="top"><font color="<?php echo $fg_color; ?>">
? ? ? ? ? ? ? ? ?<?php
? ? ? ? ? ? ? ? ?if($whos_online['session_id'] != "") {
? ? ? ? ? ? ? ? ? ? ?echo 'Y';
? ? ? ? ? ? ? ? ?} else {
? ? ? ? ? ? ? ? ? ? ?echo " ";
? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ??>
? ? ? ? ? ? ? ?</font></td>

? ? ? ? ? ? ? ?<!-- Referer? Column -->
? ? ? ? ? ? ? ?<td class="dataTableContent" align="center" valign="top"><font color="<?php echo $fg_color; ?>">
? ? ? ? ? ? ? ? ?<?php
? ? ? ? ? ? ? ? ?if($whos_online['http_referer'] == "") {
? ? ? ? ? ? ? ? ? ? ?echo ' ';
? ? ? ? ? ? ? ? ?} else {
? ? ? ? ? ? ? ? ? ? ?echo TEXT_HTTP_REFERER_FOUND;
? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ??>
? ? ? ? ? ? ? ?</font></td>
? ? ? ? ? ? ?</tr>

? ? ? ? ? ? ?<tr class="dataTableRow">
? ? ? ? ? ? ? ?<td class="dataTableContent" colspan="3"></td>
? ? ? ? ? ? ? ?<td class="dataTableContent" colspan="6"><font color="<?php echo $fg_color; ?>">
? ? ? ? ? ? ? ?<?php
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// Display Details for All
? ? ? ? ? ? ? ?if ( $_SERVER["QUERY_STRING"] == showAll ) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?display_details();
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// Display Details for Bots
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?else if( $_SERVER["QUERY_STRING"] == showBots ){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?if ( $is_bot ) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?display_details();
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// Display Details for Customers
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?else if( $_SERVER["QUERY_STRING"] == showCust ){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?if ( $is_guest || $is_account || $is_admin ) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?display_details();
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?</font></td>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?</tr>

<?php
$old_array = $whos_online;
?}

?if (!$i) {
? ? ? ? ?$i=0;
?}
?$total_dupes = $i;
?$total_sess = tep_db_num_rows($whos_online_query);
?// WOL 1.4 - Subtract Bots and Me from Real Customers. ?Only subtract me once as Dupes will remove others
?$total_cust = $total_sess - $total_dupes - $total_bots - ($total_admin > 1? 1 : $total_admin);
?// WOL 1.4 eof
?>
<?php
?if(isset($http_referer_url))
?{
?>
?<tr>
? ? ? ?<td class="smallText" colspan="9"><?php echo '<br><strong>' . TEXT_HTTP_REFERER_URL . ':</strong> ' . $http_referer_url; ?></td>
?</tr>
?<?php
?}
?>
? ? ? ? ? ? ?<tr>
<!-- WOL 1.4 - Added Bot and Me counts -->
? ? ? ? ? ? ? ?<td class="smallText" colspan="9"><hr><?php echo sprintf(TEXT_NUMBER_OF_CUSTOMERS, $total_sess); print "<br><br>".TEXT_DUPLICATE_IP.": $total_dupes<br>".TEXT_BOTS.": $total_bots<br>".TEXT_ME.": $total_admin<br>".TEXT_REAL_CUSTOMERS.": $total_cust<br><br>".TEXT_YOUR_IP_ADDRESS.": ".tep_get_ip_address();?></td><!-- ?//$_SERVER["REMOTE_ADDR"];?></td> -->
<!-- WOL 1.4 eof -->
? ? ? ? ? ? ?</tr>
? ? ? ? ? ?</table></td>

<?php
?$heading = array();
$contents = array();
$heading[] = array('text' => '<b>' . TABLE_HEADING_SHOPPING_CART . '</b>');
if (isset($info)) {
? if (STORE_SESSIONS == 'mysql') {
? ? $session_data = tep_db_query("select value from " . TABLE_SESSIONS . " WHERE sesskey = '" . $info . "'");
? ? $session_data = tep_db_fetch_array($session_data);
? ? $session_data = trim($session_data['value']);
? } else {
? ? if ( (file_exists(tep_session_save_path() . '/sess_' . $info)) && (filesize(tep_session_save_path() . '/sess_' . $info) > 0) ) {
? ? ? $session_data = file(tep_session_save_path() . '/sess_' . $info);
? ? ? $session_data = trim(implode('', $session_data));
? ? }
? }

? ?if ($length = strlen($session_data)) {

? ? ?if (PHP_VERSION < 4) {
? ? ? ?$start_id = strpos($session_data, 'customer_id[==]s');
? ? ? ?$start_cart = strpos($session_data, 'cart[==]o');
? ? ? ?$start_currency = strpos($session_data, 'currency[==]s');
? ? ? ?$start_country = strpos($session_data, 'customer_country_id[==]s');
? ? ? ?$start_zone = strpos($session_data, 'customer_zone_id[==]s');
? ? ?} else {
? ? ? ?$start_id = strpos($session_data, 'customer_id|s');
? ? ? ?$start_cart = strpos($session_data, 'cart|O');
? ? ? ?$start_currency = strpos($session_data, 'currency|s');
? ? ? ?$start_country = strpos($session_data, 'customer_country_id|s');
? ? ? ?$start_zone = strpos($session_data, 'customer_zone_id|s');
? ? ?}

? ? ?for ($i=$start_cart; $i<$length; $i++) {
? ? ? ?if ($session_data[$i] == '{') {
? ? ? ? ?if (isset($tag)) {
? ? ? ? ? ?$tag++;
? ? ? ? ?} else {
? ? ? ? ? ?$tag = 1;
? ? ? ? ?}
? ? ? ?} elseif ($session_data[$i] == '}') {
? ? ? ? ?$tag--;
? ? ? ?} elseif ( (isset($tag)) && ($tag < 1) ) {
? ? ? ? ?break;
? ? ? ?}
? ? ?}

? ? ?$session_data_id = substr($session_data, $start_id, (strpos($session_data, ';', $start_id) - $start_id + 1));
? ? ?$session_data_cart = substr($session_data, $start_cart, $i);
? ? ?$session_data_currency = substr($session_data, $start_currency, (strpos($session_data, ';', $start_currency) - $start_currency + 1));
? ? ?$session_data_country = substr($session_data, $start_country, (strpos($session_data, ';', $start_country) - $start_country + 1));
? ? ?$session_data_zone = substr($session_data, $start_zone, (strpos($session_data, ';', $start_zone) - $start_zone + 1));

? ? ?session_decode($session_data_id);
? ? ?session_decode($session_data_currency);
? ? ?session_decode($session_data_country);
? ? ?session_decode($session_data_zone);
? ? ?session_decode($session_data_cart);

? ? ?if (PHP_VERSION < 4) {
? ? ? ?$broken_cart = $cart;
? ? ? ?$cart = new shoppingCart;
? ? ? ?$cart->unserialize($broken_cart);
? ? ?}

? ? ?if (is_object($cart)) {
? ? ? ?$products = $cart->get_products();
? ? ? ?for ($i = 0, $n = sizeof($products); $i < $n; $i++) {
? ? ? ? ?$contents[] = array('text' => $products[$i]['quantity'] . ' x ' . $products[$i]['name']);
? ? ? ?}

? ? ? ?if (sizeof($products) > 0) {
? ? ? ? $contents[] = array('text' => tep_draw_separator('pixel_black.gif', '100%', '1'));
? ? ? ? $contents[] = array('align' => 'right', 'text' ?=> TEXT_SHOPPING_CART_SUBTOTAL . ' ' . $currencies->format($cart->show_total(), true, $currency));
// ? ? ? ?}
// ? ? ?}
? ? } else {
? ? ? ? $contents[] = array('text' => 'Empty');
?}
?}
}
}
// EEM - Always show Shopping Cart column
if ( (tep_not_null($heading)) && (tep_not_null($contents)) ) {
// EEM eof

? // Show shopping cart contents fro selected entry
? echo ' ? ? ? ? ? ?<td valign="top">' . "\n";

? $box = new box;
? echo $box->infoBox($heading, $contents);

? echo '</td>' . "\n";
}
?>
? ? ? ? ?</tr>
? ? ? ?</table></td>
? ? ?</tr>
? ?</table></td>
<!-- body_text_eof //-->
?</tr>
</table>
<!-- body_eof //-->

<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
<br>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

 

session dir is /var/www/html/session

Cookie use and prevent spider session = True.

Edited by Jap Performance
Link to comment
Share on other sites

Been spending toomuch time on this.. will post code.

 

session dir is /var/www/html/session

Cookie use and prevent spider session = True.

 

Matt

Please copy my files I posted on page 20 of this forum.

The one you have just posted still has the cart session data looking up the wrong directory location.

You will also find that it has a few cosmetic layout changes.

This may not fix all your problems, but at least we are on the same playing field.

 

Cookie use should be OFF, False.

Prevent Spider Sessions should be ON, True.

Sessions Directory I recommend should be one under the publicly accessible directory, because this directory has to be set to 777 properties (CHMOD).

Check SSL Session ID, False

Check User Agent, False

Check IP Address, False

Recreate Session, True

 

John

Link to comment
Share on other sites

Matt

Please copy my files I posted on page 20 of this forum.

The one you have just posted still has the cart session data looking up the wrong directory location.

You will also find that it has a few cosmetic layout changes.

This may not fix all your problems, but at least we are on the same playing field.

 

Cookie use should be OFF, False.

Prevent Spider Sessions should be ON, True.

Sessions Directory I recommend should be one under the publicly accessible directory, because this directory has to be set to 777 properties (CHMOD).

Check SSL Session ID, False

Check User Agent, False

Check IP Address, False

Recreate Session, True

 

John

 

Copied your files (see the cosmetics)

No change.. still see carts.. same prob- no IDs for bots still.. :(

I notice in your file '/sess_'

Is that the name of your sessions folder??

Edited by Jap Performance
Link to comment
Share on other sites

Copied your files (see the cosmetics)

No change.. still see carts.. same prob- no IDs for bots still.. :(

I notice in your file '/sess_'

Is that the name of your sessions folder??

 

 

Ok.. well.. the bloody bots are showing now :D

Now to get back to std display..

Link to comment
Share on other sites

Ok.. so I dropped my orginal admin/whos...php nack in.. bot showing.. so the fault lies in admin/lang/engl/whos..php

 

UPDATE: No its not!!

Its in the settings (must be as I dropped my orginal back in, and working)

Cookies or recreate sessions...

 

Is there any update to stopping the bots I jumping around? same bot has been slurp, msn and yahoo all in 5 mins... and just jumped to google.... :(

Edited by Jap Performance
Link to comment
Share on other sites

Ok.. so I dropped my orginal admin/whos...php nack in.. bot showing.. so the fault lies in admin/lang/engl/whos..php

 

UPDATE: No its not!!

Its in the settings (must be as I dropped my orginal back in, and working)

Cookies or recreate sessions...

 

Is there any update to stopping the bots I jumping around? same bot has been slurp, msn and yahoo all in 5 mins... and just jumped to google....  :(

 

Matt

Try deleting all sessions files in the session directory for a fresh start. I have never noticed any jumping around like you speak off, so maybe it's getting mixed up with old files.

 

P.S. Matt, STOP fiddling. If the new file works leave it alone. :thumbsup:

Link to comment
Share on other sites

Matt,

 

I have the Bot problem (same entry appears to show different bot names at different times) fixed. I need to release a new beta with the fix. I told John I'd have it out this weekend but it looks more like Monday.

 

ed

Link to comment
Share on other sites

Matt,

 

I have the Bot problem (same entry appears to show different bot names at different times) fixed.  I need to release a new beta with the fix.  I told John I'd have it out this weekend but it looks more like Monday.

 

ed

 

 

Will this fix the bots not being identifiued as bots? On mine it shows them as guests. When i check the ip it says it is a bot? Thanks

 

00:06:16 Guest 207.46.98.43 19:12:31 19:18:47 /catalog/checkout_shipping.php Y

 

 

Maddie

Link to comment
Share on other sites

wow whats going on? I have a guest who has an active cart and it does not show their entore order on the one line now like it used to there are 4 lines all same customer with same IP and each one has different things in the cart? Is this a glitch? The previus version did not do this?? Any ideas?

 

Also, when I refresh people who have left the site do not go away for some time...

 

Maddie

Link to comment
Share on other sites

Maddie,

 

For the Bots, do you have Prevent Spider Sessions turned on?

 

For the customer showing up 4 times, are the sessions the same?

 

For the refresh, how long do the people stay around? By default, it is set to 15 minutes from last click.

 

ed

Link to comment
Share on other sites

Maddie,

 

For the Bots, do you have Prevent Spider Sessions turned on?

Nope will do now thanks!

 

For the customer showing up 4 times, are the sessions the same?

It turned out it was a google bot.. but can they put things in your cart?? This one did.. :huh:

 

For the refresh, how long do the people stay around?? By default, it is set to 15 minutes from last click.

Ahhh ok this I did not know thanks

ed

 

Thanks!

Maddie

 

PS is there a way to use the different colored dots? It was easier for me to read .. thanks

Edited by MzBeanz
Link to comment
Share on other sites

Maddie,

 

Bots can put items into a cart UNLESS you turn on Prevent Spider Sessions. So. you've just killed 2 birds with one stone.

 

BTW, the bots have probably been storing the session ID with the URL as they index the site. It can take a month or two for that to clear out of Google and others.

 

What do you mean about the colored lights?

 

ed

Edited by medvid
Link to comment
Share on other sites

Maddie,

 

In 1.6 Beta, the lights are easy to change by editing some constants at the top of admin/whos_online.php. It's easyier this way to set your preferences.

 

ed

Edited by medvid
Link to comment
Share on other sites

OOPS - TYPO >_<  These lines of code came from my Catalog/admin/whos online.php at line 343. Could you check to see if your file looks the same there? I got the file straight out of the contribution download and if I do not comment out those lines my admin panel throws the error.

 

I have resolution!!!

 

I turns out the install instructions (as I find in many contributions) defined a modifaction to a file in the ADMIN directory but it was actually needed in the CATALOG/admin/.... This was defined in install step #3

 

3) Add the following code to the bottom (just before the final ?> tag) of admin\includes\functions\general.php

 

Once I removed it from this ADMIN/.... path file and put the extra code into:

 

CATALOG\admin\includes\functions\general.php --- all is fine and dandy!

 

I have found many install instructions call for files in the ADMIN/..... folders when actually they belong in Catalog/admin/.....

 

This may be obvious for a seasoned PHP person but it throws me for a major loop because there is usually an identically named file in each path.

Link to comment
Share on other sites

Mark,

 

The reason I (and maybe others) simply say admin/... is because we don't know where your admin directory is. Some people put it here (apparently you do):

www.mydomain.com/catalog/admin

Some people put it here:

www.mydomain.com/admin

We're a little vague because we don't know your configuration.

 

ed

Link to comment
Share on other sites

All,

 

I've finally :-" uploaded V1.7 of Who's Online Enhancement. It includes the following:

 

- Another fix for Sessions stored in files. Thanks Gob!

- A fix for showing more than one Bot at a time.

- A fix for showing Empty in the cart column. Another Gob fix!

- A refresh time stamp. Gob again!

- Customer profile now includes User Agent. BoulderDash's idea.

- Language updates - Includes updates from Expert (Turkish), Tor Austheim (Norwegian), and Calbasi (Catalana) for the language files.

 

Please note, much of the new/changed code is curtesy of others. However, if there are problems, blame me, not them, for not integrating it correctly.

 

Please post problems. I'll be out of town this weekend but the support here is great :thumbsup: and I'll catch up whatever isn't caught on Monday.

 

ed

Link to comment
Share on other sites

All,

 

2 notes...

 

1) The fix for sessions stored in files depends on the right admin setting. In Admin->Configuration->Sessions, make sure Session Directory is an absolute (full) path to your session directory.

 

2) There's a new field in the whos_online database table. Don't miss that in the instructions.

 

ed

Link to comment
Share on other sites

All,

 

2 notes...

 

1) The fix for sessions stored in files depends on the right admin setting.  In Admin->Configuration->Sessions, make sure Session Directory is an absolute (full) path to your session directory.

 

2) There's a new field in the whos_online database table.  Don't miss that in the instructions.

 

ed

Hi Ed

 

Thanks for your credits, Ed.

I will implement new file/s later tonight and let you all know how I go.

 

Cheers

Gob

Link to comment
Share on other sites

Hi Guys

 

I have today uploaded the new contribution. I have followed closely steps 1 through 4. I have placed the tmp directory in the CATALOG directory and made sure my sessions path is correct (I can see the session files being stored there - although empty). Prevent spiders set to TRUE and recreate sessions set to TRUE.

 

I have Customers, lights, bots everything it seems except CART CONTENTS. Customers are logging in, moving around and completing purchases - I can see them doing it...just cant see what theyre putting in their cart.

 

Is there another setting Ive missed? Ive searched the forum on the contribution but dont see it?

 

Your comments would be appreciated.

 

Thanks

Link to comment
Share on other sites

Hi Guys

 

I have today uploaded the new contribution.  I have followed closely steps 1 through 4.  I have placed the tmp directory in the CATALOG directory and made sure my sessions path is correct (I can see the session files being stored there - although empty).  Prevent spiders set to TRUE and recreate sessions set to TRUE.

 

I have Customers, lights, bots everything it seems except CART CONTENTS.  Customers are logging in, moving around and completing purchases - I can see them doing it...just cant see what theyre putting in their cart.

 

Is there another setting Ive missed?  Ive searched the forum on the contribution but dont see it?

 

Your comments would be appreciated.

 

Thanks

I know this may sound silly, but are you clicking on the lines that indicate someone has something in their cart?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...