Jump to content


Corporate Sponsors


Latest News: (loading..)

- - - - -

Anti-hacker Account Mods, Secure your account pages


254 replies to this topic

#241 kps93

  • Community Member
  • 32 posts
  • Real Name:Steve

Posted 15 August 2010, 21:16

View PostcarryG, on 12 June 2010, 04:02, said:

Found the same error on the login page:

Notice: Undefined index: password in /var/www/vhosts/site.com/httpdocs/login.php on line 13

Notice: Undefined index: email_address in /var/www/vhosts/site.com/httpdocs/login.php on line 16

Anyone know what I could be doing wrong?

Php version: 5.2.13
MySQL 5.0.77
==========================

Looks like this mod is coded incorrectly???


PHP is case sensitive. The name attributes of your form elements are Name, Email, and Message. Consequently, you should be using $_POST['Name'], $_POST['Email'], and $_POST['Message'].

"Undefined index" means the variable you are trying to use doesn't exist. $_POST['Name'] and $_POST['name'] are completely different variables. They may look the same to you, but not to PHP.

Hello Carry,

Did you ever find a solution to this problem? I am having the same issue and don't see where the wrong variable is.

Thanks in advance for your help.

Edited by kps93, 15 August 2010, 21:18.


#242 dontlike2pay

  • Community Member
  • 188 posts
  • Real Name:Kai
  • Gender:Male
  • Location:United Kingdom

Posted 10 October 2010, 06:48

Hi Sam

I added your Anti-hacker Account Mods today and everything works fine but Activation Code Mod is not sending Activation Code out within the first welcome email.

Activation Code v1.6

Before Adding your mod, my welcome email looks like this:

Quote

Dear Mr. xxx,

We welcome you to mydomain.com.

You can now take part in the various services we have to offer you. Some of these services include:

# Permanent Cart - Any products added to your online cart remain there until you remove them, or check them out.
# Address Book - We can now deliver your products to another address other than yours! This is perfect to send birthday gifts direct to the birthday-person themselves.
# Order History - View your history of purchases that you have made with us.
# Products Reviews - Share your opinions on products with our other customers.

Your activation code is: 9g4z82scvkw5

Please click the following link to activate your account

http://www.mydomain.com/catalog/account_activate.php?activation_id=b86439b8170c69cf576dc72762aefc1a&submit=true&activation_code=9g4z82scvkw5

For help with any of our online services, please email the store-owner: webmaster@mydomain.com.

Note: This email address was given to us by one of our customers. If you did not signup to be a member, please send an email to webmaster@mydomain.com.


Email reverted back to original format after adding your mod:

Quote

Dear Ms. YYY,

We welcome you to www.mydomain.com.

You can now take part in the various services we have to offer you. Some of these services include:

# Permanent Cart - Any products added to your online cart remain there until you remove them, or check them out.
# Address Book - We can now deliver your products to another address other than yours! This is perfect to send birthday gifts direct to the birthday-person themselves.
# Order History - View your history of purchases that you have made with us.
# Products Reviews - Share your opinions on products with our other customers.

For help with any of our online services, please email the store-owner: webmaster@mydomain.com.

Note: This email address was given to us by one of our customers. If you did not signup to be a member, please send an email to webmaster@mydomain.com.



I checked Activation COde install, usd file compare tool to compare everything file that Activation Code modified but no difference at all.

I checked my database, the activation code has been created, customer status as inactivated.

The problem as you see above emails, the activation link and the code is not included in the email anymore :(

Could you please let me know whats wrong??? I think something to do with those changes in your mod:
customer_email_xxx to $email_xxx ???
$email_address to $email ???

Im still new, please help.


Thanks


#243 Medibot3D

  • Community Member
  • 18 posts
  • Real Name:Hugo Palczewski

Posted 19 October 2010, 13:05

Hi Sam/everyone/anyone


Ive just installed this contribution. Thanks very much Sam its a very important mod and seems to be working prefictly.


Im moving my site to this new secure one on a new domain. Ive sorted all transfers out but When I try to tranfer my customers nothing happens.

Could this be because my old site does not have your contrib. Meaning the DOB is in the american style and has no county dropdown.

If so would installing it on my old site and then transfering the data make a difference.

Thanks for any assistance on this. Im very new to all this and its a steep learning curve.

Cheers for all the support.

#244 Martijn89

  • Community Member
  • 6 posts
  • Real Name:Martijn

Posted 20 October 2010, 20:43

Hi everyone,

I'm installing the anti hacker account mod. But at step "Open product_reviews_write.php AND tell_a_friend.php AND any other files you have accepting post vars not included here" I got stuck with a question: Do I just have to open all the files in the catalog and search for $HTTP_POST_VARS? And if this string is in the document, add the lines

// anti-hacker account	
   require('includes/functions/account_secure.php');
   clean_post ();
// EOF anti-hacker account

Or am I just misunderstanding this.

Thanks in advance

#245 pdcelec

  • Community Member
  • 606 posts
  • Real Name:Paul Clifford
  • Gender:Male
  • Location:UK

Posted 20 October 2010, 21:10

View PostMartijn89, on 20 October 2010, 20:43, said:

Hi everyone,

I'm installing the anti hacker account mod. But at step "Open product_reviews_write.php AND tell_a_friend.php AND any other files you have accepting post vars not included here" I got stuck with a question: Do I just have to open all the files in the catalog and search for $HTTP_POST_VARS? And if this string is in the document, add the lines

// anti-hacker account	
   require('includes/functions/account_secure.php');
   clean_post ();
// EOF anti-hacker account

Or am I just misunderstanding this.

Thanks in advance

Yes that is correct (I use WINgrep on a downloaded copy of my site to find the files and then edit them)

#246 nodrizza

  • Community Member
  • 1 posts
  • Real Name:nodrizza

Posted 21 October 2010, 07:41

Hello, I need adapt this for recaptcha

(original code)

// start modification for reCaptcha
// the response from reCAPTCHA
$resp = null;

// was there a reCAPTCHA response?
$resp = recaptcha_check_answer (RECAPTCHA_PRIVATE_KEY,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);

if (tep_validate_email($email_address) & ($resp->is_valid)) {
tep_mail(STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, EMAIL_SUBJECT, $enquiry, $name, $email_address);

tep_redirect(tep_href_link(FILENAME_CONTACT_US, 'action=success'));
} else {
if (!tep_validate_email($email_address)) {
$error = true;
$messageStack->add('contact', ENTRY_EMAIL_ADDRESS_CHECK_ERROR);
}
if (!$resp->is_valid) {
$error = true;
$messageStack->add('contact', ENTRY_SECURITY_CHECK_ERROR . " (reCAPTCHA output: " . $resp->error . ")");
}
}
}
// end modification for reCaptcha

(SAM´s code)

<?php
/*
$Id: contact_us.php,v 1.5 2010/02/02 Spooks Exp $

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

Copyright © 2010 osCommerce

Released under the GNU General Public License
*/
// anti-hacker account
require('includes/functions/account_secure.php');
clean_post ();
// EOF anti-hacker account
require('includes/application_top.php');

// start modification for reCaptcha
require_once('includes/classes/recaptchalib.php');
// end modification for reCaptcha

require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CONTACT_US);

$error = false;
if (isset($_GET['action']) && ($_GET['action'] == 'send')) {
$name = tep_db_prepare_input($_POST['name']);
$email = tep_db_prepare_input($_POST['email']);
$enquiry = tep_db_prepare_input($_POST['enquiry']);
$subject = tep_db_prepare_input($_POST['subject']);
$phone = tep_db_prepare_input($_POST['phone']);
$date = 'Date Sent: ' . date("d M Y H:i:s");
$orders_id = tep_not_null($_POST['orders_id']) ? $_POST['orders_id'] : false;
$xipaddress = $_SERVER["REMOTE_ADDR"];
$subject = $subject ? $subject : EMAIL_SUBJECT;


//$enquiry = preg_replace('/\r/','\', \'',$enquiry);
//$enquiry = preg_replace('/\(|\)/','\'',$enquiry);
//$_POST['enquiry'] = $result;

if (strlen($name) < ENTRY_LAST_NAME_MIN_LENGTH) {
$error = true;

$messageStack->add('contact', ENTRY_LAST_NAME_ERROR);
}
if (strlen($enquiry) < 8) {
$error = true;

$messageStack->add('contact', ENTRY_ERROR_ENQUIRY);
}
if (!tep_validate_email($email)) {
$error = true;

$messageStack->add('contact', ENTRY_EMAIL_ADDRESS_CHECK_ERROR);
}
if (!$error) {
$enquiry = MESSAGE_FROM . $name . "\n" . $date . "\n" . ($phone ? ENTRY_TELEPHONE_NUMBER . $phone . "\n" : '' ) . ($customer_id ? MAIL_CLIENT_ID . $customer_id . "\n" : '') . ($orders_id ? MAIL_ORDER_ID . $orders_id . "\n" : '') . "\n" . MAIL_IP . $xipaddress . '.' . "\n\n" . ENTRY_ENQUIRY . "\n" . $enquiry;
tep_mail(STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, $subject, $enquiry, $name, $email);

tep_redirect(tep_href_link(FILENAME_CONTACT_US, 'action=success'));
}
}

$breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_CONTACT_US));
$account = array();$orders = array();$name = '';$email = '';$phone = '';
if (tep_session_is_registered('customer_id')) {
$account_query = tep_db_query("select customers_firstname, customers_lastname, customers_telephone, customers_id, customers_email_address from " . TABLE_CUSTOMERS . " where customers_id = '" . (int)$customer_id . "'");
$account = tep_db_fetch_array($account_query);
$name = $account['customers_firstname'].' '.$account['customers_lastname'] ;
$email = $account['customers_email_address'] ;
$phone = $account['customers_telephone'] ;
$history_query = tep_db_query("select orders_id, date_purchased from " . TABLE_ORDERS . " where customers_id = '" . (int)$customer_id . "' order by orders_id DESC");
$orders[0] = array('id' => '0', 'text' => ENTRY_ORDER_ID);
while ($history = tep_db_fetch_array($history_query)) {
$orders[] = array('id' => $history['orders_id'], 'text' => $history['orders_id'] . ENTRY_ORDERED . tep_date_short($history['date_purchased']));

}
}


?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">
<link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>
<body>
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table width="995" border="0" align="center" cellpadding="3" cellspacing="3" summary="" bgcolor="#FFFFFF">
<tr>
<!-- body_text //-->
<td width="100%" valign="top"><?php echo tep_draw_form('contact_us', tep_href_link(FILENAME_CONTACT_US, 'action=send')); ?><table border="0" summary="" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td><table border="0" summary="" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
</tr>
</table></td>
</tr>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
</tr>
<?php
if ($messageStack->size('contact') > 0) {
?>
<tr>
<td><?php echo $messageStack->output('contact'); ?></td>
</tr>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
</tr>
<?php
}

if (isset($_GET['action']) && ($_GET['action'] == 'success')) {
?>
<tr>
<td class="main" align="center"><?php echo tep_image(DIR_WS_IMAGES . 'table_background_man_on_board.gif', HEADING_TITLE, '0', '0', 'align="left"') . TEXT_SUCCESS; ?></td>
</tr>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
</tr>
<tr>
<td><table border="0" summary="" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
<tr class="infoBoxContents">
<td><table border="0" summary="" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
<td align="right"><?php echo '<a href="' . tep_href_link(FILENAME_DEFAULT) . '">' . tep_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE) . '</a>'; ?></td>
<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<?php
} else {
echo tep_draw_hidden_field('phone',$phone);
?>
<tr>
<td><table border="0" summary="" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
<tr class="infoBoxContents">
<td valign="top" width="40%">
<table>
<tr>
<td class="main" >
<b><?php echo nl2br(STORE_NAME_ADDRESS); ?></b><br><br>
<?php echo (OPENING_HOURS); ?>
</td>
</tr>
</table>
</td><td valign="top" width="60%"><table border="0" summary="" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td class="main"><?php echo ENTRY_NAME; ?></td>
</tr>
<tr>
<td class="main"><?php echo (isset($account['customers_lastname']) ? $name . tep_draw_hidden_field('name',$name) : tep_draw_input_field('name', $name, 'size="28"')); ?></td>
</tr>
<tr>
<td class="main"><?php echo ENTRY_EMAIL; ?></td>
</tr>
<tr>
<td class="main"><?php echo tep_draw_input_field('email', $email, 'size="28"'); ?></td>
</tr>
<tr>
<td class="main"><?php echo BOX_HEADING_SUBJECT; ?></td>
</tr>
<tr>
<td class="main"><?php echo tep_draw_input_field('subject', '', 'size="28"');
if (sizeof($orders) > 1) {
echo '&nbsp;&nbsp;&nbsp;&nbsp;' . tep_draw_pull_down_menu('orders_id', $orders);
}

?></td>
</tr>
<tr>
<td class="main"><?php echo ENTRY_ENQUIRY; ?></td>
</tr>
<tr>
<td><?php echo tep_draw_textarea_field('enquiry', 'soft', 50, 15); ?></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
</tr>
<tr>
<td><table border="0" summary="" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
<tr class="infoBoxContents">
<td><table border="0" summary="" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
<td align="right"><?php echo tep_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE); ?></td>
<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<?php
}
?>
</table></form></td>
<!-- body_text_eof //-->
<td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" summary="" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- right_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_right.php'); ?>
<!-- right_navigation_eof //-->
</table></td>
</tr>
</table>
<!-- body_eof //-->

<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
<br>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

----------
Thanks

#247 Martijn89

  • Community Member
  • 6 posts
  • Real Name:Martijn

Posted 12 November 2010, 00:57

Hello,

I completely installed the mod, but I get this little error... when I want to register, I directly go to create_account_succes.php with the congratulations message. Please HELP!!!

Edit: I'm checking the admin, and everytime someone is redirected to the create_account_succes.php, an empty account is created...

Edited by Martijn89, 12 November 2010, 01:06.


#248 BiBS0N

  • Community Member
  • 37 posts
  • Real Name:Dominik

Posted 18 November 2010, 09:49

THank you for this awesome mod, now that I have installed it to most of my pages, I feel alot more safe.

I have one question though: Does it work for the search box + advanced_search.php ?

#249 altereco

  • Community Member
  • 42 posts
  • Real Name:Bill

Posted 22 November 2010, 19:41

Hello,

When my customers are creating accounts, I keep getting complaints that the page will not allow them to input their birthday. When they try to register, they get an error message that says the birthdate format is wrong. when the page reloads their birthdate is changed to what seems like some default birthdate and they can only continue on with that specific birthdate provided in the fields. Can I fix this somehow?
Also, how do I change the hours of my store in contact_us.php to what my hours are? Can I change the hours to american format?
Thank you for the contribution and the help!

#250 mariano_quilmes

  • Community Member
  • 10 posts
  • Real Name:mariano

Posted 06 December 2010, 22:54

Hello I would like to know if this addon is compatible with Onepage Checkout or if they crash used together. Can I do not use some fields not required by my site (birth date) or I have to complete them always?

Thanks.

Mariano.

#251 b-filler

  • Community Member
  • 1 posts
  • Real Name:Shandy
  • Gender:Male

Posted 17 December 2010, 03:57

Hello & thank-you in advance,
Has anyone added Sam's anti-hacker add on to osc v2.3.1 and if not what would some of the problems be?

#252 jranae

  • Community Member
  • 7 posts
  • Real Name:J. Ranae
  • Gender:Female

Posted 07 January 2011, 01:09

Hello,

When a customer uses "password forgotten" or changes their password in "my account" the new password is not being stored on the database. Any idea of what could be causing this problem?

Thanks!

#253 matrix2223

  • Community Member
  • 859 posts
  • Real Name:Eric
  • Gender:Male
  • Location:MD USA

Posted 06 February 2011, 01:24

Hello all,

Has anyone got this to work with master password 1.0?

Every time I enter the master password it tells me that it is incorrect.

Thanks
Eric

Keep up on osCommerce changes and updates at Github | Understand osCommerce a little further at OsCommerce Documentation | Copy and paste your error message in Google add "in osCommerce" at the end to get relevant answers to most issues.


#254 matrix2223

  • Community Member
  • 859 posts
  • Real Name:Eric
  • Gender:Male
  • Location:MD USA

Posted 08 February 2011, 04:16

Also while changing password within the front end it keeps telling me that, Your Current Password did not match the password in our records. Please try again.
Eric

Keep up on osCommerce changes and updates at Github | Understand osCommerce a little further at OsCommerce Documentation | Copy and paste your error message in Google add "in osCommerce" at the end to get relevant answers to most issues.


#255 matrix2223

  • Community Member
  • 859 posts
  • Real Name:Eric
  • Gender:Male
  • Location:MD USA

Posted 10 February 2011, 10:41

This code is Sams contact us page with recaptcha added
<?php
/*
  $Id: contact_us.php,v 1.5 2010/02/02 Spooks Exp $

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

  Copyright (c) 2010 osCommerce

  Released under the GNU General Public License
*/
// anti-hacker account	
		require('includes/functions/account_secure.php');
		clean_post ();
// EOF anti-hacker account	
  require('includes/application_top.php');

  require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CONTACT_US);

  $error = false;
  if (isset($_GET['action']) && ($_GET['action'] == 'send')) {
    $name = tep_db_prepare_input($_POST['name']);
    $email = tep_db_prepare_input($_POST['email']);
    $enquiry = tep_db_prepare_input($_POST['enquiry']);
		$subject = tep_db_prepare_input($_POST['subject']);
		$phone = tep_db_prepare_input($_POST['phone']);
		$date = 'Date Sent: ' . date("d M Y H:i:s");
		$orders_id = tep_not_null($_POST['orders_id']) ? $_POST['orders_id'] : false;
		$xipaddress = $_SERVER["REMOTE_ADDR"];
		$subject = $subject ? $subject : EMAIL_SUBJECT;
$captchaurl = "captchaerror.php" ;
require_once('captcha/recaptchalib.php');
$privatekey = "private key goes here";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if (!$resp->is_valid) {
    // What happens when the CAPTCHA was entered incorrectly
    die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .
         "(reCAPTCHA said: " . $resp->error . ")");
  } else {
    // Your code here to handle a successful verification
  }
	
		//$enquiry = preg_replace('/\r/','\', \'',$enquiry);
		//$enquiry = preg_replace('/\(|\)/','\'',$enquiry);
		//$_POST['enquiry'] = $result;
		
		if (strlen($name) < ENTRY_LAST_NAME_MIN_LENGTH) {
      $error = true;

      $messageStack->add('contact', ENTRY_LAST_NAME_ERROR);
    }
		if (strlen($enquiry) < 8) {
      $error = true;

      $messageStack->add('contact', ENTRY_ERROR_ENQUIRY);
    }
		if (!tep_validate_email($email)) {
			$error = true;

      $messageStack->add('contact', ENTRY_EMAIL_ADDRESS_CHECK_ERROR);
    }
    if (!$error) {
		  $enquiry = MESSAGE_FROM . $name . "\n" . $date . "\n" . ($phone ? ENTRY_TELEPHONE_NUMBER .  $phone . "\n" : '' ) . ($customer_id ? MAIL_CLIENT_ID .  $customer_id . "\n" : '')  . ($orders_id ? MAIL_ORDER_ID .  $orders_id . "\n" : '') . "\n" . MAIL_IP . $xipaddress . '.' . "\n\n" . ENTRY_ENQUIRY . "\n" . $enquiry;
      tep_mail(STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, $subject, $enquiry, $name, $email);

      tep_redirect(tep_href_link(FILENAME_CONTACT_US, 'action=success'));
    } 
  }

  $breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_CONTACT_US));
	$account = array();$orders = array();$name = '';$email = '';$phone = '';
	if (tep_session_is_registered('customer_id')) {
			$account_query = tep_db_query("select customers_firstname, customers_lastname, customers_telephone, customers_id, customers_email_address from " . TABLE_CUSTOMERS . " where customers_id = '" . (int)$customer_id . "'");
			$account = tep_db_fetch_array($account_query);
			$name = $account['customers_firstname'].' '.$account['customers_lastname'] ;
			$email = $account['customers_email_address'] ;
			$phone = $account['customers_telephone'] ;
			$history_query = tep_db_query("select orders_id, date_purchased from " . TABLE_ORDERS . " where customers_id = '" . (int)$customer_id . "' order by orders_id DESC");
			$orders[0] = array('id' => '0', 'text' => ENTRY_ORDER_ID);
			while ($history = tep_db_fetch_array($history_query)) {
				$orders[] = array('id' => $history['orders_id'], 'text' => $history['orders_id'] . ENTRY_ORDERED . tep_date_short($history['date_purchased']));

			} 
	}		
	

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">
<link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>
<body>
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" summary="" width="100%" cellspacing="3" cellpadding="3">
  <tr>
    <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" summary="" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
    </table></td>
<!-- body_text //-->
    <td width="100%" valign="top"><?php echo tep_draw_form('contact_us', tep_href_link(FILENAME_CONTACT_US, 'action=send')); ?><table border="0" summary="" width="100%" cellspacing="0" cellpadding="0">
      <tr>
        <td><table border="0" summary="" width="100%" cellspacing="0" cellpadding="0">
          <tr>
            <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
      </tr>
<?php
  if ($messageStack->size('contact') > 0) {
?>
      <tr>
        <td><?php echo $messageStack->output('contact'); ?></td>
      </tr>
      <tr>
        <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
      </tr>
<?php
  }

  if (isset($_GET['action']) && ($_GET['action'] == 'success')) {
?>
      <tr>
        <td class="main" align="center"><?php echo tep_image(DIR_WS_IMAGES . 'table_background_man_on_board.gif', HEADING_TITLE, '0', '0', 'align="left"') . TEXT_SUCCESS; ?></td>
      </tr>
      <tr>
        <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
      </tr>
      <tr>
        <td><table border="0" summary="" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
          <tr class="infoBoxContents">
            <td><table border="0" summary="" width="100%" cellspacing="0" cellpadding="2">
              <tr>
                <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
                <td align="right"><?php echo '<a href="' . tep_href_link(FILENAME_DEFAULT) . '">' . tep_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE) . '</a>'; ?></td>
                <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
              </tr>
            </table></td>
          </tr>
        </table></td>
      </tr>
<?php
  } else {
	echo tep_draw_hidden_field('phone',$phone);
?>
      <tr>
        <td><table border="0" summary="" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
          <tr class="infoBoxContents">
					 <td valign="top" width="40%">
					   <table>
						 	<tr>
								<td class="main" >
         				<b><?php echo nl2br(STORE_NAME_ADDRESS); ?></b><br><br>
                <?php echo (OPENING_HOURS); ?>
								</td>
          		</tr>
        		</table>		
           </td><td valign="top" width="50%"><table border="0" summary="" width="100%" cellspacing="0" cellpadding="2">
              <tr>
                <td class="main"><?php echo ENTRY_NAME; ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo (isset($account['customers_lastname']) ? $name . tep_draw_hidden_field('name',$name) : tep_draw_input_field('name', $name, 'size="28"')); ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo ENTRY_EMAIL; ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo tep_draw_input_field('email', $email, 'size="28"'); ?></td>
              </tr>
							<tr>
                <td class="main"><?php echo BOX_HEADING_SUBJECT; ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo tep_draw_input_field('subject', '', 'size="28"'); 
								if (sizeof($orders) > 1) {
										echo '&nbsp;&nbsp;&nbsp;&nbsp;' . tep_draw_pull_down_menu('orders_id', $orders); 
								  }
								
								?></td>
              </tr>
              <tr>
                <td class="main"><?php echo ENTRY_ENQUIRY; ?></td>
              </tr>
              <tr>
                <td><?php echo tep_draw_textarea_field('enquiry', 'soft', 40, 15); ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo SPAM_CODE; ?></td>
              </tr>
              <tr>
                 <td><?php require_once('captcha/recaptchalib.php'); $publickey = "Public Key Goes Here"; // you got this from the signup page
    if ($request_type =='SSL') echo recaptcha_get_html($publickey, 0, $request_type);
       else
    echo recaptcha_get_html($publickey); ?></td>
             </tr>
            </table></td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
      </tr>
      <tr>
        <td><table border="0" summary="" width="100%" cellspacing="1" cellpadding="2">
          <tr>
            <td><table border="0" summary="" width="100%" cellspacing="0" cellpadding="2">
              <tr>
                <td align="middle"><a href="javascript:onclick=history.go(-1)"><?php echo tep_image_button('button_back.gif', IMAGE_BUTTON_BACK); ?></a></td>
                <td width="10px"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
                <td align="middle"><?php echo tep_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE); ?></td>
                <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
              </tr>
            </table></td>
          </tr>
        </table></td>
      </tr>
<?php
  }
?>
    </table></form></td>
<!-- body_text_eof //-->
    <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" summary="" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- right_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_right.php'); ?>
<!-- right_navigation_eof //-->
    </table></td>
  </tr>
</table>
<!-- body_eof //-->

<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
<br>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>
Change the 2 public key and private key sections to include your keys
Eric

Keep up on osCommerce changes and updates at Github | Understand osCommerce a little further at OsCommerce Documentation | Copy and paste your error message in Google add "in osCommerce" at the end to get relevant answers to most issues.