Category: General

Why I think Facebook Sucks@

Share on TwitterShare on TumblrSubmit to StumbleUponSave on DeliciousDigg ThisSubmit to redditShare on MyspaceShare via email

I’ve been itching to bitch about everybody’s favorite former-Myspace-wannabe, current-LinkedIn-wannabe Facebook.

Maybe I’m one of the last few sane people, but I’m not active on Facebook. I won’t spend time or waste time there. If you send me a stupid invite or I receive an email saying you added me to your little network there, you go right into the virtual trash. I have plenty of people who ask me why I won’t jump on the Facebook bandwagon. I just tell them it sucks and that I have more useful ways to spend my time (and more fun ways to waste it). But here you go… my top ten reasons Facebook sucks:

1. It’s incredibly juvenile compared to other networks, yet I constantly see people using it for business reasons. Use unprofessional services, and that’s exactly how it makes you look. If you think it’s professional to “poke” your colleagues online, maybe you still belong chasing 10 year old boys around the schoolyard.

2. Facebook is a fad. Yes, a FAD!!! You couldn’t give a single legitimate argument to prove otherwise (and don’t try to feed me that crap line about social networking being around long enough to no longer be a fad… Facebook, a single company, doesn’t equate to “social networking”). People who waste their time chasing fads (especially in marketing) always get burned, wasting more time than they can justify in the long run.

3. Frankly, there are better ways to reach your target audience (unless you’re primarily targeting students – despite their changes, that’s still the primary userbase. If you’re targeting them, Facebook may be an alright tool for you. If you’re not, forget it.). If you’re not putting in the effort to find the best ways to reach your target audience, you’re not doing your job. In most cases, Facebook won’t even come close.

4. Facebook doesn’t even know who the hell they are, yet people are willing to put their professional identity even partly in their hands. Guess what. Their first model sucked. They’re toying with something new. Do you really want to invest a lot of time and effort into networking through a company who couldn’t even remain faithful to their own market? I sure as hell don’t.

5. PR professionals should know hype when they see it. Enough said on that front.

6. Most people I know who are on Facebook are on a variety of other social networks as well. Newsflash: most have no real added benefit. If you’re using Facebook as just one of several social networking sites, you have way too much time on your hands that would probably be better spent elsewhere.

7. The company has a history of not being terribly considerate of their users’ privacy. They may have privacy options available now, but do you really trust a company like that when it comes to your business? If you do, that’s great. Dense perhaps, but great.

8. The fact that they try to act like their own little virtual world is just annoying. Any site that forces you to register to really get a feel for it is just pathetic. It’s a simple marketing tactic on their end to rev up their member numbers (and supposed worth?) whether people actually use the site or not.

9. Speaking of their “value,” I’m sick of hearing about it. All the talk about whether or not they’d be sold and for how much is what started all of Facebook buzz in the first place (despite the fact that most of the newer die hard fans don’t even realize where the sudden mass interest came from).

10. Frankly, Facebook is so “been there done that.” They’re dated. They’re not “cool” anymore. The early adopters have come, gone, and moved onto better (and more useful) things, and what you have now is this overwhelming group of stale business-minded folks who still buy into the hype. Why? Because most people are too lazy to actually research a marketing / PR tactic before jumping on the bandwagon when it’s all everyone’s talking about. That’s the nature of being a fad. The only good thing about Facebook is the fact that fads die.

Now don’t get me wrong… I’m not completely knocking all social networks. I’ve used Myspace for quite some time for business, and very effectively. But there’s a huge difference between me using Myspace and most of the folks using Facebook in any kind of a networking / marketing capacity: I know my market, and I chose my tools completely based on the most effective ways of reaching them. I do music publicity work and run a music zine for independent artists. There’s simply still no better place to find them, and that particular market isn’t the type to pick up and move to other social networks. Most people I know using Facebook are totally clueless about how their market uses (or doesn’t use) the site or social networking in general. That’s just bad business.

I don’t expect most people to agree with me. I wouldn’t be surprised if I offended quite a few people who are so slow as to still buy into the fad without any real vision for the future potential or lack thereof. But Facebook isn’t worth any more time than it took to write this rant (if even that). There are much better options out there. If you use generic tools like Facebook for marketing, you’ll never get the best reach and value for the time commitment. Like with anything else, know your market or audience and find the most effective ways to reach them. “Well everyone else is doing it” just isn’t a good excuse… especially in business.

Share on TwitterShare on TumblrSubmit to StumbleUponSave on DeliciousDigg ThisSubmit to redditShare on MyspaceShare via email
 

Nokia Secret Codes List

Share on TwitterShare on TumblrSubmit to StumbleUponSave on DeliciousDigg ThisSubmit to redditShare on MyspaceShare via email

here are a bit of the listed uncovered nokia secret codes ..

On the main screen type in:
*#06# for checking the IMEI (International Mobile Equipment Identity).
*#7780# reset to factory settings.
*#67705646# This will clear the LCD display(operator logo).
*#0000# To view software version.
*#2820# Bluetooth device address.
*#746025625# Sim clock allowed status.
#pw+1234567890+1# Shows if sim have restrictions.
*#92702689# – takes you to a secret menu where you may find some of the information below:
1. Displays Serial Number.
2. Displays the Month and Year of Manufacture
3. Displays (if there) the date where the phone was purchased (MMYY)
4. Displays the date of the last repair – if found (0000)
5. Shows life timer of phone (time passes since last start)
*#3370# – Enhanced Full Rate Codec (EFR) activation. Increase signal strength, better signal reception. It also help if u want to use GPRS and the service is not responding or too slow. Phone battery will drain faster though.
*#3370* – (EFR) deactivation. Phone will automatically restart. Increase battery life by 30% because phone receives less signal from network.
*#4720# – Half Rate Codec activation.
*#4720* – Half Rate Codec deactivation. The phone will automatically restart
If you forgot wallet code for Nokia S60 phone, use this code reset: *#7370925538#
Note, your data in the wallet will be erased. Phone will ask you the lock code. Default lock code is: 12345
Press *#3925538# to delete the contents and code of wallet.
Unlock service provider: Insert sim, turn phone on and press vol up(arrow keys) for 3 seconds, should say pin code. Press C,then press * message should flash, press * again and 04*pin*pin*pin# \
*#7328748263373738# resets security code.
Default security code is 12345
Change closed caller group (settings >security settings>user groups) to 00000 and ure phone will sound the message tone when you are near a radar speed trap. Setting it to 500 will cause your phone 2 set off security alarms at shop exits, gr8 for practical jokes! (works with some of the Nokia phones.) Press and hold “0″ on the main screen to open wap browser.

On a more specific tests , and verfied on each phones models codes

Nokia 1610 / 1611

*#06# for checking the IMEI (International Mobile Equipment Identity)
*#170602112302# shows the SW version.

Latest software version on Nokia 1610: v 5.15 (25.02.97) NHE-5NX – older version V 4.19
Latest software version on Nokia 1611: V 4.03 NHE-5SX

Nokia 2010

To view IMEI number *#06#
To view Software Version enter *#9999#
*3001#12345 for field test mode and nam selection and some other stuff…

Nokia 3810

To view IMEI number *#06#
To view Software Version enter *#3810#

Nokia 5120

*3001#12345# gives access to NAM1 and 2, sw version, security, alpha tags and heaps of other stuff.

Nokia 5190

*#06# for checking the IMEI (International Mobile Equipment Identity)
*#5190# shows the SW version.
*#92772689# (after removing the analog module) shows service menu.
*3001#12345[OK] to enter test mode.
*#639# to change NAM.

Nokia 6080 / 6081

*#06# for checking the IMEI (International Mobile Equipment Identity)
*#0000# shows the SW version.

Latest software version on 6080 V 4.80 NHE-2
Latest software version on 6081 V 5.14 NHE-2A

Nokia 6120 / 6160 / 6162 (TDMA phones)

*#92772689# for checking ISDN number.
*3001#12345# for field test mode and nam selection and some other stuff…
*#9999# shows the SW version.

Nokia 6150

*#06# for checking the IMEI (International Mobile Equipment Identity)

*#0000# shows the SW version.
*#92702689# to enter service menu.

Latest software version on 6150 V 5.23 20-03-00 NSM-1

*#92702689# [*#war0anty#]
You don’t need the warranty-codes any more – you can just scroll through the information like in any other menu. It has the the same data as 81xx and 31xx phones (with “Edit” button for purchase date, and “User data transfer”).

Menu:
1: Displays Serial Number.
2: Displays the Month and Year of Manufacture (0997)
3: Displays (if there) the date where the phone was purchased (MMYY) you can here set the Purchasing Date (Warning: You can only do this once – so be careful what you write…)
4: Displays the date of the last repairment – if found (0000)
6: The option is for transferring ALL the telephone data (from the memory) to a “box” so that the technician can fiddle with the phone without worrying about the data stored on it. Stuff stored on the SIM is not transferred, but who delivers their phone with the SIM?

Latest software version 5.22 (10-11-99) NSM-1

Older versions:
5.20 (20-09-99) NSM-1
5.17 (01-07-99) NSM-1

Updates:
1. Updated GSM-list
2. *4720# and #4720# (activate/deactivate Halfrate) doesn’t work anymore!
3. New menu option: 4-4-6 Confirm SIM service actions Lets you select whether SIM service actions are visible and confirmed by you.
4. Automatic menu-language selection doesn’t work anymore!

V 5.02 (02-02-99) NSM-1
V 4.13 NSM-1 (EFR option should be back in this version)
V 4.12 NSM-1 (EFR option removed in this version)
V 4.11 NSM-1 (EFR option removed in this version)
V 4.02 NSM-1

Nokia 6190

*#06# for checking the IMEI (International Mobile Equipment Identity)
*#6190# shows the SW version.
*#92772689# (after removing the analog module) shows service menu.
*3001#12345[OK] to enter test mode.
*#639# to change NAM.

Nokia 7110

*#06# for checking the IMEI (International Mobile Equipment Identity)
*#0000# To view Software Version.
*#3370# – Enhanced Full Rate Codec (EFR) activation. It will automatically restart.
*#3370* – Enhanced Full Rate Codec (EFR) deactivation. It will automatically restart.
*#4720# – Half Rate Codec activation. It will automatically restart
*#4720* – Half Rate Codec deactivation. It will automatically restart
*#746025625# – Sim clock allowed status.
*#92702689# [*#war0anty#] – takes you to a secret menu with 6 choices:

1. Displays Serial Number.
2. Displays the Month and Year of Manufacture (0997)
3. Displays (if there) the date where the phone was purchased (MMYY)
4. Displays the date of the last repairment – if found (0000)
5. makes you capebel of transferring user data if you have the gear for it
6. shows how many hours the phone has been on

Latest software version: V 4.84 07-04-00 NSE-5 (c)nmp
sim clock function not work in secret menu
codec half and full rate not work in secret menu
total hours not visible anymore

V 4.88 02-06-00 NSE-5 (c) NMP.
V 4.77 25-01-00 NSE-5 – EFR and half rate codes do not work with this version.
V 4.76 13-01-00 NSE-5
V 4.75 07-01-00 NSE-5
V 4.73 15.11.99 NSE-5

Nokia 8260

Change Alpha Tag
The alpha tag is the message that is displayed on your phone when in digital coverage. This is normally transmitted by the network, but can be overidden to display a different tag. This is done by creating a tag for a personal/residential zone in the phone, and setting this zone to have the same settings as your normal carrier. So when the phone identifies the network system it believes it is in the personal/residential zone and displays the tag you have programmed.
1) Enter programming mode of the phone by keying *3001#12345#
2) Find out the ID of your operator by entering the NAM1 menu. Note the Home System ID setting. (16387 on Rogers AT&T in Calgary)
3) Scroll to and enter PSID/RSID lists (menu 7)
4) Select P/RSID 1
5) Scroll to PSID/RSID and change the setting to 1
6) Scroll to Connected system ID and change the setting to the ID of your system (eg 16387)
7) Scroll to Alpha Tag and enter the message you would like displayed.
Scroll to Operator code (SOC) and enter coed for your provider such as 2050 for Rogers or 2049 for AT&T
9) Scroll to Country code and enter 302 for Rogers or 310 for AT&T
10) Power cycle your phone and hopefully your message will be displayed
Note: This has only been tested in Calgary on the Rogers AT&T network so may not work on other networks.

*3001#12345# Programming Menu: NAMs, Fieldtest, Serial Number, P/RSIDs

*#639# Program Phone Number
*#92772689# Warranty Information, Serial Number, Life Timer, Build Date, Programmed Date (editable once only)
*#9999# Display Software Version

Known Versions

v 06.08 , 22/06/00 NSW-4
v 06.09 , 07/07/00 NSW-4

Nokia 8820 / 8860

*3001#12345# gives access to NAM1 and 2, sw version, security, alpha tags and heaps of other stuff.

Nokia 8850

*#06# for checking the IMEI (International Mobile Equipment Identity)
*#0000# To view Software Version.

Latest software version: V 5.21 25-04-00 NSM-2

Older version:
V 5.20 17-04-00 NSM-2
V 5.16 15-02-00 NSM-2
V 5.11 09-12-99 NSM-2
V5.08

Nokia 9000/9000i

To view IMEI number *#06#
To view Software Version enter *#8110# Latest Version is under Phone Info.
To view Week and Year of manufacture enter *#3283#

Nokia 9110

*#06# for checking the IMEI (International Mobile Equipment Identity)
*#0000# shows the SW version.

Latest software version: V 5.06 (09.12.99) RAE-2

V 5.02 (26-08-99)RAE-2
V 4.05 RAE-2

Free SMS Tip
1st Way:
1. turn our phone off.
2. turn it on and enter your pin.
3. enter *#746025625# 4. now “SIM CLOCK STOP ALLOWED” will be displayed.
now you can send sms for free. if you turn your phone off and later on you have to reenter this code!!!
In some Networks it doesn’t work!!!
2nd Way:
Set Menu 4-3-3 on Usergroup 666 (work with German Networks)

Share on TwitterShare on TumblrSubmit to StumbleUponSave on DeliciousDigg ThisSubmit to redditShare on MyspaceShare via email
 

kaspersky you must restart your computer before proceeding

Share on TwitterShare on TumblrSubmit to StumbleUponSave on DeliciousDigg ThisSubmit to redditShare on MyspaceShare via email

How many of you get this error while installing kaspersky, and no matter if you restart once or 10 times, the error remains.!

Here is the quick fix :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run > Delete the ‘avp6_post_uninstall’ folder then run the install again.

If this worked for you then please post a reply, it only takes a minute to register.

ps:  The key is a folder key not just a value , expand the run value to see it and have it deleted

Share on TwitterShare on TumblrSubmit to StumbleUponSave on DeliciousDigg ThisSubmit to redditShare on MyspaceShare via email
 

Few Oscommerce- Creloaded , mysql related issues and bug fixes

Share on TwitterShare on TumblrSubmit to StumbleUponSave on DeliciousDigg ThisSubmit to redditShare on MyspaceShare via email

Below are some few concurrent issues that appear with oscommerce or creloaded, especially when using templates or poorly written tpl files that come with themes, and most likely happen with mysql5 upgrades from a previous 4 version.

Problem:

Fatal error: Cannot re-assign $this in /path/to/catalog/admin/includes/classes/upload.php on line 31

Solution:

Lines 27-34 in catalog/admin/includes/classes/upload.php must be changed from:

if ( ($this->parse() == true) && ($this->save() == true) ) {

return true;

} else {

// self destruct

$this = null;

return false;

}

to:

if ( ($this->parse() == true) && ($this->save() == true) ) {

return true;

} else {

return false;

}


limit -20, 20

http://www.oscommerce.com/community/bugs,1605

Problem:

1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘-20, 20′ at line 1

Solution:

Line 67 in catalog/includes/classes/split_page_results.php must be changed from:

$this->sql_query .= ” limit ” . $offset . “, ” . $this->number_of_rows_per_page;

to:

$this->sql_query .= ” limit ” . max($offset, 0) . “, ” . $this->number_of_rows_per_page;

Line 38 in catalog/admin/includes/classes/split_page_results.php must be changed from:

$sql_query .= ” limit ” . $offset . “, ” . $max_rows_per_page;

to:

$sql_query .= ” limit ” . max($offset, 0) . “, ” . $max_rows_per_page;


Database Input Enhancement

Problem:

Native MySQL functions should be used in preference to the addslashes() function, to properly protect the SQL queries being executed on the database server.

Solution:

The following function must be replaced in catalog/includes/functions/database.php.

Lines 126-128, from:

function tep_db_input($string) {

return addslashes($string);

}

to:

function tep_db_input($string, $link = 'db_link') {
  global $$link;
 
  if (function_exists('mysql_real_escape_string')) {
    return mysql_real_escape_string($string, $$link);
  } elseif (function_exists('mysql_escape_string')) {
    return mysql_escape_string($string);
  }
 
  return addslashes($string);
}

The following function must be replaced in catalog/admin/includes/functions/database.php.

Lines 130-132, from:

function tep_db_input($string) {

return addslashes($string);

}


to:

function tep_db_input($string, $link = 'db_link') {
  global $$link;
 
  if (function_exists('mysql_real_escape_string')) {
    return mysql_real_escape_string($string, $$link);
  } elseif (function_exists('mysql_escape_string')) {
    return mysql_escape_string($string);
  }
 
  return addslashes($string);
}


Adding Non-Existing Products To Cart

http://www.oscommerce.com/community/bugs,1617

Problem:

It is possible to add non-existing products into the shopping cart which may prevent customers from removing the products from their cart.

Solution:

The following functions must be replaced in catalog/includes/functions/general.php.

Lines 912-921, from:

function tep_get_uprid($prid, $params) {

$uprid = $prid;

if ( (is_array($params)) && (!strstr($prid, ‘{‘)) ) {

while (list($option, $value) = each($params)) {

$uprid = $uprid . ‘{‘ . $option . ‘}’ . $value;

}

}

return $uprid;

}

to:

function tep_get_uprid($prid, $params) {
  if (is_numeric($prid)) {
    $uprid = $prid;
 
    if (is_array($params) && (sizeof($params) > 0)) {
      $attributes_check = true;
      $attributes_ids = '';
 
      reset($params);
      while (list($option, $value) = each($params)) {
        if (is_numeric($option) && is_numeric($value)) {
          $attributes_ids .= '{' . (int)$option . '}' . (int)$value;
        } else {
          $attributes_check = false;
          break;
        }
      }
 
      if ($attributes_check == true) {
        $uprid .= $attributes_ids;
      }
    }
  } else {
    $uprid = tep_get_prid($prid);
 
    if (is_numeric($uprid)) {
      if (strpos($prid, '{') !== false) {
        $attributes_check = true;
        $attributes_ids = '';
 
// strpos()+1 to remove up to and including the first { which would create an empty array element in explode()
        $attributes = explode('{', substr($prid, strpos($prid, '{')+1));
 
        for ($i=0, $n=sizeof($attributes); $i<$n; $i++) {
          $pair = explode('}', $attributes[$i]);
 
          if (is_numeric($pair[0]) && is_numeric($pair[1])) {
            $attributes_ids .= '{' . (int)$pair[0] . '}' . (int)$pair[1];
          } else {
            $attributes_check = false;
            break;
          }
        }
 
        if ($attributes_check == true) {
          $uprid .= $attributes_ids;
        }
      }
    } else {
      return false;
    }
  }
 
  return $uprid;
}

Lines 925-929, from:

function tep_get_prid($uprid) {

$pieces = explode(‘{‘, $uprid);

return $pieces[0];

}

to:


function tep_get_prid($uprid) {
  $pieces = explode('{', $uprid);
 
  if (is_numeric($pieces[0])) {
    return $pieces[0];
  } else {
    return false;
  }
}
 


The following functions must be replaced in catalog/includes/classes/shopping_cart.php.

Lines 78-108, from:

function add_cart($products_id, $qty = ’1′, $attributes = ”, $notify = true) {

global $new_products_id_in_cart, $customer_id;

$products_id = tep_get_uprid($products_id, $attributes);

if ($notify == true) {

$new_products_id_in_cart = $products_id;

tep_session_register(new_products_id_in_cart‘);

}

if ($this->in_cart($products_id)) {

$this->update_quantity($products_id, $qty, $attributes);

} else {

$this->contents[] = array($products_id);

$this->contents[$products_id] = array(‘qty’ => $qty);

// insert into database

if (tep_session_is_registered(‘customer_id‘)) tep_db_query(“insert into ” . TABLE_CUSTOMERS_BASKET . ” (customers_id, products_id, customers_basket_quantity, customers_basket_date_added) values (‘” . (int)$customer_id . “‘, ‘” . tep_db_input($products_id) . “‘, ‘” . $qty . “‘, ‘” . date(Ymd‘) . “‘)”);

if (is_array($attributes)) {

reset($attributes);

while (list($option, $value) = each($attributes)) {

$this->contents[$products_id]['attributes'][$option] = $value;

// insert into database

if (tep_session_is_registered(‘customer_id‘)) tep_db_query(“insert into ” . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . ” (customers_id, products_id, products_options_id, products_options_value_id) values (‘” . (int)$customer_id . “‘, ‘” . tep_db_input($products_id) . “‘, ‘” . (int)$option . “‘, ‘” . (int)$value . “‘)”);

}

}

}

$this->cleanup();

// assign a temporary unique ID to the order contents to prevent hack attempts during the checkout procedure

$this->cartID = $this->generate_cart_id();

}


to:

function add_cart($products_id, $qty = '1', $attributes = '', $notify = true) {
  global $new_products_id_in_cart, $customer_id;
 
  $products_id_string = tep_get_uprid($products_id, $attributes);
  $products_id = tep_get_prid($products_id_string);
 
  if (is_numeric($products_id) && is_numeric($qty)) {
    $check_product_query = tep_db_query("select products_status from " . TABLE_PRODUCTS . " where products_id = '" . (int)$products_id . "'");
    $check_product = tep_db_fetch_array($check_product_query);
 
    if (($check_product !== false) && ($check_product['products_status'] == '1')) {
      if ($notify == true) {
        $new_products_id_in_cart = $products_id;
        tep_session_register('new_products_id_in_cart');
      }
 
      if ($this->in_cart($products_id_string)) {
        $this->update_quantity($products_id_string, $qty, $attributes);
      } else {
        $this->contents[$products_id_string] = array('qty' => $qty);
// insert into database
        if (tep_session_is_registered('customer_id')) tep_db_query("insert into " . TABLE_CUSTOMERS_BASKET . " (customers_id, products_id, customers_basket_quantity, customers_basket_date_added) values ('" . (int)$customer_id . "', '" . tep_db_input($products_id_string) . "', '" . (int)$qty . "', '" . date('Ymd') . "')");
 
        if (is_array($attributes)) {
          reset($attributes);
          while (list($option, $value) = each($attributes)) {
            $this->contents[$products_id_string]['attributes'][$option] = $value;
// insert into database
            if (tep_session_is_registered('customer_id')) tep_db_query("insert into " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " (customers_id, products_id, products_options_id, products_options_value_id) values ('" . (int)$customer_id . "', '" . tep_db_input($products_id_string) . "', '" . (int)$option . "', '" . (int)$value . "')");
          }
        }
      }
 
      $this->cleanup();
 
// assign a temporary unique ID to the order contents to prevent hack attempts during the checkout procedure
      $this->cartID = $this->generate_cart_id();
    }
  }
}


Lines 110-127, from:

function update_quantity($products_id, $quantity = ”, $attributes = ”) {

global $customer_id;

if (empty($quantity)) return true; // nothing needs to be updated if theres no quantity, so we return true..

$this->contents[$products_id] = array(‘qty’ => $quantity);

// update database

if (tep_session_is_registered(‘customer_id‘)) tep_db_query(“update ” . TABLE_CUSTOMERS_BASKET . ” set customers_basket_quantity = ‘” . $quantity . “‘ where customers_id = ‘” . (int)$customer_id . “‘ and products_id = ‘” . tep_db_input($products_id) . “‘”);

if (is_array($attributes)) {

reset($attributes);

while (list($option, $value) = each($attributes)) {

$this->contents[$products_id]['attributes'][$option] = $value;

// update database

if (tep_session_is_registered(‘customer_id‘)) tep_db_query(“update ” . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . ” set products_options_value_id = ‘” . (int)$value . “‘ where customers_id = ‘” . (int)$customer_id . “‘ and products_id = ‘” . tep_db_input($products_id) . “‘ and products_options_id = ‘” . (int)$option . “‘”);

}

}

}

to:

function update_quantity($products_id, $quantity = '', $attributes = '') {
  global $customer_id;
 
  $products_id_string = tep_get_uprid($products_id, $attributes);
  $products_id = tep_get_prid($products_id_string);
 
  if (is_numeric($products_id) && isset($this->contents[$products_id_string]) && is_numeric($quantity)) {
    $this->contents[$products_id_string] = array('qty' => $quantity);
// update database
    if (tep_session_is_registered('customer_id')) tep_db_query("update " . TABLE_CUSTOMERS_BASKET . " set customers_basket_quantity = '" . (int)$quantity . "' where customers_id = '" . (int)$customer_id . "' and products_id = '" . tep_db_input($products_id_string) . "'");
 
    if (is_array($attributes)) {
      reset($attributes);
      while (list($option, $value) = each($attributes)) {
        $this->contents[$products_id_string]['attributes'][$option] = $value;
// update database
        if (tep_session_is_registered('customer_id')) tep_db_query("update " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " set products_options_value_id = '" . (int)$value . "' where customers_id = '" . (int)$customer_id . "' and products_id = '" . tep_db_input($products_id_string) . "' and products_options_id = '" . (int)$option . "'");
      }
    }
  }
}


Session ID XSS Issue

http://www.oscommerce.com/community/bugs,1546

Problem:

A cross site scripting issue exists with malformed session IDs being used in the tep_href_link() function.

Solution:

Line 66 in catalog/includes/functions/html_output.php must be changed from:

$link .= $separator . $_sid;

to:

$link .= $separator . tep_output_string($_sid);


Validate Session ID

Problem:

Validate the session ID and redirect to the front page when an invalid session ID is requested.

Solution:

The following function must be replaced in catalog/includes/functions/sessions.php.

Lines 66-68, from:

function tep_session_start() {

return session_start();

}

to:

function tep_session_start() {

global $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS;

$sane_session_id = true;

if (isset($HTTP_GET_VARS[tep_session_name()])) {

if (preg_match(‘/^[a-zA-Z0-9]+$/’, $HTTP_GET_VARS[tep_session_name()]) == false) {

unset($HTTP_GET_VARS[tep_session_name()]);

$sane_session_id = false;

}

} elseif (isset($HTTP_POST_VARS[tep_session_name()])) {

if (preg_match(‘/^[a-zA-Z0-9]+$/’, $HTTP_POST_VARS[tep_session_name()]) == false) {

unset($HTTP_POST_VARS[tep_session_name()]);

$sane_session_id = false;

}

} elseif (isset($HTTP_COOKIE_VARS[tep_session_name()])) {

if (preg_match(‘/^[a-zA-Z0-9]+$/’, $HTTP_COOKIE_VARS[tep_session_name()]) == false) {

$session_data = session_get_cookie_params();

setcookie(tep_session_name(), ”, time()-42000, $session_data['path'], $session_data['domain']);

$sane_session_id = false;

}

}

if ($sane_session_id == false) {

tep_redirect(tep_href_link(FILENAME_DEFAULT, ”, ‘NONSSL’, false));

}

return session_start();

}


File Manager Problem

http://www.oscommerce.com/community/bugs,1391

Problem:

Parsing errors occur when saving edited files through the File Manager.

Solution:

Line 148 in catalog/admin/file_manager.php must be changed from:

$file_contents = htmlspecialchars(implode(”, $file_array));

to:

$file_contents = addslashes(implode(”, $file_array));

Note: This update also requires the Contact Us Form XSS Issue update in order to function correctly.


HTTP Header Injection

Problem:

By using malicious data it is possible to inject headers into HTTP requests.

Solution:

The following function must be replaced in catalog/includes/functions/general.php.

Lines 22-32, from:

function tep_redirect($url) {

if ( (ENABLE_SSL == true) && (getenv(‘HTTPS’) == ‘on’) ) { // We are loading an SSL page

if (substr($url, 0, strlen(HTTP_SERVER)) == HTTP_SERVER) { // NONSSL url

$url = HTTPS_SERVER . substr($url, strlen(HTTP_SERVER)); // Change it to SSL

}

}

header(‘Location: ‘ . $url);

tep_exit();

}

to:

function tep_redirect($url) {

if ( (strstr($url, “\n”) != false) || (strstr($url, “\r”) != false) ) {

tep_redirect(tep_href_link(FILENAME_DEFAULT, ”, ‘NONSSL’, false));

}

if ( (ENABLE_SSL == true) && (getenv(‘HTTPS’) == ‘on’) ) { // We are loading an SSL page

if (substr($url, 0, strlen(HTTP_SERVER)) == HTTP_SERVER) { // NONSSL url

$url = HTTPS_SERVER . substr($url, strlen(HTTP_SERVER)); // Change it to SSL

}

}

header(‘Location: ‘ . $url);

tep_exit();

}


The following function must be replaced in catalog/admin/includes/functions/general.php.

Lines 15-26, from:

function tep_redirect($url) {

global $logger;

header(‘Location: ‘ . $url);

if (STORE_PAGE_PARSE_TIME == ‘true’) {

if (!is_object($logger)) $logger = new logger;

$logger->timer_stop();

}

exit;

}

to:

function tep_redirect($url) {

global $logger;

if ( (strstr($url, “\n”) != false) || (strstr($url, “\r”) != false) ) {

tep_redirect(tep_href_link(FILENAME_DEFAULT, ”, ‘NONSSL’, false));

}

header(‘Location: ‘ . $url);

if (STORE_PAGE_PARSE_TIME == ‘true’) {

if (!is_object($logger)) $logger = new logger;

$logger->timer_stop();

}

exit;

}


E-Mail Header Injection

http://www.oscommerce.com/community/bugs,2488

Problem:

By using malicious data it is possible to inject headers into emails the online store sends.

Solution:

The following function must be replaced in catalog/includes/classes/email.php and catalog/admin/includes/classes/email.php.

Lines 473-504, from:

function send($to_name, $to_addr, $from_name, $from_addr, $subject = ”, $headers = ”) {

$to = (($to_name != ”) ? ‘”‘ . $to_name . ‘” <’ . $to_addr . ‘>‘ : $to_addr);

$from = (($from_name != ”) ? ‘”‘ . $from_name . ‘” <’ . $from_addr . ‘>‘ : $from_addr);

if (is_string($headers)) {

$headers = explode($this->lf, trim($headers));

}

for ($i=0; $i<count($headers); $i++) {

if (is_array($headers[$i])) {

for ($j=0; $j<count($headers[$i]); $j++) {

if ($headers[$i][$j] != ”) {

$xtra_headers[] = $headers[$i][$j];

}

}

}

if ($headers[$i] != ”) {

$xtra_headers[] = $headers[$i];

}

}

if (!isset($xtra_headers)) {

$xtra_headers = array();

}

if (EMAIL_TRANSPORT == ‘smtp‘) {

return mail($to_addr, $subject, $this->output, ‘From: ‘ . $from . $this->lf . ‘To: ‘ . $to . $this->lf . implode($this->lf, $this->headers) . $this->lf . implode($this->lf, $xtra_headers));

} else {

return mail($to, $subject, $this->output, ‘From: ‘.$from.$this->lf.implode($this->lf, $this->headers).$this->lf.implode($this->lf, $xtra_headers));

}

}

to:

function send($to_name, $to_addr, $from_name, $from_addr, $subject = ”, $headers = ”) {
if ((strstr($to_name, “\n”) != false) || (strstr($to_name, “\r”) != false)) {
return false;
}

if ((strstr($to_addr, “\n”) != false) || (strstr($to_addr, “\r”) != false)) {
return false;
}

if ((strstr($subject, “\n”) != false) || (strstr($subject, “\r”) != false)) {
return false;
}

if ((strstr($from_name, “\n”) != false) || (strstr($from_name, “\r”) != false)) {
return false;
}

if ((strstr($from_addr, “\n”) != false) || (strstr($from_addr, “\r”) != false)) {
return false;
}

$to = (($to_name != ”) ? ‘”‘ . $to_name . ‘” <’ . $to_addr . ‘>‘ : $to_addr);
$from = (($from_name != ”) ? ‘”‘ . $from_name . ‘” <’ . $from_addr . ‘>’ : $from_addr);

if (is_string($headers)) {
$headers = explode($this->lf, trim($headers));
}

for ($i=0; $i<count($headers); $i++) {
if (is_array($headers[$i])) {
for ($j=0; $j<count($headers[$i]); $j++) {
if ($headers[$i][$j] != ”) {
$xtra_headers[] = $headers[$i][$j];
}
}
}

if ($headers[$i] != ”) {
$xtra_headers[] = $headers[$i];
}
}

if (!isset($xtra_headers)) {
$xtra_headers = array();
}

if (EMAIL_TRANSPORT == ‘smtp‘) {
return mail($to_addr, $subject, $this->output, ‘From: ‘ . $from . $this->lf . ‘To: ‘ . $to . $this->lf . implode($this->lf, $this->headers) . $this->lf . implode($this->lf, $xtra_headers));
} else {
return mail($to, $subject, $this->output, ‘From: ‘.$from.$this->lf.implode($this->lf, $this->headers).$this->lf.implode($this->lf, $xtra_headers));
}
}


Contact Us Form XSS Issue

http://www.oscommerce.com/community/bugs,2422

Problem:

By using malicious data it is possible to inject HTML into the page.

Solution:

Lines 221-225 in catalog/includes/functions/html_output.php must be changed from:

if ( (isset($GLOBALS[$name])) && ($reinsert_value == true) ) {

$field .= stripslashes($GLOBALS[$name]);

} elseif (tep_not_null($text)) {

$field .= $text;

}

to:

if ( (isset($GLOBALS[$name])) && ($reinsert_value == true) ) {

$field .= tep_output_string_protected(stripslashes($GLOBALS[$name]));

} elseif (tep_not_null($text)) {

$field .= tep_output_string_protected($text);

}

Lines 244-248 in catalog/admin/includes/functions/html_output.php must be changed from:

if ( (isset($GLOBALS[$name])) && ($reinsert_value == true) ) {

$field .= stripslashes($GLOBALS[$name]);

} elseif (tep_not_null($text)) {

$field .= $text;

}

to:

if ( (isset($GLOBALS[$name])) && ($reinsert_value == true) ) {

$field .= tep_output_string_protected(stripslashes($GLOBALS[$name]));

} elseif (tep_not_null($text)) {

$field .= tep_output_string_protected($text);

}


Open Redirector

http://www.oscommerce.com/community/bugs,2970

Problem:

There is no URL checking being performed on the redirection page, and allows external sources to use the page as an open redirect relay.

Solution:

Lines 27-29 in catalog/redirect.php must be changed from:

if (isset($HTTP_GET_VARS['goto']) && tep_not_null($HTTP_GET_VARS['goto'])) {

tep_redirect(‘http://’ . $HTTP_GET_VARS['goto']);

}

to:

if (isset($HTTP_GET_VARS['goto']) && tep_not_null($HTTP_GET_VARS['goto'])) {

$check_query = tep_db_query(“select products_url from ” . TABLE_PRODUCTS_DESCRIPTION . ” where products_url = ‘” . tep_db_input($HTTP_GET_VARS['goto']) . “‘ limit 1″);

if (tep_db_num_rows($check_query)) {

tep_redirect(‘http://’ . $HTTP_GET_VARS['goto']);

}

}


Extra Slashes In New Products

Problem:

When new products are entered and previewed, hitting the back button to edit the product data again adds extra slashes to apostrophes in the products name and description.

Solution:

Line 504 in admin/categories.php must be changed from:

<td class=”main”><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . ‘/images/‘ . $languages[$i]['image'], $languages[$i]['name']) . ‘&nbsp;‘ . tep_draw_input_field(products_name[' . $languages[$i]['id'] . ‘]’, (isset($products_name[$languages[$i]['id']]) ? $products_name[$languages[$i]['id']] : tep_get_products_name($pInfo->products_id, $languages[$i]['id']))); ?></td>

to:

<td class=”main”><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . ‘/images/‘ . $languages[$i]['image'], $languages[$i]['name']) . ‘&nbsp;‘ . tep_draw_input_field(products_name[' . $languages[$i]['id'] . ‘]’, (isset($products_name[$languages[$i]['id']]) ? stripslashes($products_name[$languages[$i]['id']]) : tep_get_products_name($pInfo->products_id, $languages[$i]['id']))); ?></td>

Line 538 from:

<td class=”main”><?php echo tep_draw_textarea_field(‘products_description[' . $languages[$i]['id'] . ‘]’, ‘soft’, ’70′, ’15′, (isset($products_description[$languages[$i]['id']]) ? $products_description[$languages[$i]['id']] : tep_get_products_description($pInfo->products_id, $languages[$i]['id']))); ?></td>

to:

<td class=”main”><?php echo tep_draw_textarea_field(‘products_description[' . $languages[$i]['id'] . ‘]’, ‘soft’, ’70′, ’15′, (isset($products_description[$languages[$i]['id']]) ? stripslashes($products_description[$languages[$i]['id']]) : tep_get_products_description($pInfo->products_id, $languages[$i]['id']))); ?></td>


Line 574 from:

<td class=”main”><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . ‘/images/‘ . $languages[$i]['image'], $languages[$i]['name']) . ‘&nbsp;‘ . tep_draw_input_field(products_url[' . $languages[$i]['id'] . ‘]’, (isset($products_url[$languages[$i]['id']]) ? $products_url[$languages[$i]['id']] : tep_get_products_url($pInfo->products_id, $languages[$i]['id']))); ?></td>

to:

<td class=”main”><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . ‘/images/‘ . $languages[$i]['image'], $languages[$i]['name']) . ‘&nbsp;‘ . tep_draw_input_field(products_url[' . $languages[$i]['id'] . ‘]’, (isset($products_url[$languages[$i]['id']]) ? stripslashes($products_url[$languages[$i]['id']]) : tep_get_products_url($pInfo->products_id, $languages[$i]['id']))); ?></td>


Order Status Filtering

http://www.oscommerce.com/community/bugs,1543

Problem:

After changing the order status filtering on the Administration Tool -> Customers -> Orders page, selecting “All Orders” would show an empty listing of orders.

Solution:

Line 357 in admin/orders.php must be changed from:

} elseif (isset($HTTP_GET_VARS['status'])) {

to:

} elseif (isset($HTTP_GET_VARS['status']) && is_numeric($HTTP_GET_VARS['status']) && ($HTTP_GET_VARS['status'] > 0)) {


MySQL 5.0 Compatibility

Problem:

MySQL 5.0 introduces Server SQL modes as part of its SQL 2003 standards support, and uses a more stricter approach to executing SQL queries. This is performed by default with setting STRICT_TRANS_TABLES as a Server SQL mode.

Due to this new setting, MySQL fails on certain SQL queries and produces error messages on the screen.

Solution:

Lines 213-223 in advanced_search_result.php must be changed from:

$from_str = “from “ . TABLE_PRODUCTS . ” p left join ” . TABLE_MANUFACTURERS . ” m using(manufacturers_id) left join ” . TABLE_SPECIALS . ” s on p.products_id = s.products_id, ” . TABLE_PRODUCTS_DESCRIPTION . ” pd, ” . TABLE_CATEGORIES . ” c, ” . TABLE_PRODUCTS_TO_CATEGORIES . ” p2c“;

if ( (DISPLAY_PRICE_WITH_TAX == ‘true’) && (tep_not_null($pfrom) || tep_not_null($pto)) ) {

if (!tep_session_is_registered(‘customer_country_id‘)) {

$customer_country_id = STORE_COUNTRY;

$customer_zone_id = STORE_ZONE;

}

$from_str .= ” left join ” . TABLE_TAX_RATES . tr on p.products_tax_class_id = tr.tax_class_id left join ” . TABLE_ZONES_TO_GEO_ZONES . gz on tr.tax_zone_id = gz.geo_zone_id and (gz.zone_country_id is null or gz.zone_country_id = ’0′ or gz.zone_country_id = ‘” . (int)$customer_country_id . “‘) and (gz.zone_id is null or gz.zone_id = ’0′ or gz.zone_id = ‘” . (int)$customer_zone_id . “‘)”;

}

$where_str = ” where p.products_status = ’1′ and p.products_id = pd.products_id and pd.language_id = ‘” . (int)$languages_id . “‘ and p.products_id = p2c.products_id and p2c.categories_id = c.categories_id “;


to:

$from_str = “from “ . TABLE_PRODUCTS . ” p left join ” . TABLE_MANUFACTURERS . ” m using(manufacturers_id) left join ” . TABLE_SPECIALS . ” s on p.products_id = s.products_id“;

if ( (DISPLAY_PRICE_WITH_TAX == ‘true’) && (tep_not_null($pfrom) || tep_not_null($pto)) ) {

if (!tep_session_is_registered(‘customer_country_id‘)) {

$customer_country_id = STORE_COUNTRY;

$customer_zone_id = STORE_ZONE;

}

$from_str .= ” left join ” . TABLE_TAX_RATES . tr on p.products_tax_class_id = tr.tax_class_id left join ” . TABLE_ZONES_TO_GEO_ZONES . gz on tr.tax_zone_id = gz.geo_zone_id and (gz.zone_country_id is null or gz.zone_country_id = ’0′ or gz.zone_country_id = ‘” . (int)$customer_country_id . “‘) and (gz.zone_id is null or gz.zone_id = ’0′ or gz.zone_id = ‘” . (int)$customer_zone_id . “‘)”;

}

$from_str .= “, ” . TABLE_PRODUCTS_DESCRIPTION . ” pd, ” . TABLE_CATEGORIES . ” c, ” . TABLE_PRODUCTS_TO_CATEGORIES . ” p2c“;

$where_str = ” where p.products_status = ’1′ and p.products_id = pd.products_id and pd.language_id = ‘” . (int)$languages_id . “‘ and p.products_id = p2c.products_id and p2c.categories_id = c.categories_id “;

The following lines must be replaced in index.php:

Line 175, from:

$listing_sql = “select “ . $select_column_list . p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from ” . TABLE_PRODUCTS . ” p, ” . TABLE_PRODUCTS_DESCRIPTION . ” pd, ” . TABLE_MANUFACTURERS . ” m, ” . TABLE_PRODUCTS_TO_CATEGORIES . ” p2c left join ” . TABLE_SPECIALS . ” s on p.products_id = s.products_id where p.products_status = ’1′ and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = ‘” . (int)$HTTP_GET_VARS['manufacturers_id'] . “‘ and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = ‘” . (int)$languages_id . “‘ and p2c.categories_id = ‘” . (int)$HTTP_GET_VARS['filter_id'] . “‘”;

to:

$listing_sql = “select “ . $select_column_list . p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from ” . TABLE_PRODUCTS . ” p left join ” . TABLE_SPECIALS . ” s on p.products_id = s.products_id, ” . TABLE_PRODUCTS_DESCRIPTION . ” pd, ” . TABLE_MANUFACTURERS . ” m, ” . TABLE_PRODUCTS_TO_CATEGORIES . ” p2c where p.products_status = ’1′ and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = ‘” . (int)$HTTP_GET_VARS['manufacturers_id'] . “‘ and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = ‘” . (int)$languages_id . “‘ and p2c.categories_id = ‘” . (int)$HTTP_GET_VARS['filter_id'] . “‘”;

Line 178, from:

$listing_sql = “select “ . $select_column_list . p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from ” . TABLE_PRODUCTS . ” p, ” . TABLE_PRODUCTS_DESCRIPTION . ” pd, ” . TABLE_MANUFACTURERS . ” m left join ” . TABLE_SPECIALS . ” s on p.products_id = s.products_id where p.products_status = ’1′ and pd.products_id = p.products_id and pd.language_id = ‘” . (int)$languages_id . “‘ and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = ‘” . (int)$HTTP_GET_VARS['manufacturers_id'] . “‘”;

to:

$listing_sql = “select “ . $select_column_list . p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from ” . TABLE_PRODUCTS . ” p left join ” . TABLE_SPECIALS . ” s on p.products_id = s.products_id, ” . TABLE_PRODUCTS_DESCRIPTION . ” pd, ” . TABLE_MANUFACTURERS . ” m where p.products_status = ’1′ and pd.products_id = p.products_id and pd.language_id = ‘” . (int)$languages_id . “‘ and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = ‘” . (int)$HTTP_GET_VARS['manufacturers_id'] . “‘”;

Line 184, from:

$listing_sql = “select “ . $select_column_list . p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from ” . TABLE_PRODUCTS . ” p, ” . TABLE_PRODUCTS_DESCRIPTION . ” pd, ” . TABLE_MANUFACTURERS . ” m, ” . TABLE_PRODUCTS_TO_CATEGORIES . ” p2c left join ” . TABLE_SPECIALS . ” s on p.products_id = s.products_id where p.products_status = ’1′ and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = ‘” . (int)$HTTP_GET_VARS['filter_id'] . “‘ and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = ‘” . (int)$languages_id . “‘ and p2c.categories_id = ‘” . (int)$current_category_id . “‘”;

to:

$listing_sql = “select “ . $select_column_list . p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from ” . TABLE_PRODUCTS . ” p left join ” . TABLE_SPECIALS . ” s on p.products_id = s.products_id, ” . TABLE_PRODUCTS_DESCRIPTION . ” pd, ” . TABLE_MANUFACTURERS . ” m, ” . TABLE_PRODUCTS_TO_CATEGORIES . ” p2c where p.products_status = ’1′ and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = ‘” . (int)$HTTP_GET_VARS['filter_id'] . “‘ and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = ‘” . (int)$languages_id . “‘ and p2c.categories_id = ‘” . (int)$current_category_id . “‘”;

Line 187, from:

$listing_sql = “select “ . $select_column_list . p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from ” . TABLE_PRODUCTS_DESCRIPTION . ” pd, ” . TABLE_PRODUCTS . ” p left join ” . TABLE_MANUFACTURERS . ” m on p.manufacturers_id = m.manufacturers_id, ” . TABLE_PRODUCTS_TO_CATEGORIES . ” p2c left join ” . TABLE_SPECIALS . ” s on p.products_id = s.products_id where p.products_status = ’1′ and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = ‘” . (int)$languages_id . “‘ and p2c.categories_id = ‘” . (int)$current_category_id . “‘”;

to:

$listing_sql = “select “ . $select_column_list . p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from ” . TABLE_PRODUCTS_DESCRIPTION . ” pd, ” . TABLE_PRODUCTS . ” p left join ” . TABLE_MANUFACTURERS . ” m on p.manufacturers_id = m.manufacturers_id left join ” . TABLE_SPECIALS . ” s on p.products_id = s.products_id, ” . TABLE_PRODUCTS_TO_CATEGORIES . ” p2c where p.products_status = ’1′ and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = ‘” . (int)$languages_id . “‘ and p2c.categories_id = ‘” . (int)$current_category_id . “‘”;

Line 292 in admin/categories.php must be changed from:

tep_db_query(“insert into ” . TABLE_PRODUCTS . ” (products_quantity, products_model,products_image, products_price, products_date_added, products_date_available, products_weight, products_status, products_tax_class_id, manufacturers_id) values (‘” . tep_db_input($product['products_quantity']) . “‘, ‘” . tep_db_input($product['products_model']) . “‘, ‘” . tep_db_input($product['products_image']) . “‘, ‘” . tep_db_input($product['products_price']) . “‘, now(), ‘” . tep_db_input($product['products_date_available']) . “‘, ‘” . tep_db_input($product['products_weight']) . “‘, ’0′, ‘” . (int)$product['products_tax_class_id'] . “‘, ‘” . (int)$product['manufacturers_id'] . “‘)”);

to:

tep_db_query(“insert into ” . TABLE_PRODUCTS . ” (products_quantity, products_model,products_image, products_price, products_date_added, products_date_available, products_weight, products_status, products_tax_class_id, manufacturers_id) values (‘” . tep_db_input($product['products_quantity']) . “‘, ‘” . tep_db_input($product['products_model']) . “‘, ‘” . tep_db_input($product['products_image']) . “‘, ‘” . tep_db_input($product['products_price']) . “‘, now(), ” . (empty($product['products_date_available']) ? “null” : “‘” . tep_db_input($product['products_date_available']) . “‘”) . “, ‘” . tep_db_input($product['products_weight']) . “‘, ’0′, ‘” . (int)$product['products_tax_class_id'] . “‘, ‘” . (int)$product['manufacturers_id'] . “‘)”);

The following SQL queries need to be performed:

ALTER TABLE whos_online MODIFY COLUMN last_page_url VARCHAR(255) NOT NULL;

ALTER TABLE customers MODIFY COLUMN customers_default_address_id INTEGER;

ALTER TABLE customers_basket MODIFY COLUMN final_price DECIMAL(15,4);

Share on TwitterShare on TumblrSubmit to StumbleUponSave on DeliciousDigg ThisSubmit to redditShare on MyspaceShare via email
 

Dating, comebacks, icebreakers, the nighmares

Share on TwitterShare on TumblrSubmit to StumbleUponSave on DeliciousDigg ThisSubmit to redditShare on MyspaceShare via email

I dont know why am i writing on this subject, i didnt even have a category for it, but oh well, it was a minor discussion about dating icebreakers.. etc

It s rather confusing when you think of it, of what women want and what men actually want…. let me simplify the Men’s version of what men want, we want women, end of story!

It sounds essential or sometimes required that men look for tips or ask friends or ideas of what that women thought and whatever, women do that but lets face it, its different, as its much easier to impress a man.

Impressing a woman, takes class, and if extreme it wont last,
Be funny, women love that, just dont be a clown ! Thats outrageous
Be gentle, thank people around you, be kind and loving to kids, but dont be a child yourself
Be smooth, if she is wearing a necklace and showing her cleavage, she wants you to look and she wants to catch you looking, but not starring at it, that would freak her out.
Dont speak too loudly when there are people around, its a private convo, keep it that way..

The list goes on, and i wont claim i know em all, or even do em all, i just know when it over comes the boundries sometimes, as it shows…
Women do not expect themselves to do the first move or first kiss or first ice breaker, but they expect you to, and they will damn judge you for it if it was anything else but what they imagined, and god help you if it was what their imagined, as you might still face the too good to be true puzzle and start digging your secrets out.

The most puzzling thing is that, on dates and night outs and dinners, you are expected, and rather you have to have the plan and the backup plan,
Seriously, its the worst line when you go like, what do you want to do, cause she will mostly say, anything you like, but she would mean, anything better than what you are suggesting … So be creative, have those plans prepared in your tiny head, AND then expect her to add spice to it, like , lets go to movies watch batman, she will probably say, yeah but lets watch “the notebook”… (or whatever the case)

Icebreakers, and pickup lines can come in handy, but only at the right spot and at the right time, using cliches are the worst… just minutes ago, i thought about the most popular cliches, searched them out, then thought about comebacks and searched them out again… if you can do a comeback, so she can ! Dont make it that much crappy !

Here are some tips for the GIRLS , when the guy is trying some of those …

“Haven’t I seen you somewhere before?”
“Yes, and that’s why I never went back!”
“Sure, now I remember. I used to work at the STD clinic.”

“I lost my number, can I have yours?”
“Have you tried dialling 411?”
“If I give it to you, it would be nice if you lost it, too.”

“Your dad must be a thief. He stole the stars from the sky and put them in your eyes.”
“And where did you steal that line from?”

“Yes, he did, and now he’s in prison. Thanks for reminding me.”

“My friend over there wants to know if you think I’m cute.”
“You see my friend over there? He wants to know if you’re really picking up his girlfriend.”

Try it yourself, think of a common pickup line, a vast comeback and probably someone else did and maybe posted it, and chances are, girls you meet and like can be as much researchers as you could be.

During my search i found few comebacks from girls asked why are single, and top five answers were :

  • Because your man is already taken. 
  • I already have a dog at home. 
  • Just lucky, I guess. 
  • Because my girlfriend wouldn’t like it. 
  • I have BOB. — Battery operated boyfriend.

On the other hand, thinking of ice breakers on the spot or pickup lines, isnt all of a bad idea, as being funny is never is, just make sure its a bit thought through, and better if you can come up with your own at the time ..
Some look funny enough, having a laugh at is more expected than a comeback,

I am finishing this post with the best found pick up lines online, with and without comebacks, some people can get to memorize the list, can be handy ! heh
Enjoy -)

The first one is not a pick up but a quote
“Six simple words: I’m not gay, but I’ll learn.” (Homer Simpson)

Can I buy you a drink so I look better?

I’m not drunk, I’m just intoxicated by you.
I was so enchanted by your beauty that I ran into that wall over there. So I am going to need your name and number for insurance purposes.
If beauty were time, you’d be eternity.
If I were a stop light, I’d turn red everytime you passed by, just so I could stare at you a bit longer.
Babe, your beauty makes the morning sun look like the dull glimmer of the moon.
You’d better direct that beauty somewhere else, you’ll set the carpet on fire.
If I received a nickel for everytime I saw someone as beautiful as you, I’d have five cents.
For a moment I thought I had died and gone to heaven. Now I see that I am very much alive, and heaven has been brought to me.
Sorry, but you owe me a drink. [Why?] Because when I looked at you, I dropped mine.
You look cold. Want to use me as a blanket?
Can I have directions? [To where?] To your heart.
Do you have a BandAid? I just scraped my knee falling for you.
Be unique and different, say yes.
Do you have a map? I’m getting lost in your eyes.
Fascinating. I’ve been looking at your eyes all night long, ’cause I’ve never seen such dark eyes with so much light in them.
Most people like to watch the Olympics, because they only happens once every 4 years, but I’d rather talk to you cause the chance of meeting someone so special only happens once in a lifetime.
You’re so beautiful that you made me forget my pickup line.
You shouldn’t wear makeup. It’s messing with perfection!
If I had a star for every time you brightened my day, I’d have a galaxy in my hand.
If a thousand painters worked for a thousand years, they could not create a work of art as beautiful as you.
You know you’re in love when you can’t fall asleep because reality is finally better than your dreams.
Damn, if being sexy was a crime, you’d be guilty as charged!
I was wondering if you had an extra heart mine seems to have been stolen
There isn’t a word in the dictionary for how good you look.
Me without you is like a nerd without braces, A shoe without laces, aSentenceWithoutSpaces
Is there an airport nearby or is that just my heart taking off?
When I’m older, I’ll look back at all of my crowning memories, and I’ll think of the day my children were born, the day I got married, and the day that I met you.
Are you from Tennessee? Because you’re the only ten I see!
I must be a snowflake, because I’ve fallen for you.
Are you an interior decorator? When i saw you the room became beautiful.
There is something wrong with my cell phone. It doesn’t have your number in it.
Baby, if you were words on a page, you’d be what they call FINE PRINT!
You must be a hell of a thief because you stole my heart from across the room.
Do you have a twin sister? Then you must be the most beautiful girl in the world!
You look beautiful today, just like every other day.
Excuse me, but I think I dropped something. MY JAW!
If you were a booger I’d pick you first.
Do you know what I did last night? I looked up at the stars, and matched each one with a reason why I love you.
Excuse me, I think you have something in your eye. Oh wait, it’s just a sparkle.
If this bar is a meat market, you must be the prime rib.
Are you lost ma’am? Because heaven is a long way from here.
I’m fighting the urge to make you the happiest woman on earth tonight.
My love for you is like diarrhea, I just can’t hold it in.
Hello, I’m a thief, and I’m here to steal your heart.
Hey baby you’re so fine you make me stutter, wha-wha-what’s your name?
I bet you $20 you’re gonna turn me down.
I’m not actually this tall. I’m sitting on my wallet.
Do you have the time? [Tells you the time] No, the time to write down my number?
Would you grab my arm so I can tell my friends I’ve been touched by an angel?
Hey… Didn’t I see your name in the dictionary under “Shazaam!”?
Rejection can lead to emotional stress for both parties involved and emotional stress can lead to physical complications such as headaches, ulcers, cancerous tumors, and even death! So for my health and yours, JUST SAY YES!
I seem to have lost my phone number. Can I have yours?

Hello are you married? [Yes] Well I didn’t hear you say “happily”.

You are like a candy bar: half sweet and half nuts.
Excuse me, but does this smell like chloroform to you?

Hello how are you? [Fine] Hey, I didn’t ask you how you looked!

Did you clean your pants with Windex? I can practically see myself in them.
How was heaven when you left it?
Did you fart, cause you blew me away.
I don’t have a library card, but do you mind if I check you out?
Hey…somebody farted. Let’s get out of here.
I didn’t know that angels could fly so low!
There must be something wrong with my eyes, I can’t take them off you.
You are so fine, I wish I could plant you and grow a whole field of you!
Is your last name Gillette? Because you are the best a man can get.
Is your name “swiffer”? ‘Cause you just swept me off my feet.
Excuse me, but you dropped something back there” (What?) “This conversation, lets pick it up later tonight.
Are you going to kiss me or do I have to lie to my diary?
Are you cold? You look like you could use some hot chocolate… Well, here I am!
If stars would fall everytime I would think of you, the sky would soon be empty.
Damn, if being sexy was a crime, you’d be guilty as charged!
You know, Dr. Phil says I’m afraid of commitment…Want to help prove him wrong?
Your lips look so lonely…. Would they like to meet mine?
Baby, you’re so sweet, you put Hershey’s outta business.
Can I buy you a drink or do you just want the money?
Did the sun come out or did you just smile at me?
So there you are! I’ve been looking all over for YOU, the woman of my dreams!
Do you believe in love at first sight, or should I walk by again?
Inheriting eighty million bucks doesn’t mean much when you have a weak heart.
You see my friend over there? [Point to friend] He wants to know if YOU think I’M cute.
The only thing your eyes haven’t told me is your name.
Excuse me, I just noticed you noticing me and I just wanted to give you notice that I noticed you too.
(As she is leaving) Hey aren’t you forgetting something? (What?) Me!
Somebody better call God, cuz heaven’s missing an angel!
Can I borrow a quarter? ["What for?"] I want to call my mom and tell her I just met the man/woman of my dreams.
Did it hurt? (Did what hurt?) When you fell out of heaven?
I’m sorry, were you talking to me? [No] Well then, please start.
I know milk does a body good, but baby, how much have you been drinking?
I play the field, and it looks like I just hit a home run with you.
I’m new in town. Could you give me directions to your apartment?
If I could rearrange the alphabet, I would put ‘U’ and ‘I’ together.
If you were a tear in my eye I would not cry for fear of losing you.
My lenses turn dark in the sunshine of your love.
Was you father an alien? Because there’s nothing else like you on Earth!
What time do you have to be back in heaven?
Baby, I’m no Fred Flintstone, but I can make your Bedrock!
Wouldn’t we look cute on a wedding cake together?
Your daddy must have been a baker, because you’ve got a nice set of buns.
Your legs must be tired because you’ve been running through my mind all night.
[Point at her ass] Pardon me, is this seat taken?
Was your father a thief? ‘Cause someone stole the stars from the sky and put them in your eyes.
[Look at her shirt label.] When they say, “What are you doing?” You respond: “Yep! Made in heaven!”
Your eyes are blue, like the ocean. And baby, I’m lost at sea.
You know how they say skin is the largest organ on the human body? Not in my case.
My name isn’t Elmo, but you can tickle me any time you want to.
You be the Dairy Queen and I’ll be your Burger King: You treat me right, and I’ll do it your way.
(Ask a person for the time) 9:15? So today is May 1, 2008, at 9:15 PM, thanks I just wanted to be able to remember the exact moment that I met the woman of my dreams.
Pinch me. [Why?] You’re so fine I must be dreaming.
Ouch! My tooth hurts! [Why?] Because you are soooo sweet!
You must be from Pearl Harbor, because baby, you’re the bomb.
You must be Jamaican, because Jamaican me crazy.
Do you know karate? Because your body is really kickin’.
When God made you, he was showing off.
You must be a Snickers, because you satisfy me.
Are you a parking ticket? ‘Cause you’ve got fine written all over you.
Is your dad a terrorist? Because you are the bomb.
Are you religious? Cause you are the answers to all my prayers.
You’re like a dictionary, you add meaning to my life!
Baby, you are so fine I could put you on a plate and sop you up with a biscuit.
Is there a rainbow today? I just found the treasure I’ve been searching for!
You remind me of a magnet, because you sure are attracting me over here!
Hey, is it just me, or are we destined to be married?
Hello. Are you taking any applications for a boy/girlfriend?
I have an “owie” on my lip. Will you kiss it and make it better?
Let’s make like a fabric softener and ‘Snuggle
I didn’t see any stars in the sky tonight, the most heavenly body was standing right next to me.
Hi, my name is Doug. That’s “god” spelled backwards with a little bit of you wrapped up in it.
If I could reach out and hold a star for everytime you’ve made me smile, I’d hold the sky in the palm of my hand.
Well, here I am. What were your other two wishes?
(Put your fingers on the other’s nipples) Hey, here’s (name), comin’ at you with the weather. Can I be your warm front?
How much does a polar bear weigh? [How much?] Enough to break the ice… Hi, I’m (insert name here).
Well, I AM telepathic, and I can tell that you love me. Right? [NO!] Darn, I always get “love” and “lust” mixed up.
Should I smile because we are friends, or cry because I know that is what we will ever be?
When I look into your eyes, it is like a gateway into the world of which I want to be a part.
Hey baby. You got a jersey? [A jersey?...Why?] Because I need your name and number.
Hello, I’m doing a survey of what people think are the cheesiest pickup lines. So, do you pick ‘Do you come here often?’, ‘What’s your sign?’, or ‘Hello, I’m doing a survey of what people think are the cheesiest pickup lines.’?
(hold out hand) Would you hold this for me while I go for a walk?
This time next year let’s be laughing together.
Didn’t I see you on the cover of Vogue?
Excuse me, I don’t want you to think I’m ridiculous or anything, but you are the most beautiful woman I have ever seen. I just felt like I had to tell you.
Have you always been this cute, or did you have to work at it?
Hey baby, you must be a light switch, cuz every time I see you, you turn me on!
Hey, don’t I know you? Yeah, you’re the girl with the beautiful smile.
Was your father a mechanic? Then how did you get such a finely tuned body?
I have had a really bad day and it always makes me feel better to see a pretty girl smile. So, would you smile for me?
I hope you know CPR, cuz you take my breath away!
I just had to come talk with you. Sweetness is my weakness.
I think I can die happy now, cause I’ve just seen a piece of heaven.
Apart from being sexy, what do you do for a living?
If I told you that you had a great body, would you hold it against me?
I sneezed because God blessed me with you.
Is it hot in here or is it just you?
Nice to meet you, I’m (your name) and you are…gorgeous!
So, what do you do for a living besides always making all the men excited and warm all over?
Was your dad king for a day? He must have been to make a princess like you.
Were you arrested earlier? It’s gotta be illegal to look that good.
Were your parents Greek Gods, ’cause it takes two gods to make a goddess.
What does it feel like to be the most beautiful girl in this room?
What’s that on your face? Oh, must just be beauty. Here, let me get it off. Hey, it’s not coming off!
Wow! Are those real?
Ya know, you look really hot! You must be real reason for global warming.
You are the reason men fall in love.
You know the more I drink, the prettier you get!
You know, I would die happy if I saw you naked just once!
You know, you might be asked to leave soon. You’re making the other women look really bad.
You look like my third wife. [how many time have you been married?] Twice.
You make me melt like hot fudge on a sundae.
You should be someone’s wife.
Were you in Boy Scouts? Because you sure have tied my heart in a knot.
Are you as beautiful on the inside as you are on the outside?
I want to be your tear drop, so I could be born in your eyes, live on your cheeks, and die on your lips.
Babe! you look so fine I could drink your bath water!
You’re so hot you would make the devil sweat.
If I had a rose for every time I thought of you, I would be walking through my garden forever.
Excuse me…..Hi, i’m writing a term paper on the finer things in life, and i was wondering if i could interview you…
If god made any thing better than you he keep it for him self.
Girl, if I were a fly, I’d be all over you, because you’re the shit!
There must be a lightswitch on my forehead because everytime I see you, you turn me on!
Hey, how did you do that? (What?) Look so good?
Damn girl, you have more curves than a race track.
If you stood in front of a mirror and help up 11 roses, you would see 12 of the most beautiful things in the world.
If God made anything more pretty, I’m sure he’d keep it for himself.
You are so beautiful that I would marry your brother just to get into your family.
You look like a cool glass of refreshing water, and I am the thirstiest man in the world.
Are you a tamale? ‘Cause you’re hot.
You are so beautiful that you give the sun a reason to shine.
Do you want to see a picture of a beautiful person? (hold up a mirror)
Do you bleach your teeth? ‘Cause your smile lights up the entire room like a candle in the dark. Let’s go prove it.
Your ass is so nice that it is a shame that you have to sit on it.
Someone should call the police, because you just stole my heart!
Stop, drop, and roll, baby. You are on fire.
Baby, you’re so hot, you make the equator look like the north pole.
Come live in my heart, and pay no rent.
If it weren’t for that DAMNED sun, you’d be the hottest thing ever created.
How is your fever? [What fever?] Oh… you just look hot to me.
I just got dumped, and I think that you could make me feel better.
(Walk up to someone and bite them anywhere) Sorry, taking a bite out of crime. [WHAT?] Well it has to be illegal to look that good!
You are a 9 – you’d be a perfect 10 if you were with me.
Excuse me, I’d like to have kids someday, and I wanted to know how your parents created such a beautiful creature.
You’re so hot, I bet you could light a candle at 10 paces.
My buddies over there said that I wouldn’t be able to start a conversation with the most beautiful girl in the bar. Wanna buy some drinks with some of their money?
I can’t believe I’ve been hear the entire evening with all these beautiful people and the moment I find ‘The One’, all I have time to say is “good bye”.
Hey baby, you’ve got somthing on your butt: my eyes.
This isn’t a beer belly, It’a a fuel tank for a love machine.
I don’t know you, but I think I love you already.
You know I’d like to invite you over, but I’m afraid you’re so hot you’ll skyrocket my air-conditioning bill.
Here’s the key to my house, my car… and my heart.
if we shared a garden, I’d put my tulips and your tulips together. (tulips = two lips)
Is your name Summer? ‘Cause you are as hot as hell.
If I had to choose between one night with you or winning the lottery…I would chose winning the lottery…but it would be close…real close…
Do you have any sunscreen? ‘Cause you are burning me up!
See these keys? I wish I had the one to your heart.
Stare at girl . (“What’re you staring at?”)
You, Before I Wake Up From this Dream.
You’re hotter than donut grease.
Your eyes are as blue as window cleaner.
Are your parents retarded, ’cause you sure are special.
If you could put a price tag on beauty you’d be worth more than Fort Knox.
I must be dancing with the devil, because you’re hot as hell.
I never need to see the sun again because your eyes light up my world.
If you were a steak you would be well done.
It’s dark in here. Wait! It’s because all of the light is shining on you.
Can you pull this heart-shaped arrow out of my butt? A damn little kid with wings shot me.
Hello. Cupid called. He says to tell you that he needs my heart back

On with the list …. (Which I dont find catchy btw, but rather sex oriented and crappy)
Girls are sexy, guys are fine I’ll be your six if you’ll be my nine!
Save water, shower with a friend.
Nice pants. Can I test the zipper?
So long as we’re in the theatre….why don’t we get some play?
You know, sweetie, my lips won’t just kiss themselves…
If you can’t be with the ones you love, then love the one you’re with.
If you were ice cream and I were hot chocolate I’d pour all my love onto you.
We’ll probably never see each other again, so let’s screw.
Clothes look heavy on ya, want me to relieve some!!!
I think I love you but I can’t be sure until I kiss you…
Roses are red, violets are blue, can we screw?
I must be in heaven because I’m standing next to you!
Can you help me find my puppy? I think he went into this cheap motel room.
Look at all those curves, and me with no brakes!!!
My magical watch says you aren’t wearing any panties. Oh, you are? It must be an hour fast!
Hey , I’m the cable guy, my only policy is that if I hook your cable up, you have to hook mine up!
I think you’ve got something in your eye. Oh nevermind, it’s just a sparkle.
Baby… wanna come for a ride?
The only thing I want between our relationship is latex.
Save water, shower with a friend!
You must be Jamaican, Cause you Jamaican me crazy.
I think I’m in heaven because you look like an angel. Can you take off your shirt so that I can check for wings?
Your name must be Daisy, because I have the incredible urge to plant you right here!
Excuse me M’am, you dropped a piece of ass, let me get that for you. (then grab her ass)
Your legs are like peanut butter, smooth, creamy, and easy to spread.
Is your father a farmer? Because you sure do have some nice melons.
Quick, somebody call the cops, you just stole my heart.
I love every bone in your body, especially mine!
Lines to use by women on guys
Hi.   (trust us, it doesn’t take much to pick up the average guy)
I’ll give you a nickel if I can tickle your pickle…
Either my eyes need checking or you’re the best looking guy I’ve seen all week.
Is your dad a peanut maker? ‘Cause you’ve got nice nuts!
If you’re naughty go to your room. If you wanna be naughty go to mine
Let’s play pool. We can use your stick and balls and my hole!
Did you just grab my ass? No? Well you can if you want too!
You’re ugly but you intrigue me.
I may not be Wilma, but I can sure make your bedrock.
Do you have a Band-Aid? I skinned my knee when I fell for you
Can I have a picture of you so I can show Santa what I want for Christmas?
Wanna play fireman? We can stop, drop and roll.
You’ve been a bad boy. Go to my room!
My hands are cold. Can I stick them down your pants to warm them?
I love baseball, so take me home baby!
Roses are red, violets are blue, I like spaghetti, so let’s go screw!
Do these look real?
My bed is broken. Can I sleep in yours?
My name is . I’ll be your play toy tonight!
Hi, I’m a taudry slut looking for a good time!

And here is the WORST Voted 10 pick up lines !

Number 10

“Great legs, what time do they open?”

Number 9

“You must be tired because you’ve been running through my head all night.”

Number 8

“Hey girl, what’s up? Guess what? It’s your lucky day. Out of all the girls here, I picked you to talk to.”

Number 7

“That shirt’s very becoming on you. Of course, if I were on you I’d be coming too.”

Number 6

“Can I buy you a drink or do you just want the money?”

Number 5

“Can I have your phone number? I seem to have lost mine.”

Number 4

“Do you believe in love at first sight or should I walk past again?”

Number 3

“Excuse me; I think you owe me a drink.”[She says, "Why?"] “Because when I saw you from across the room I dropped mine. It was a rum and Coke, and I’m [your name].”

Number 2

“Is your last name Gillette? Because you’re the best a man can get.”

Number 1

“Do you come here often?”


Share on TwitterShare on TumblrSubmit to StumbleUponSave on DeliciousDigg ThisSubmit to redditShare on MyspaceShare via email