Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Need your help in finding a bug.


defender39

Recommended Posts

My site seems to have a bug. Now it could be MANY things.

 

1. Human Error

2. A Common Client Config

3. Popup Blocker

4. Bad Code at my Site

5. SSL problems

Or one of any number of other things...

 

I need some help and would like to ask OSCers to help me out here.

 

http://www.videogamedeals.com/product_info...roducts_id/1425

This is a test product.

 

Feel free to setup a bogus account and use the word Test as a last name.

When checking out please use CC 411111111111111 with exp Feb 2004

 

What I am looking for is a loop. Customers are saying either during create account or checkout that the info doesnt go through and that they are forced to reenter the info again and again until it finally works or they just give up. Also it seems to be when customers attempt to change either billing or shipping address.

 

HELP!

 

The test item is setup for .01

 

Feel free to attempt to duplicate the error and create a couple accounts to try to make this happen.

 

I would be really grateful for the help.

 

Please note URLs where the error occurs and post results here..whether you get an error or not.

Link to comment
Share on other sites

Added product to cart. Went to checkout, had to create an account, and even though I had filled in all of the fields, it sent me back to the create account process. (No error messages displayed on the screen though, on return.) I tried again intentionally leaving fields blank and it did pop up the JS error box, so obviously I'd done it right the first time.

 

The javascript code in your create_account.php file is different than mine, but I don't know whether it's because I'd been returned to the page, or for some other reason. Here's yours:

 

<script language="javascript"><!--

var submitted = false;

function check_form() {
 var error = 0;
 var error_message = "Errors have occured during the process of your form!\nPlease make the following corrections:\n\n";

 if (submitted == true) {
   alert("This form has already been submitted. Please press Ok and wait for this process to be completed.");
   return false;
 }

 var first_name = document.account_edit.firstname.value;
 var last_name = document.account_edit.lastname.value;


 var email_address = document.account_edit.email_address.value;
 var street_address = document.account_edit.street_address.value;
 var postcode = document.account_edit.postcode.value;
 var city = document.account_edit.city.value;
 var telephone = document.account_edit.telephone.value;
 var password = document.account_edit.password.value;
 var confirmation = document.account_edit.confirmation.value;


 if (document.account_edit.elements['firstname'].type != "hidden") {
   if (first_name == '' || first_name.length < 2) {
     error_message = error_message + "* The 'First Name' entry must have at least 2 characters.\n";
     error = 1;
   }
 }

 if (document.account_edit.elements['lastname'].type != "hidden") {
   if (last_name == '' || last_name.length < 2) {
     error_message = error_message + "* The 'Last Name' entry must have at least 2 characters.\n";
     error = 1;
   }
 }


 if (document.account_edit.elements['email_address'].type != "hidden") {
   if (email_address == '' || email_address.length < 2) {
     error_message = error_message + "* The 'E-Mail Address' entry must have at least 2 characters.\n";
     error = 1;
   }
 }

 if (document.account_edit.elements['street_address'].type != "hidden") {
   if (street_address == '' || street_address.length < 2) {
     error_message = error_message + "* The 'Street Address' entry must have at least 2 characters.\n";
     error = 1;
   }
 }

 if (document.account_edit.elements['postcode'].type != "hidden") {
   if (postcode == '' || postcode.length < 5) {
     error_message = error_message + "* The 'Post Code' entry must have at least 5 characters.\n";
     error = 1;
   }
 }

 if (document.account_edit.elements['city'].type != "hidden") {
   if (city == '' || city.length < 4) {
     error_message = error_message + "* The 'City' entry must have at least 4 characters.\n";
     error = 1;
   }
 }

 if (document.account_edit.elements['state'].type != "hidden") {
   if (document.account_edit.state.value == '' || document.account_edit.state.value.length < 2 ) {
      error_message = error_message + "* The 'State' entry must be selected.\n";
      error = 1;
   }
 }

 if (document.account_edit.elements['country'].type != "hidden") {
   if (document.account_edit.country.value == 0) {
     error_message = error_message + "* The 'Country' entry must be selected.\n";
     error = 1;
   }
 }

 if (document.account_edit.elements['telephone'].type != "hidden") {
   if (telephone == '' || telephone.length < 10) {
     error_message = error_message + "* The 'Telephone Number' entry must have at least 10 characters.\n";
     error = 1;
   }
 }

 if (document.account_edit.elements['password'].type != "hidden") {
   if ((password != confirmation) || (password == '' || password.length < 4)) {
     error_message = error_message + "* The 'Password' and 'Confirmation' entries must match and have at least 4 characters.\n";
     error = 1;
   }
 }

 if (error == 1) {
   alert(error_message);
   return false;
 } else {
   submitted = true;
   return true;
 }
}
//--></script>

 

and here's how mine displays (also trying to force error on create account):

 

<script language="javascript"><!--
var form = "";
var submitted = false;
var error = false;
var error_message = "";

function check_input(field_name, field_size, message) {
 if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
   var field_value = form.elements[field_name].value;

   if (field_value == '' || field_value.length < field_size) {
     error_message = error_message + "* " + message + "\n";
     error = true;
   }
 }
}

function check_radio(field_name, message) {
 var isChecked = false;

 if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
   var radio = form.elements[field_name];

   for (var i=0; i<radio.length; i++) {
     if (radio[i].checked == true) {
       isChecked = true;
       break;
     }
   }

   if (isChecked == false) {
     error_message = error_message + "* " + message + "\n";
     error = true;
   }
 }
}

function check_select(field_name, field_default, message) {
 if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
   var field_value = form.elements[field_name].value;

   if (field_value == field_default) {
     error_message = error_message + "* " + message + "\n";
     error = true;
   }
 }
}

function check_password(field_name_1, field_name_2, field_size, message_1, message_2) {
 if (form.elements[field_name_1] && (form.elements[field_name_1].type != "hidden")) {
   var password = form.elements[field_name_1].value;
   var confirmation = form.elements[field_name_2].value;

   if (password == '' || password.length < field_size) {
     error_message = error_message + "* " + message_1 + "\n";
     error = true;
   } else if (password != confirmation) {
     error_message = error_message + "* " + message_2 + "\n";
     error = true;
   }
 }
}

function check_password_new(field_name_1, field_name_2, field_name_3, field_size, message_1, message_2, message_3) {
 if (form.elements[field_name_1] && (form.elements[field_name_1].type != "hidden")) {
   var password_current = form.elements[field_name_1].value;
   var password_new = form.elements[field_name_2].value;
   var password_confirmation = form.elements[field_name_3].value;

   if (password_current == '' || password_current.length < field_size) {
     error_message = error_message + "* " + message_1 + "\n";
     error = true;
   } else if (password_new == '' || password_new.length < field_size) {
     error_message = error_message + "* " + message_2 + "\n";
     error = true;
   } else if (password_new != password_confirmation) {
     error_message = error_message + "* " + message_3 + "\n";
     error = true;
   }
 }
}

function check_form(form_name) {
 if (submitted == true) {
   alert("This form has already been submitted. Please press Ok and wait for this process to be completed.");
   return false;
 }

 error = false;
 form = form_name;
 error_message = "Errors have occured during the process of your form.\n\nPlease make the following corrections:\n\n";


 check_input("firstname", 2, "Your First Name must contain a minimum of 2 characters.");
 check_input("lastname", 2, "Your Last Name must contain a minimum of 2 characters.");


 check_input("email_address", 6, "Your Email Address must contain a minimum of 6 characters.");
 check_input("street_address", 5, "Your Street Address must contain a minimum of 5 characters.");
 check_input("postcode", 4, "ERROR! Your Zip Code must contain a minimum of 4 characters.");
 check_input("city", 3, "ERROR! Your City must contain a minimum of 3 characters.");

 check_input("state", 2, "ERROR! Your State must contain a minimum of 2 characters.");

 check_select("country", "", "ERROR! You must select a country from the Countries pull down menu.");

 check_input("telephone", 3, "ERROR! Your Telephone Number must contain a minimum of 3 characters.");

 check_password("password", "confirmation", 5, "ERROR! Your Password must contain a minimum of 5 characters.", "ERROR! The Password Confirmation must match your Password.");
 check_password_new("password_current", "password_new", "password_confirmation", 5, "ERROR! Your Password must contain a minimum of 5 characters.", "ERROR! Your new Password must contain a minimum of 5 characters.", "ERROR! The Password Confirmation must match your new Password.");

 if (error == true) {
   alert(error_message);
   return false;
 } else {
   submitted = true;
   return true;
 }
}
//--></script>

 

Could it be the references to 'document.account_edit.elements' are causing you problems? I'm not savvy enough with scripting to know, sorry...

 

HTH,

 

Terry

Terry Kluytmans

 

Contribs Installed: Purchase Without Account (PWA); Big Images, Product Availability, Description in Product Listing, Graphical Infobox, Header Tags Controller, Login Box, Option Type Feature, plus many layout changes & other mods of my own, like:

 

Add order total to checkout_shipment

Add order total to checkout_payment

Add radio buttons at checkout_shipping (for backorder options, etc.)

Duplicate Table Rate Shipping Module

Better Product Review Flow

 

* If at first you don't succeed, find out if there's a prize for the loser. *

Link to comment
Share on other sites

Do you happen to have a popup blocker?

 

I have another forums that is also helping me test and they have popup blockers on. The google toolbar seems to be one cause.

 

Please LMK and any help I can get on this would be great. I am running MS1 but is heavily moded so I cant update fully to MS2. I can more than likely clean the code though.

 

If popup blockers are causing MS1 problems this needs to be addressed asap for many users. We could all be losing a lot of customers and we dont even know it because they arent even able to setup an account.

Link to comment
Share on other sites

Maybe another clue...

 

I viewed your source again to see what your form was referencing. My form has this code:

 

<?php echo tep_draw_form('create_account', tep_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL'), 'post', 'onSubmit="return check_form(create_account);"') . tep_draw_hidden_field('action', 'process'); ?>

 

Yours, when viewing source, is all filled in (of course), but here's what I saw:

 

<form name="account_edit" action="https://www.videogamedeals.com/create_account_process.php" method="post" onSubmit="return check_form();"><input type="hidden" name="action" value="process">

 

Maybe that's the broken link?

 

HTH,

 

Terry

Terry Kluytmans

 

Contribs Installed: Purchase Without Account (PWA); Big Images, Product Availability, Description in Product Listing, Graphical Infobox, Header Tags Controller, Login Box, Option Type Feature, plus many layout changes & other mods of my own, like:

 

Add order total to checkout_shipment

Add order total to checkout_payment

Add radio buttons at checkout_shipping (for backorder options, etc.)

Duplicate Table Rate Shipping Module

Better Product Review Flow

 

* If at first you don't succeed, find out if there's a prize for the loser. *

Link to comment
Share on other sites

I'm not using any popup blockers. The code I referenced above is using osc2.2MS2, so maybe that's why the differences in code. If that's the case, I can't likely be of any help at all (not that I was much help to begin with). :)

 

Terry

Terry Kluytmans

 

Contribs Installed: Purchase Without Account (PWA); Big Images, Product Availability, Description in Product Listing, Graphical Infobox, Header Tags Controller, Login Box, Option Type Feature, plus many layout changes & other mods of my own, like:

 

Add order total to checkout_shipment

Add order total to checkout_payment

Add radio buttons at checkout_shipping (for backorder options, etc.)

Duplicate Table Rate Shipping Module

Better Product Review Flow

 

* If at first you don't succeed, find out if there's a prize for the loser. *

Link to comment
Share on other sites

BTW, if your store is set up to send out Emails once a customer creates an account, I didn't receive one -- just in case that offers any more clues for you. (So the problem is happening before it reaches that step.)

 

Terry

Terry Kluytmans

 

Contribs Installed: Purchase Without Account (PWA); Big Images, Product Availability, Description in Product Listing, Graphical Infobox, Header Tags Controller, Login Box, Option Type Feature, plus many layout changes & other mods of my own, like:

 

Add order total to checkout_shipment

Add order total to checkout_payment

Add radio buttons at checkout_shipping (for backorder options, etc.)

Duplicate Table Rate Shipping Module

Better Product Review Flow

 

* If at first you don't succeed, find out if there's a prize for the loser. *

Link to comment
Share on other sites

argh

 

I gotta get this resolved. It happens at a couple places....both of them involve forms and the javascript to check it.

 

What are the chances that the entire signup and checkout can be rewritten without the javascript error checking? Maybe a new contrib?

Link to comment
Share on other sites

// Define the webserver and path parameters
// * DIR_FS_* = Filesystem directories (local/physical)
// * DIR_WS_* = Webserver directories (virtual/URL)
 define('HTTP_SERVER', 'http://www.videogamedeals.com'); // eg, http://localhost - should not be empty for productive servers
 define('HTTPS_SERVER', 'https://www.videogamedeals.com'); // eg, https://localhost - should not be empty for productive servers
 define('ENABLE_SSL', true); // secure webserver for checkout procedure?
 define('DIR_WS_CATALOG', '/'); // absolute path required
 define('DIR_WS_IMAGES', 'images/');
 define('DIR_WS_ICONS', DIR_WS_IMAGES . 'icons/');
 define('DIR_WS_INCLUDES', 'includes/');
 define('DIR_WS_BOXES', DIR_WS_INCLUDES . 'boxes/');
 define('DIR_WS_FUNCTIONS', DIR_WS_INCLUDES . 'functions/');
 define('DIR_WS_CLASSES', DIR_WS_INCLUDES . 'classes/');
 define('DIR_WS_MODULES', DIR_WS_INCLUDES . 'modules/');
 define('DIR_WS_LANGUAGES', DIR_WS_INCLUDES . 'languages/');

 define('DIR_WS_DOWNLOAD_PUBLIC', DIR_WS_CATALOG . 'pub/');
 define('DIR_FS_DOCUMENT_ROOT', $HTTP_SERVER_VARS['DOCUMENT_ROOT']); // where your pages are located on the server. if $DOCUMENT_ROOT doesnt suit you, replace with your local path. (eg, /usr/local/apache/htdocs)
 define('DIR_FS_CATALOG', DIR_FS_DOCUMENT_ROOT . DIR_WS_CATALOG);
 define('DIR_FS_DOWNLOAD', DIR_FS_CATALOG . 'download/');
 define('DIR_FS_DOWNLOAD_PUBLIC', DIR_FS_CATALOG . 'pub/');

 

 

So Matti...what do you suspect it may be? I am starting to think of the IE security patches is causing the problem. Oh I dont know..its all just so frustrating.

Link to comment
Share on other sites

seems like a lot of users are reporting that google toolbar with its popup blocker on are causing some errors because when they shut off the blocker then they are ok...but I cant replicate this action myself so I am not sure if it is also something with an XP update that MS has done...

 

also I have people reporting a loop when they make an error and press the browser back button.

 

this is really a a huge issue for me and any help I get in resolving this would be awesome and I would truely appreciate it

Link to comment
Share on other sites

Well...I had to rebuild my create_account.php with parts from MS2 and its better now. It took some fudging but its better now. The main difference is that MS1 uses 3 page from create_account to create_account_process to create_account_success and MS2 skips the create_account_process and builds the functions into create_account also MS2 has message_stack.php module in use for the error reporting which truely could be part of the problem since many of the MS1 errors are within the URL which I think the latest builds of IE are blocking. This is rather hard to tell since the problems can be so varied. For now it works much better and anyone with MS1 who wishes to convert the MS1 3 page create account setup into the MS2 style I can release my changes as a contrib to those interested.

 

I may also have to rebuild the checkout_payment with all the addresses there for billing and shippin and the way error reporting is. I really cant reinstall the 50 or so contribs I have so making these changes are basically much easier than a full upgrade.

 

Does anyone even care?

Link to comment
Share on other sites

Jesse,

 

We are having the same problem on what used to be a successful site. Did you find an answer?

 

We have been told by outside sources it is Internet Explorer 6 and their latest "security" patch of a few days ago.

 

Anyone heard this? Can anyone help?

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...