Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Duplicate Orders, Cross Customers?


optic

Recommended Posts

Posted

This is weired. I'm very familiar with OSC, and have installed it and used many times for some of my other domains, but I've never had this problem before.

 

It seems like customers are crossing data. Meaning, if someone sets up an account, someone elses data is appearing as theirs. Or if someone places an order, data from another customer is entered instead. This is causing a cross mess of duplicate orders, orders that people did order, but the billing/shipping info is another customer and vice-versa.

 

I am going to assume it might be the ORDER EDITOR contribution I installed, as it is the only thing that I believe would cause this mess. Has anyone else experienced this?

 

- O

Posted

I'm having the exact same issue that when a customer logs in to his/her account, a different customers' details show up. This is so weird and it just started happening about a week ago. :huh:

 

Any help anyone can provide would be greatly appreciated!

Posted

check if sessions are saved to the database (configure.php) and if cache in admin has been set to false.

:-)

Monika

 

addicted to writing code ... can't get enough of databases either, LOL!

 

my toolbox: Textpad - Compare and Merge - phpMyAdmin - WS_FTP - Photoshop - How to search the forum

 

Interactive Media Award July 2007 ~ category E-Commerce

my advice on the forum is for free, PMs where you send me work are considered consultation which I charge for ...

Posted
check if sessions are saved to the database (configure.php) and if cache in admin has been set to false.

 

Neither of these things are the problem. I've been having this problem for almost a year now. Basically, if someone places an order, but does not LOG OUT after the order is completed, there's a good possiblity that the next person who places an order will get the prior person's info because they don't need to log in. They see a name and then just change the ship to/bill to info and the CC info They don't realize that they're not the customer. I found this out when a very good customer did just that. She didn't log in with her ID info but just changed the other info. She told me she thought it was just a default that showed you what to do.

 

I've added text to the last page of the order process stating "For the protection of your account, please log out after placing your order!" So far, so good. I believe there is a contribution to fix this however, I can't find it.

 

Dorinda

Posted

In order for this to happen all of those customers are sharing one and the same session id. This could come from a link they follow with the id appended.

 

If as Monika suggests, your sessions are saved in de db, caching is set to false, session for robots are disabled, spiders.txt is up-to-date, you could additionally add some code to application_top to generate new sessionIDs for newcomers with sessionIDs. A certain 'Humbled' posted this code a while back - try a search on his name.

Posted

unfortunately, humbled was banned a while back ... all posts gone (grrrr) ... maybe someone saved that code and can post it?

:-)

Monika

 

addicted to writing code ... can't get enough of databases either, LOL!

 

my toolbox: Textpad - Compare and Merge - phpMyAdmin - WS_FTP - Photoshop - How to search the forum

 

Interactive Media Award July 2007 ~ category E-Commerce

my advice on the forum is for free, PMs where you send me work are considered consultation which I charge for ...

Posted
unfortunately, humbled was banned a while back ... all posts gone (grrrr) ... maybe someone saved that code and can post it?

 

That code was to give spiders who carry session id's a 301 redirect, not for customers following a link with a session id.

 

if ( $spider_flag == true ){

if ( eregi(tep_session_name(), $_SERVER['REQUEST_URI']) ){

$location = tep_href_link(basename($_SERVER['SCRIPT_NAME']), tep_get_all_get_params(array(tep_session_name())), 'NONSSL', false);

header("HTTP/1.0 301 Moved Permanently");

header("Location: $location"); // redirect...bye bye

}

}

 

 

For the customer part I do this (I save sessions in files, for DB sessions you would have to do an sql select) :

 

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

// session id in the url

if (!file_exists(SESSION_WRITE_DIRECTORY.'/sess_'.$_GET[tep_session_name()])) {

// requested session id is not active

// write an error log entry

error_log('GET session expired:'.$browser_ip.' - '.$_GET[tep_session_name()]."\n");

// ignore the given session id

unset($_GET[tep_session_name()]);

// issue a new one

session_regenerate_id();

}

}

 

you could do the same for POST and COOKIE but this covers all instances where customers follow an identical link with session id.

Treasurer MFC

Posted

If it's only a logoff problem, what's wrong with just putting

 

tep_session_unregister('customer_id');
 tep_session_unregister('customer_default_address_id');
 tep_session_unregister('customer_first_name');
 tep_session_unregister('customer_country_id');
 tep_session_unregister('customer_zone_id');
 tep_session_unregister('comments');

 $cart->reset();

 

At the end of checkout_success.php

Just between us, remember there are only 10 kinds of people in the world; those who understand binary and those who don't!!

 

Remember, learning is a "do-it-yourself" experience; although, not necessarily a "do-it-BY-yourself" experience.

 

The quickest way to learn is to forget to BACKUP!

Archived

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

×
×
  • Create New...