mc12345678:
I don't have ready access to the fileset, but when looking at the default version of includes/modules/pages/contact_us/header_php.php there is a similar check for empty fields. The information that has been commented out is the "error" message that is presented because an earlier check (presumably !empty($subject)) failed and prevented processing the email.
Because the alert was commented out, this is why you don't see anything related to the message whether an error or success.
Typically just around the check for antispam, is a test for all of the "necessary" values being empty or not. If you are going to allow your customers to submit a form with an empty value, it may be best to check for that empty value and if it is empty to then substitute something applicable instead of the form being submitted without content being present.
Ultimately if you don't want to worry about that extra field, then you would want to completely remove it, that would be to comment it out on the template file and then to also comment out any related logic in the header file... such an action may affect page layout, but at least then it would be omitted.
Much thanks for pointing out the things !
According to your suggestion I deleted the previous // and changed the code in the header_php.php as follows:
<?php
/**
* Contact Us Page
*
* @package page
* @copyright Copyright 2003-2012 Zen Cart Development Team
* @copyright Portions Copyright 2003 osCommerce
* @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
* @version GIT: $Id: Author: DrByte Sat Jul 21 16:05:31 2012 -0400 Modified in v1.5.1 $
* Updated Contact Us Subject for v1.5.1 by Judy Gunderson (stellarweb) 2013-08-16
*/
// This should be first line of the script:
$zco_notifier->notify('NOTIFY_HEADER_START_CONTACT_US');
require(DIR_WS_MODULES . zen_get_module_directory('require_languages.php'));
$error = false;
if (isset($_GET['action']) && ($_GET['action'] == 'send')) {
$name = zen_db_prepare_input($_POST['contactname']);
$email_address = zen_db_prepare_input($_POST['email']);
$subject = zen_db_prepare_input($_POST['subject']);
$enquiry = zen_db_prepare_input(strip_tags($_POST['enquiry']));
$antiSpam = isset($_POST['should_be_empty']) ? zen_db_prepare_input($_POST['should_be_empty']) : '';
$zco_notifier->notify('NOTIFY_CONTACT_US_CAPTCHA_CHECK');
$zc_validate_email = zen_validate_email($email_address);
//if ($zc_validate_email and !empty($enquiry) and !empty($name) I deleted this==>and !empty($subject) <== && $error == FALSE) {
if ($zc_validate_email and !empty($enquiry) and !empty($name) && $error == FALSE) {
// if anti-spam is not triggered, prepare and send email:
if ($antiSpam != '') {
$zco_notifier->notify('NOTIFY_SPAM_DETECTED_USING_CONTACT_US');
} elseif ($antiSpam == '') {
// auto complete when logged in
if($_SESSION['customer_id']) {
$sql = "SELECT customers_id, customers_firstname, customers_lastname, customers_password, customers_email_address, customers_default_address_id
FROM " . TABLE_CUSTOMERS . "
WHERE customers_id = :customersID";
$sql = $db->bindVars($sql, ':customersID', $_SESSION['customer_id'], 'integer');
$check_customer = $db->Execute($sql);
$customer_email= $check_customer->fields['customers_email_address'];
$customer_name= $check_customer->fields['customers_firstname'] . ' ' . $check_customer->fields['customers_lastname'];
} else {
$customer_email = NOT_LOGGED_IN_TEXT;
$customer_name = NOT_LOGGED_IN_TEXT;
}
// use contact us dropdown if defined
if (CONTACT_US_LIST !=''){
$send_to_array=explode("," ,CONTACT_US_LIST);
preg_match('/\<[^>]+\>/', $send_to_array[$_POST['send_to']], $send_email_array);
$send_to_email= preg_replace ("/>/", "", $send_email_array[0]);
$send_to_email= trim(preg_replace("/</", "", $send_to_email));
$send_to_name = trim(preg_replace('/\<[^*]*/', '', $send_to_array[$_POST['send_to']]));
} else { //otherwise default to EMAIL_FROM and store name
$send_to_email = trim(EMAIL_FROM);
$send_to_name = trim(STORE_NAME);
}
// Prepare extra-info details
$extra_info = email_collect_extra_info($name, $email_address, $customer_name, $customer_email);
// Prepare Text-only portion of message
$text_message = OFFICE_FROM . "\t" . $name . "\n" .
OFFICE_EMAIL . "\t" . $email_address . "\n\n" .
'------------------------------------------------------' . "\n\n" .
strip_tags($_POST['enquiry']) . "\n\n" .
'------------------------------------------------------' . "\n\n" .
$extra_info['TEXT'];
// Prepare HTML-portion of message
$html_msg['EMAIL_MESSAGE_HTML'] = strip_tags($_POST['enquiry']);
$html_msg['CONTACT_US_OFFICE_FROM'] = OFFICE_FROM . ' ' . $name . '<br />' . OFFICE_EMAIL . '(' . $email_address . ')';
$html_msg['EXTRA_INFO'] = $extra_info['HTML'];
// Send message
zen_mail($send_to_name, $send_to_email, $subject, $text_message, $name, $email_address, $html_msg,'contact_us');
}
zen_redirect(zen_href_link(FILENAME_CONTACT_US, 'action=success'));
} else {
$error = true;
if (empty($name)) {
$messageStack->add('contact', ENTRY_EMAIL_NAME_CHECK_ERROR);
}
if (empty($subject)) {
$messageStack->add('contact', ENTRY_EMAIL_SUBJECT_CHECK_ERROR);
}
if ($zc_validate_email == false) {
$messageStack->add('contact', ENTRY_EMAIL_ADDRESS_CHECK_ERROR);
}
if (empty($enquiry)) {
$messageStack->add('contact', ENTRY_EMAIL_CONTENT_CHECK_ERROR);
}
}
} // end action==send
// default email and name if customer is logged in
if($_SESSION['customer_id']) {
$sql = "SELECT customers_id, customers_firstname, customers_lastname, customers_password, customers_email_address, customers_default_address_id
FROM " . TABLE_CUSTOMERS . "
WHERE customers_id = :customersID";
$sql = $db->bindVars($sql, ':customersID', $_SESSION['customer_id'], 'integer');
$check_customer = $db->Execute($sql);
$email_address = $check_customer->fields['customers_email_address'];
$name= $check_customer->fields['customers_firstname'] . ' ' . $check_customer->fields['customers_lastname'];
}
$send_to_array = array();
if (CONTACT_US_LIST !=''){
foreach(explode(",", CONTACT_US_LIST) as $k => $v) {
$send_to_array[] = array('id' => $k, 'text' => preg_replace('/\<[^*]*/', '', $v));
}
}
// include template specific file name defines
$define_page = zen_get_file_directory(DIR_WS_LANGUAGES . $_SESSION['language'] . '/html_includes/', FILENAME_DEFINE_CONTACT_US, 'false');
$breadcrumb->add(NAVBAR_TITLE);
// This should be the last line of the script:
$zco_notifier->notify('NOTIFY_HEADER_END_CONTACT_US');
All of this was made because I wanted to make a telephone field so the customer could write his telephone number when contacting but on the other hand I did not want it to be a must / required field.
(The telephone field is the subject field)
[I explain also to othersss...]
Thanks again Mc8!