Quote Originally Posted by dejavu View Post
I downloaded this app.

When I go onto the payment page and the QBMS module loads, I get a syntax error } expected on line 293.

Has anyone else had this problem?
Yes Dejavu!

I didn't get the error in my install, but looking at the qbms.php file I see its missing too. I checked the version for OSCommerce from which this was ported and see that it was carried over from there. The latest revision of the qbms.php for OSCommerce corrects this.

Old code was
Code:
    function javascript_validation() {
      $js = '  if (payment_value == "' . $this->code . '") {' . "\n" .
            '    var cc_owner = document.checkout_payment.qbms_cc_owner.value;' . "\n" .
            '    var cc_number = document.checkout_payment.qbms_cc_number.value;' . "\n" .
            '    if (cc_owner == "" || cc_owner.length < ' . CC_OWNER_MIN_LENGTH . ') {' . "\n" .
            '      error_message = error_message + "' . MODULE_PAYMENT_QBMS_TEXT_JS_CC_OWNER . '";' . "\n" .
            '      error = 1;' . "\n" .
            '    }' . "\n" .
            '    if (cc_number == "" || cc_number.length < ' . CC_NUMBER_MIN_LENGTH . ') {' . "\n" .
            '      error_message = error_message + "' . MODULE_PAYMENT_QBMS_TEXT_JS_CC_NUMBER . '";' . "\n" .
            '      error = 1;' . "\n" .
			'    if (' . MODULE_PAYMENT_QBMS_VERIFY_WITH_CVV2 . ' == "True") {' . "\n" .
			'      var cc_cvv2 = document.checkout_payment.qbms_cc_cvv2.value;' . "\n" .
			'      if (cc_cvv2 == "" || cc_number.length < ' . 3 . ') {' . "\n" .
            '        error_message = error_message + "' . MODULE_PAYMENT_QBMS_TEXT_JS_CC_CVV2 . '";' . "\n" .
            '        error = 1;' . "}\n" .
            '    }' . "\n" .
            '  }' . "\n";
The correct version should be:
Code:
    function javascript_validation() {
      $js = '  if (payment_value == "' . $this->code . '") {' . "\n" .
            '    var cc_owner = document.checkout_payment.qbms_cc_owner.value;' . "\n" .
            '    var cc_number = document.checkout_payment.qbms_cc_number.value;' . "\n" .
            '    if (cc_owner == "" || cc_owner.length < ' . CC_OWNER_MIN_LENGTH . ') {' . "\n" .
            '      error_message = error_message + "' . MODULE_PAYMENT_QBMS_TEXT_JS_CC_OWNER . '";' . "\n" .
            '      error = 1;' . "\n" .
            '    }' . "\n" .
            '    if (cc_number == "" || cc_number.length < ' . CC_NUMBER_MIN_LENGTH . ') {' . "\n" .
            '      error_message = error_message + "' . MODULE_PAYMENT_QBMS_TEXT_JS_CC_NUMBER . '";' . "\n" .
            '      error = 1;' . "\n" .
			'    if (' . MODULE_PAYMENT_QBMS_VERIFY_WITH_CVV2 . ' == "True") {' . "\n" .
			'      var cc_cvv2 = document.checkout_payment.qbms_cc_cvv2.value;' . "\n" .
			'      if (cc_cvv2 == "" || cc_number.length < ' . 3 . ') {' . "\n" .
            '        error_message = error_message + "' . MODULE_PAYMENT_QBMS_TEXT_JS_CC_CVV2 . '";' . "\n" .
            '        error = 1;' . "}\n" .
            '      }' . "\n" .  
            '    }' . "\n" .
            '  }' . "\n";
Clive.