Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Ongoing admin problem whos_online


tobinuk

Recommended Posts

Hi all,

 

Has there been a solution to admin whos_online problem?

 

Fatal error: Maximum execution time of 30 seconds exceeded in /home/******/public_html/admin/whos_online.php on line 136 and sometimes 130.

I have tried publishing a fresh copy of the whos_online and this does not resolve the problem! I have also read in a previous post that accessing PHPMyadmin and analyzing and repairing the whos_online table could fix the problem..........

It did not resolve !! Any Ideas would really be appreciated

 

 

 

<?php
/*
 $Id: whos_online.php 1739 2007-12-20 00:52:16Z hpdl $

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

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

 $xx_mins_ago = (time() - 900);

 require('includes/application_top.php');

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

// 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; ?>">
<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 class="pageHeading"><?php echo HEADING_TITLE; ?></td>
		<td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif', HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></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 class="dataTableHeadingContent"><?php echo TABLE_HEADING_ONLINE; ?></td>
			<td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_CUSTOMER_ID; ?></td>
			<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_FULL_NAME; ?></td>
			<td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_IP_ADDRESS; ?></td>
			<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_ENTRY_TIME; ?></td>
			<td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_LAST_CLICK; ?></td>
			<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_LAST_PAGE_URL; ?> </td>
		  </tr>
<?php
 $whos_online_query = tep_db_query("select customer_id, full_name, ip_address, time_entry, time_last_click, last_page_url, session_id from " . TABLE_WHOS_ONLINE);
 while ($whos_online = tep_db_fetch_array($whos_online_query)) {
$time_online = (time() - $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'];
}

if ($whos_online['session_id'] == $info) {
  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";
}
?>
			<td class="dataTableContent"><?php echo gmdate('H:i:s', $time_online); ?></td>
			<td class="dataTableContent" align="center"><?php echo $whos_online['customer_id']; ?></td>
			<td class="dataTableContent"><?php echo $whos_online['full_name']; ?></td>
			<td class="dataTableContent" align="center"><?php echo $whos_online['ip_address']; ?></td>
			<td class="dataTableContent"><?php echo date('H:i:s', $whos_online['time_entry']); ?></td>
			<td class="dataTableContent" align="center"><?php echo date('H:i:s', $whos_online['time_last_click']); ?></td>
			<td class="dataTableContent"><?php if (eregi('^(.*)' . tep_session_name() . '=[a-f,0-9]+[&]*(.*)', $whos_online['last_page_url'], $array)) { echo $array[1] . $array[2]; } else { echo $whos_online['last_page_url']; } ?> </td>
		  </tr>
<?php
 }
?>
		  <tr>
			<td class="smallText" colspan="7"><?php echo sprintf(TEXT_NUMBER_OF_CUSTOMERS, tep_db_num_rows($whos_online_query)); ?></td>
		  </tr>
		</table></td>
<?php
 $heading = array();
 $contents = array();

 if (isset($info)) {
$heading[] = array('text' => '<b>' . TABLE_HEADING_SHOPPING_CART . '</b>');

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' => ' ');
	}
  }
}
 }

 if ( (tep_not_null($heading)) && (tep_not_null($contents)) ) {
echo '			<td width="25%" 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'); ?>

 

Thank you, Steve

Link to comment
Share on other sites

Hi all,

 

Has there been a solution to admin whos_online problem?

 

Fatal error: Maximum execution time of 30 seconds exceeded in /home/******/public_html/admin/whos_online.php on line 136 and sometimes 130.

I have tried publishing a fresh copy of the whos_online and this does not resolve the problem! I have also read in a previous post that accessing PHPMyadmin and analyzing and repairing the whos_online table could fix the problem..........

It did not resolve !! Any Ideas would really be appreciated

Why bother to look if anyone replied to your earlier post? It is so much more convenient to just ask again and say the problem wasn't resolved. :angry:

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...