$num_rows = mysql_num_rows($result); if ($VERBOSE == 'YES') { echo "Email Debug:{$num_rows} Employers to email<br>\n"; } $count = 0; while ($user_row = mysql_fetch_array($result, MYSQL_ASSOC)) { $to_name = jb_get_formatted_name($user_row['FirstName'], $user_row['LastName']); if ($user_row['alert_email'] == '') { $to_address = trim($user_row['Email']); } else { $to_address = trim($user_row['alert_email']); } if ($VERBOSE == 'YES') { echo "Email Debug: Processing ({$to_name} {$to_address})<br>"; } if (!JB_validate_mail($to_address)) { if ($VERBOSE == 'YES') { echo "Email Debug: Invalid email address for: |{$to_name}| [{$to_address}] (" . $user_row['ID'] . ") <br>\n"; // to do.. unsubscribe this user } } else { $where_sql = ''; $html_keywords_line = ''; $text_keywords_line = ''; if ($user_row['alert_keywords'] == 'Y') { // Alert filter is enabled! $_Q_STRING = array(); if ($user_row['alert_query'] != '') { $_Q_STRING = unserialize($user_row['alert_query']); } if (is_array($_Q_STRING)) {
<tr><td> From Name:</td><td> <input type="text" name="from_name" value="<?php echo jb_escape_html($_REQUEST['from_name']); ?> "></td></tr> <tr><td colspan="2"> <input type="submit" value="Apply to All" name="set_global"></td></tr> </table> </form> <hr> <?php } if ($_REQUEST['submit'] != '') { if (JB_validate_mail($_REQUEST['EmailFromAddress'])) { $sql = "UPDATE email_templates SET EmailText='" . jb_escape_sql($_REQUEST['EmailText']) . "', EmailFromAddress='" . jb_escape_sql($_REQUEST['EmailFromAddress']) . "', EmailFromName='" . jb_escape_sql($_REQUEST['EmailFromName']) . "', EmailSubject='" . jb_escape_sql($_REQUEST['EmailSubject']) . "', `sub_template`='" . jb_escape_sql($_REQUEST['sub_template']) . "' WHERE EmailID='" . jb_escape_sql($_REQUEST['EmailID']) . "' "; $result = JB_mysql_query($sql) or die(mysql_error()); $sql = "REPLACE INTO `email_template_translations` (`EmailID`, `lang`, `EmailText`, `EmailFromAddress`, `EmailFromName`, EmailSubject, `sub_template`) VALUES (" . jb_escape_sql($_REQUEST['EmailID']) . ", '" . jb_escape_sql($_SESSION["LANG"]) . "', '" . jb_escape_sql($_REQUEST['EmailText']) . "', '" . jb_escape_sql($_REQUEST['EmailFromAddress']) . "', '" . jb_escape_sql($_REQUEST['EmailFromName']) . "', '" . jb_escape_sql($_REQUEST['EmailSubject']) . "', '" . jb_escape_sql($_REQUEST['sub_template']) . "')"; $result = JB_mysql_query($sql) or die(mysql_error()); JB_format_email_translation_table(); $JBMarkup->ok_msg('Template Saved.'); } else { $JBMarkup->ok_msg('Error: From email address is invalid'); } } function email_config_form($email_id) { $result = JB_get_email_template($email_id, $_SESSION['LANG']); $row = mysql_fetch_array($result, MYSQL_ASSOC); if ($row['EmailFromAddress'] == '') {
echo mysql_num_rows($letter_result) . " lists to process"; while ($letter_row = mysql_fetch_array($letter_result, MYSQL_ASSOC)) { if ($letter_row["to"] == "CA") { $table = "`users`"; } if ($letter_row["to"] == "EM") { $table = "`employers`"; } // get the users to send $sql = "SELECT * FROM {$table} WHERE `Newsletter`='1' AND '" . jb_escape_sql($letter_row['create_time']) . "' > `newsletter_last_run` "; $result = JB_mysql_query($sql) or die($sql . mysql_error()); echo "Processing new list<br><br>"; echo mysql_num_rows($result) . " emails to send in this list to:" . $letter_row['to'] . "<br>"; while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { echo "Sending to: " . JB_get_formatted_name($row['FirstName'], $row['LastName']) . " <br>"; if (JB_validate_mail($row['Email'])) { // send the sucker $msg = str_replace("%name%", JB_get_formatted_name($row['FirstName'], $row['LastName']), $letter_row['message']); $msg = str_replace("%username%", $row['Username'], $msg); $msg = str_replace("%email%", $row['Email'], $msg); $subject = $letter_row['subject']; $msg = str_replace("%CANDIDATE_LINK%", JB_BASE_HTTP_PATH . JB_CANDIDATE_FOLDER . "alerts.php?id=" . $row['ID'] . "&key={$val}", $msg); $msg = str_replace("%EMPLOYER_LINK%", JB_BASE_HTTP_PATH . JB_EMPLOYER_FOLDER . "alerts.php?id=" . $row['ID'] . "&key={$val}", $msg); $to = $row['Email']; $from = JB_SITE_CONTACT_EMAIL; // Enter your email adress here JB_queue_mail($to, JB_get_formatted_name($row['FirstName'], $row['LastName']), $from, JB_SITE_NAME, $subject, $msg, '', 30); echo "<hr>Email to:" . jb_escape_html($row['Email']) . " placed on queue<br>"; $now = gmdate("Y-m-d H:i:s"); $sql = "UPDATE {$table} SET `newsletter_last_run`='{$now}' WHERE `ID`='" . jb_escape_sql($row['ID']) . "' "; JB_mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($result)) { $your_email = array_pop(mysql_fetch_row($result)); } } if ($submit != '') { if ($your_email == '') { $error .= $label['taf_email_blank'] . " <br>"; } elseif (!JB_validate_mail($your_email)) { $error .= $label['taf_email_invalid'] . "<br>"; } if ($your_name == '') { $error .= $label['taf_name_blank'] . "<br>"; } if ($to_email == '') { $error .= $label['taf_f_email_blank'] . "<br>"; } elseif (!JB_validate_mail($to_email)) { $error .= $label['taf_f_email_invalid'] . "<br>"; } if ($subject == '') { $error .= $label['taf_subject_blank'] . "<br>"; } // new checks to discourage spam if (!empty($message) && strlen($message) > 140) { // that's about a paragraph, 3 lines $error .= $label['taf_msg_too_long'] . "<br>"; } if (!empty($subject) && strlen($subject) > 35) { $error .= $label['taf_subj_too_long'] . "<br>"; } if (strpos($message, '://') !== false) { // no URLs allowed
function validate_employer() { $username = $this->get_data_value('Username', 4); $password = $this->get_data_value('Password', 4); $fname = $this->get_data_value('FirstName', 4); $lname = $this->get_data_value('LastName', 4); $email = $this->get_data_value('Email', 4); if (!preg_match('#^[a-z0-9À-ÿ\\-_\\.@]+$#Di', $username)) { $this->set_import_error = "Error: Cannot create a new employer account because if invalid username / username was blank [{$username}] "; return false; } if ($password == '') { $this->set_import_error("Error: Cannot create a new employer account because password was blank [{$password}] "); return false; } if ($fname == '') { $this->set_import_error("Error: Cannot create a new employer account because First Name was blank [{$fname}] "); return false; } if ($lname == '') { $this->set_import_error("Error: Cannot create a new employer account because Last Name was blank [{$lname}] "); return false; } if (!JB_validate_mail($email)) { $this->set_import_error("Error: Cannot create a new employer account because email was invalid [{$lname}] "); return false; } return true; }
function JB_validate_employer_data($form_id) { global $label; $errors = array(); if ($_REQUEST['FirstName'] == false) { $errors[] = $label['employer_signup_error_name']; } if ($_REQUEST['LastName'] == false) { $errors[] = $label['employer_signup_error_ln']; } if ($_REQUEST['user_id'] == false) { if ($_REQUEST['Password'] != $_REQUEST['Password2']) { $errors[] = $label['employer_signup_error_pmatch']; } if ($_REQUEST['Username'] == false) { $errors[] = $label["employer_signup_error_user"]; } else { $sql = "SELECT * FROM `employers` WHERE `Username`='" . jb_escape_sql($_REQUEST['Username']) . "' "; $result = JB_mysql_query($sql) or die(mysql_error() . $sql); $row = mysql_fetch_array($result, MYSQL_ASSOC); if ($row['Username'] != false) { $errors[] = str_replace('%username%', jb_escape_html($_REQUEST['Username']), $label['employer_signup_error_inuse']); } elseif (!preg_match('#^[a-z0-9À-ÿ\\-_\\.@]+$#Di', $_REQUEST['Username'])) { $errors[] = $label['employer_signup_error_uname']; } } if ($_REQUEST['Password'] == false) { $errors[] = $label["employer_signup_error_p"]; } elseif (strlen(trim($_REQUEST['Password'])) < 6) { $errors[] = $label['employer_signup_error_pw_too_weak']; } if ($_REQUEST['Password2'] == false) { $errors[] = $label['employer_signup_error_p2']; } } if ($_REQUEST['Email'] == false) { $errors[] = $label["employer_signup_error_email"]; } elseif (!JB_validate_mail($_REQUEST['Email'])) { $errors[] = $label['employer_signup_error_invemail']; } else { if ($_REQUEST['user_id'] == false) { // for new account signups, make sure the email does not already exist $result = JB_mysql_query("SELECT * from `employers` WHERE `Email`='" . jb_escape_sql($_REQUEST['Email']) . "'") or die(mysql_error()); $row = mysql_fetch_array($result, MYSQL_ASSOC); } if ($row['Email'] != false) { $errors[] = $label['employer_signup_email_in_use']; } } if ($_REQUEST['user_id'] != false) { if (!is_numeric($_REQUEST['user_id'])) { return 'Invalid Input!'; } } $_REQUEST['FirstName'] = JB_clean_str($_REQUEST['FirstName']); $_REQUEST['LastName'] = JB_clean_str($_REQUEST['LastName']); $_REQUEST['CompName'] = JB_clean_str($_REQUEST['CompName']); $_REQUEST['Username'] = JB_clean_str($_REQUEST['Username']); $_REQUEST['Email'] = JB_clean_str($_REQUEST['Email']); $_REQUEST['Newsletter'] = JB_clean_str($_REQUEST['Newsletter']); $_REQUEST['Notification1'] = JB_clean_str($_REQUEST['Notification1']); $_REQUEST['Notification2'] = JB_clean_str($_REQUEST['Notification2']); $_REQUEST['lang'] = JB_clean_str($_REQUEST['lang']); $error = ''; JBPLUG_do_callback('valiate_employer_account', $error); if ($error) { $list = explode('<br>', $error); foreach ($list as $item) { $errors[] = $item; } } JBPLUG_do_callback('valiate_employer_account_array', $errors); // added in 3.6.6 ($errors is a list) $errors = $errors + JB_validate_form_data(4); return $errors; }
include 'login_functions.php'; require_once '../include/resumes.inc.php'; JB_process_login(); JB_template_employers_header(); JB_render_box_top(80, $label['employer_request_details_head']); $sql = "SELECT * from `users` where `ID`='" . jb_escape_sql($_REQUEST['user_id']) . "' "; $result = JB_mysql_query($sql) or die(mysql_error()); $candidate = mysql_fetch_array($result, MYSQL_ASSOC); $submit = trim($_REQUEST['submit']); $from = trim($_REQUEST['from']); $reply_to = JB_clean_str(trim($_REQUEST['reply_to'])); $message = JB_clean_str(trim($_REQUEST['message'])); if ($submit != '') { if ($from == '') { $error .= $label["employer_request_details_error_msg1"] . "<br>"; } elseif (!JB_validate_mail($reply_to)) { $error .= $label["employer_request_details_error_msg3"] . "<br> "; } if ($reply_to == '') { $error .= $label["employer_request_details_error_msg2"] . "<br>"; } if (JB_request_was_made($candidate['ID'], $_SESSION['JB_ID']) == false && $error == '') { jb_add_new_request($candidate['ID'], $_SESSION['JB_ID'], 'REQUEST', $message); JB_mysql_query($sql) or die(mysql_error()); $result = JB_mysql_query("SELECT * from `employers` where `ID`='" . $_SESSION['JB_ID'] . "' ") or die(mysql_error()); $employer = mysql_fetch_array($result, MYSQL_ASSOC); $result = JB_get_email_template(4, $_SESSION['LANG']); $e_row = mysql_fetch_array($result, MYSQL_ASSOC); $EmailMessage = $e_row['EmailText']; //$from = $e_row[EmailFromAddress]; //$from_name = $e_row[EmailFromName];
function JB_validate_candidate_data($form_id) { global $label; $errors = array(); if ($_REQUEST['user_id'] == false) { if ($_REQUEST['Username'] == false) { $errors[] = $label["c_signup_error4"]; } else { $result = JB_mysql_query("SELECT * FROM `users` WHERE `Username`='" . jb_escape_sql($_REQUEST['Username']) . "' ") or die(mysql_error() . "we have error"); $row = mysql_fetch_array($result, MYSQL_ASSOC); if ($row['Username'] != '') { $label['c_signup_error5'] = str_replace("%USERNAME%", $row['Username'], $label['c_signup_error5']); $errors[] = $label['c_signup_error5']; } elseif (!preg_match('#^[a-z0-9À-ÿ\\-_\\.@]+$#Di', $_REQUEST['Username'])) { $errors[] = $label['c_signup_error11']; } } if ($_REQUEST['Password'] == false) { $errors[] = $label['c_signup_error6']; } elseif (strlen(trim($_REQUEST['Password'])) < 6) { $errors[] = $label['c_signup_error_pw_too_weak']; } if ($_REQUEST['Password2'] == false) { $errors[] = $label["c_signup_error7"]; } if ($_REQUEST['Password'] != $_REQUEST['Password2']) { $errors[] = $label["c_signup_error1"]; } } if ($_REQUEST['FirstName'] == false) { $errors[] = $label["c_signup_error2"]; } if ($_REQUEST['LastName'] == false) { $errors[] = $label["c_signup_error3"]; } if ($_REQUEST['Email'] == false) { $errors[] = $label["c_signup_error8"]; } elseif (!JB_validate_mail($_REQUEST['Email'])) { $errors[] = $label["c_signup_error8"]; } else { if ($_REQUEST['user_id'] == false) { $result = JB_mysql_query("SELECT * from `users` WHERE `Email`='" . jb_escape_sql($_REQUEST['Email']) . "'") or die(mysql_error()); $row = mysql_fetch_array($result, MYSQL_ASSOC); //validate email "; if ($row['Email'] != '') { $errors[] = " " . $label["c_signup_error10"] . " "; } } } if ($_REQUEST['user_id'] != '') { if (!is_numeric($_REQUEST['user_id'])) { return 'Invalid Input!'; } } $_REQUEST['FirstName'] = JB_clean_str($_REQUEST['FirstName']); $_REQUEST['LastName'] = JB_clean_str($_REQUEST['LastName']); $_REQUEST['Username'] = JB_clean_str($_REQUEST['Username']); $_REQUEST['Email'] = JB_clean_str($_REQUEST['Email']); $_REQUEST['Newsletter'] = JB_clean_str($_REQUEST['Newsletter']); $_REQUEST['Notification1'] = JB_clean_str($_REQUEST['Notification1']); $_REQUEST['Notification2'] = JB_clean_str($_REQUEST['Notification2']); $_REQUEST['lang'] = JB_clean_str($_REQUEST['lang']); JBPLUG_do_callback('valiate_candidate_account', $error); $error = ''; if ($error) { $list = explode('<br>', $error); foreach ($list as $item) { $errors[] = $item; } } JBPLUG_do_callback('valiate_candidate_account_array', $errors); // added in 3.6.6 $errors = $errors + JB_validate_form_data(5); return $errors; }
$error .= $APM->get_error_line($label["app_att_too_big"]); } } if ($_FILES['att3']['name'] != '') { $all1 = JB_is_filetype_allowed($_FILES['att3']['name']); $all2 = JB_is_imagetype_allowed($_FILES['att3']['name']); if ($all1 == false && $all2 == false) { $label['app_att_not_allowed'] = str_replace("%FILE_NAME%", $_FILES['att3']['name'], $label['app_att_not_allowed']); $error .= $APM->get_error_line($label["app_att_not_allowed"]); } if ($_FILES['att3']['error']) { $label['app_att_too_big'] = str_replace("%FILE_NAME%", $_FILES['att3']['name'], $label['app_att_too_big']); $error .= $label['app_att_too_big'] . $APM->get_line_break(); } } if (!JB_validate_mail($EMAIL)) { $error = $label['app_employer_email_invalid'] . $APM->get_line_break(); } $success = false; if ($error != '') { $APM->error_msg($error); } else { $sql = "UPDATE `posts_table` SET `applications`=`applications`+1 WHERE `post_id`='" . jb_escape_sql($post_id) . "' "; JB_mysql_query($sql) or die(mysql_error()); if ($user_id) { // Is the user logged in? // get users' resume // does the user have a resume? $resume_row = array(); $sql = "SELECT resume_id, `anon` FROM resumes_table WHERE user_id='" . jb_escape_sql($user_id) . "' AND `status`='ACT' "; $result = JB_mysql_query($sql) or die(mysql_error());
function JB_validate_form_data() { global $label; $DFM = $this->get_DynamicFormMarkup(); $errors = array(); $sql = "SELECT *, t2.field_label AS LABEL, t2.error_message as error_message FROM form_fields as t1, form_field_translations as t2 WHERE t1.field_id=t2.field_id AND t2.lang='" . JB_escape_sql($_SESSION['LANG']) . "' AND form_id='" . JB_escape_sql($this->form_id) . "' AND field_type != 'SEPERATOR' AND field_type != 'BLANK' AND field_type != 'NOTE' order by field_sort"; $result = JB_mysql_query($sql) or die(mysql_error()); while ($field_row = mysql_fetch_array($result, MYSQL_ASSOC)) { JBPLUG_do_callback('validate_form_data_init_row', $field_row); // fit to database $_REQUEST[$field_row['field_id']] = jb_fit_to_db_size($field_row['field_type'], $_REQUEST[$field_row['field_id']]); $custom_error = null; // The following is a hook for plugins to set a custom error message // plugins should set the $custom_error to the error message or // false if no error message was set JBPLUG_do_callback('validate_form_data_custom_field', $custom_error, $field_row); if ($custom_error !== null) { if ($custom_error) { $errors[] = $DFM->get_error_line($field_row['LABEL'], $custom_error); } continue; } if ($field_row['field_type'] == 'TEXT' || $field_row['field_type'] == 'TEXTAREA' || $field_row['field_type'] == 'EDITOR') { if (JB_check_for_bad_words($_REQUEST[$field_row['field_id']])) { $errors[] = $DFM->get_error_line($field_row['LABEL'], $label['bad_words_not_accept']); } } if ($field_row['field_type'] == 'CATEGORY' && is_numeric($_REQUEST[$field_row['field_id']])) { $sql = "SELECT * FROM categories WHERE category_id='" . jb_escape_sql($_REQUEST[$field_row['field_id']]) . "' "; $cat_result = jb_mysql_query($sql); if ($cat_row = mysql_fetch_array($cat_result)) { if ($cat_row['allow_records'] == 'N') { $errors[] = $DFM->get_error_line($field_row['LABEL'], $label['cat_records_not_allow']); } } } if (JB_BREAK_LONG_WORDS == 'YES') { if ($field_row['field_type'] == 'TEXT' || $field_row['field_type'] == 'TEXTAREA') { // HTML not allowed $_REQUEST[$field_row['field_id']] = trim(stripslashes(JB_break_long_words(addslashes($_REQUEST[$field_row['field_id']]), false))); } elseif ($field_row['field_type'] == 'EDITOR') { // HTML allowed, 2nd arg pass true $_REQUEST[$field_row['field_id']] = trim(addslashes(JB_break_long_words(stripslashes($_REQUEST[$field_row['field_id']]), true))); } } // clean the data.. if (JB_STRIP_LATIN1 == 'YES') { $_REQUEST[$field_row['field_id']] = JB_remove_non_latin1_chars($_REQUEST[$field_row['field_id']]); } if ($field_row['field_type'] == 'EDITOR' || $field_row['field_type'] == 'TEXTAREA') { if (JB_STRIP_HTML == 'YES') { // tags are allowed, remove them except on the white list. $_REQUEST[$field_row['field_id']] = stripslashes($_REQUEST[$field_row['field_id']]); $_REQUEST[$field_row['field_id']] = JB_clean_str($_REQUEST[$field_row['field_id']]); $_REQUEST[$field_row['field_id']] = addslashes($_REQUEST[$field_row['field_id']]); } } if (($field_row['field_type'] == 'FILE' || $field_row['field_type'] == 'IMAGE') && $_FILES[$field_row['field_id']]['name'] != '') { $a = explode(".", $_FILES[$field_row['field_id']]['name']); $ext = array_pop($a); if (!JB_is_filetype_allowed($_FILES[$field_row['field_id']]['name']) && $field_row['field_type'] == 'FILE') { $label['vaild_file_ext_error'] = str_replace("%EXT_LIST%", JB_ALLOWED_EXT, $label['vaild_file_ext_error']); $label['vaild_file_ext_error'] = str_replace("%EXT%", $ext, $label['vaild_file_ext_error']); $errors[] = $DFM->get_error_line($field_row['LABEL'], $label['vaild_file_ext_error']); } if (!JB_is_imagetype_allowed($_FILES[$field_row['field_id']]['name']) && $field_row['field_type'] == 'IMAGE') { $label['vaild_image_ext_error'] = str_replace("%EXT_LIST%", JB_ALLOWED_IMG, $label['vaild_image_ext_error']); $label['vaild_image_ext_error'] = str_replace("%EXT%", $ext, $label['vaild_image_ext_error']); $errors[] = $DFM->get_error_line($field_row['LABEL'], $label['vaild_image_ext_error']); } if (get_cfg_var('open_basedir') == NULL) { // open_basedir disabled // file size check when open_basedir is in effect if (@filesize($_FILES[$field_row['field_id']]['tmp_name']) > JB_MAX_UPLOAD_BYTES) { $label['valid_file_size_error'] = str_replace("%FILE_NAME%", $_FILES[$field_row['field_id']]['name'], $label['valid_file_size_error']); $errors[] = $DFM->get_error_line($field_row['LABEL'], $label['vaild_image_ext_error']); } } } if ($field_row['is_required'] == 'Y') { if ($field_row['field_type'] == 'DATE' || $field_row['field_type'] == 'DATE_CAL') { $field_row['reg_expr'] = 'date'; // default to date check } if ($field_row['field_type'] == 'FILE' || $field_row['field_type'] == 'IMAGE') { if ($_REQUEST[$field_row['field_id']]) { // already uploaded a file, no error } continue; // go to the next item in the while() loop to process the next field. } if ($field_row['field_type'] == 'IMAGE') { continue; } switch ($field_row['reg_expr']) { case "not_empty": if ($field_row['field_type'] == 'GMAP') { if ($_REQUEST[$field_row['field_id'] . '_lat'] == 0 || $_REQUEST[$field_row['field_id'] . '_lng'] == 0) { $errors[] = $DFM->get_error_line($field_row['LABEL'], $field_row['error_message']); } } elseif (trim($_REQUEST[$field_row['field_id']] == '')) { $errors[] = $DFM->get_error_line($field_row['LABEL'], $field_row['error_message']); } break; case "email": if (!JB_validate_mail(trim($_REQUEST[$field_row['field_id']]))) { $errors[] = $DFM->get_error_line($field_row['LABEL'], $field_row['error_message']); } break; case "date": if ($field_row['field_type'] == 'DATE') { $day = $_REQUEST[$field_row['field_id'] . "d"]; $month = $_REQUEST[$field_row['field_id'] . "m"]; $year = $_REQUEST[$field_row['field_id'] . "y"]; } if ($field_row['field_type'] == 'DATE_CAL') { $temp_date = JB_SCWDate_to_ISODate($_REQUEST[$field_row['field_id']]); preg_match('/(\\d+)-(\\d+)-(\\d+)/', JB_SCWDate_to_ISODate($_REQUEST[$field_row['field_id']]), $m); $year = $m[1]; $month = $m[2]; $day = $m[3]; } else { $ts = strtotime($field_row['field_id'] . " GMT"); if ($ts > 0) { $day = date('d', $ts); $month = date('m', $ts); $year = date('y', $ts); } } if ($month == '' || $day == '' || $year == '' || !@checkdate(intval($month), intval($day), intval($year))) { $errors[] = $DFM->get_error_line($field_row['LABEL'], $field_row['error_message']); } break; case 'numeric': if (!is_numeric(trim($_REQUEST[$field_row['field_id']]))) { $errors[] = $DFM->get_error_line($field_row['LABEL'], $field_row['error_message']); } break; default: break; } } } $error = ''; JBPLUG_do_callback('validate_form_data', $error, $this->form_id); if ($error) { $list = explode('<br>', $error); foreach ($list as $item) { $errors[] = $item; } } return $errors; }