2014-05-20 22:41:50 -04:00
< ? php
/*******************************************************************************
* Title : Help Desk Software HESK
2015-08-29 21:44:26 -04:00
* Version : 2.6 . 5 from 28 th August 2015
2014-05-20 22:41:50 -04:00
* Author : Klemen Stirn
* Website : http :// www . hesk . com
********************************************************************************
* COPYRIGHT AND TRADEMARK NOTICE
2015-02-22 22:17:56 -05:00
* Copyright 2005 - 2015 Klemen Stirn . All Rights Reserved .
2014-05-20 22:41:50 -04:00
* HESK is a registered trademark of Klemen Stirn .
* The HESK may be used and modified free of charge by anyone
* AS LONG AS COPYRIGHT NOTICES AND ALL THE COMMENTS REMAIN INTACT .
* By using this code you agree to indemnify Klemen Stirn from any
* liability that might arise from it ' s use .
* Selling the code for this program , in part or full , without prior
* written consent is expressly forbidden .
* Using this code , in part or full , to create derivate work ,
* new scripts or products is expressly forbidden . Obtain permission
* before redistributing this software over the Internet or in
* any other medium . In all cases copyright and header must remain intact .
* This Copyright is in full effect in any country that has International
* Trade Agreements with the United States of America or
* with the European Union .
* Removing any of the copyright notices without purchasing a license
* is expressly forbidden . To remove HESK copyright notice you must purchase
* a license for this script . For more information on how to obtain
* a license please visit the page below :
* https :// www . hesk . com / buy . php
*******************************************************************************/
define ( 'IN_SCRIPT' , 1 );
define ( 'HESK_PATH' , './' );
2015-01-12 23:16:12 -05:00
// Try to detect some simple SPAM bots
if ( ! isset ( $_POST [ 'hx' ]) || $_POST [ 'hx' ] != 3 || ! isset ( $_POST [ 'hy' ]) || $_POST [ 'hy' ] != '' || isset ( $_POST [ 'phone' ]) )
{
header ( 'HTTP/1.1 403 Forbidden' );
exit ();
}
2014-05-20 22:41:50 -04:00
// Get all the required files and functions
require ( HESK_PATH . 'hesk_settings.inc.php' );
require ( HESK_PATH . 'inc/common.inc.php' );
2015-01-12 23:16:12 -05:00
// Are we in maintenance mode?
hesk_check_maintenance ();
// Are we in "Knowledgebase only" mode?
hesk_check_kb_only ();
2014-05-20 22:41:50 -04:00
hesk_load_database_functions ();
require ( HESK_PATH . 'inc/email_functions.inc.php' );
require ( HESK_PATH . 'inc/posting_functions.inc.php' );
2015-08-02 16:14:17 -04:00
require ( HESK_PATH . 'inc/htmLawed.php' );
2014-05-20 22:41:50 -04:00
// We only allow POST requests to this file
if ( $_SERVER [ 'REQUEST_METHOD' ] != 'POST' )
{
header ( 'Location: index.php?a=add' );
exit ();
}
// Check for POST requests larger than what the server can handle
if ( empty ( $_POST ) && ! empty ( $_SERVER [ 'CONTENT_LENGTH' ]) )
{
hesk_error ( $hesklang [ 'maxpost' ]);
}
// Block obvious spammers trying to inject email headers
if ( preg_match ( " / \n | \r | \t |%0A|%0D|%08|%09/ " , hesk_POST ( 'name' ) . hesk_POST ( 'subject' ) ) )
{
header ( 'HTTP/1.1 403 Forbidden' );
exit ();
}
hesk_session_start ();
// A security check - not needed here, but uncomment if you require it
# hesk_token_check();
// Prevent submitting multiple tickets by reloading submit_ticket.php page
if ( isset ( $_SESSION [ 'already_submitted' ]))
{
hesk_forceStop ();
}
// Connect to database
hesk_dbConnect ();
$hesk_error_buffer = array ();
// Check anti-SPAM question
if ( $hesk_settings [ 'question_use' ])
{
$question = hesk_input ( hesk_POST ( 'question' ) );
if ( strlen ( $question ) == 0 )
{
$hesk_error_buffer [ 'question' ] = $hesklang [ 'q_miss' ];
}
elseif ( strtolower ( $question ) != strtolower ( $hesk_settings [ 'question_ans' ]))
{
$hesk_error_buffer [ 'question' ] = $hesklang [ 'q_wrng' ];
}
else
{
$_SESSION [ 'c_question' ] = $question ;
}
}
// Check anti-SPAM image
if ( $hesk_settings [ 'secimg_use' ] && ! isset ( $_SESSION [ 'img_verified' ]))
{
// Using ReCaptcha?
2015-01-12 23:16:12 -05:00
if ( $hesk_settings [ 'recaptcha_use' ] == 1 )
2014-05-20 22:41:50 -04:00
{
require ( HESK_PATH . 'inc/recaptcha/recaptchalib.php' );
$resp = recaptcha_check_answer ( $hesk_settings [ 'recaptcha_private_key' ],
$_SERVER [ 'REMOTE_ADDR' ],
hesk_POST ( 'recaptcha_challenge_field' , '' ),
hesk_POST ( 'recaptcha_response_field' , '' )
);
if ( $resp -> is_valid )
{
$_SESSION [ 'img_verified' ] = true ;
}
else
{
$hesk_error_buffer [ 'mysecnum' ] = $hesklang [ 'recaptcha_error' ];
}
2015-01-12 23:16:12 -05:00
2014-05-20 22:41:50 -04:00
}
2015-01-12 23:16:12 -05:00
// Using ReCaptcha API v2?
elseif ( $hesk_settings [ 'recaptcha_use' ] == 2 )
{
require ( HESK_PATH . 'inc/recaptcha/recaptchalib_v2.php' );
$resp = null ;
$reCaptcha = new ReCaptcha ( $hesk_settings [ 'recaptcha_private_key' ]);
// Was there a reCAPTCHA response?
if ( isset ( $_POST [ " g-recaptcha-response " ]) )
{
$resp = $reCaptcha -> verifyResponse ( $_SERVER [ " REMOTE_ADDR " ], hesk_POST ( " g-recaptcha-response " ) );
}
if ( $resp != null && $resp -> success )
{
$_SESSION [ 'img_verified' ] = true ;
}
else
{
$hesk_error_buffer [ 'mysecnum' ] = $hesklang [ 'recaptcha_error' ];
}
}
2014-05-20 22:41:50 -04:00
// Using PHP generated image
else
{
$mysecnum = intval ( hesk_POST ( 'mysecnum' , 0 ) );
if ( empty ( $mysecnum ) )
{
$hesk_error_buffer [ 'mysecnum' ] = $hesklang [ 'sec_miss' ];
}
else
{
require ( HESK_PATH . 'inc/secimg.inc.php' );
$sc = new PJ_SecurityImage ( $hesk_settings [ 'secimg_sum' ]);
if ( isset ( $_SESSION [ 'checksum' ]) && $sc -> checkCode ( $mysecnum , $_SESSION [ 'checksum' ]) )
{
$_SESSION [ 'img_verified' ] = true ;
}
else
{
$hesk_error_buffer [ 'mysecnum' ] = $hesklang [ 'sec_wrng' ];
}
}
}
}
$tmpvar [ 'name' ] = hesk_input ( hesk_POST ( 'name' ) ) or $hesk_error_buffer [ 'name' ] = $hesklang [ 'enter_your_name' ];
$tmpvar [ 'email' ] = hesk_validateEmail ( hesk_POST ( 'email' ), 'ERR' , 0 ) or $hesk_error_buffer [ 'email' ] = $hesklang [ 'enter_valid_email' ];
if ( $hesk_settings [ 'confirm_email' ])
{
2015-06-23 23:29:16 -04:00
$tmpvar [ 'email2' ] = hesk_validateEmail ( hesk_POST ( 'email2' ), 'ERR' , 0 ) or $hesk_error_buffer [ 'email2' ] = $hesklang [ 'confemail2' ];
2014-05-20 22:41:50 -04:00
2015-06-23 23:29:16 -04:00
// Anything entered as email confirmation?
if ( strlen ( $tmpvar [ 'email2' ]) )
2014-05-20 22:41:50 -04:00
{
2015-06-23 23:29:16 -04:00
// Do we have multiple emails?
if ( $hesk_settings [ 'multi_eml' ] && count ( array_diff ( explode ( ',' , strtolower ( $tmpvar [ 'email' ]) ), explode ( ',' , strtolower ( $tmpvar [ 'email2' ]) ) ) ) == 0 )
{
$_SESSION [ 'c_email2' ] = $_POST [ 'email2' ];
}
// Single email address match
elseif ( ! $hesk_settings [ 'multi_eml' ] && strtolower ( $tmpvar [ 'email' ]) == strtolower ( $tmpvar [ 'email2' ]) )
{
$_SESSION [ 'c_email2' ] = $_POST [ 'email2' ];
}
else
{
// Invalid match
$tmpvar [ 'email2' ] = '' ;
$_POST [ 'email2' ] = '' ;
$_SESSION [ 'c_email2' ] = '' ;
$_SESSION [ 'isnotice' ][] = 'email' ;
$hesk_error_buffer [ 'email2' ] = $hesklang [ 'confemaile' ];
}
2014-05-20 22:41:50 -04:00
}
else
{
$_SESSION [ 'c_email2' ] = $_POST [ 'email2' ];
}
}
$tmpvar [ 'category' ] = intval ( hesk_POST ( 'category' ) ) or $hesk_error_buffer [ 'category' ] = $hesklang [ 'sel_app_cat' ];
2015-01-12 23:16:12 -05:00
// Do we allow customer to select priority?
if ( $hesk_settings [ 'cust_urgency' ])
2014-05-20 22:41:50 -04:00
{
2015-01-12 23:16:12 -05:00
$tmpvar [ 'priority' ] = intval ( hesk_POST ( 'priority' ) );
// We don't allow customers select "Critical". If priority is not valid set it to "low".
if ( $tmpvar [ 'priority' ] < 1 || $tmpvar [ 'priority' ] > 3 )
{
// If we are showing "Click to select" priority needs to be selected
if ( $hesk_settings [ 'select_pri' ])
{
$tmpvar [ 'priority' ] = - 1 ;
$hesk_error_buffer [ 'priority' ] = $hesklang [ 'select_priority' ];
}
else
{
$tmpvar [ 'priority' ] = 3 ;
}
}
}
// Priority will be selected based on the category selected
else
{
$res = hesk_dbQuery ( " SELECT `priority` FROM ` " . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . " categories` WHERE `id`= " . intval ( $tmpvar [ 'category' ]));
if ( hesk_dbNumRows ( $res ) == 1 )
{
$tmpvar [ 'priority' ] = intval ( hesk_dbResult ( $res ) );
}
else
{
$tmpvar [ 'priority' ] = 3 ;
}
2014-05-20 22:41:50 -04:00
}
$tmpvar [ 'subject' ] = hesk_input ( hesk_POST ( 'subject' ) ) or $hesk_error_buffer [ 'subject' ] = $hesklang [ 'enter_ticket_subject' ];
2015-08-02 16:14:17 -04:00
$tmpvar [ 'message' ] = hesk_input ( hesk_POST ( 'message' )) or $hesk_error_buffer [ 'message' ] = $hesklang [ 'enter_message' ];;
2014-05-20 22:41:50 -04:00
// Is category a valid choice?
if ( $tmpvar [ 'category' ])
{
hesk_verifyCategory ();
// Is auto-assign of tickets disabled in this category?
if ( empty ( $hesk_settings [ 'category_data' ][ $tmpvar [ 'category' ]][ 'autoassign' ]) )
{
$hesk_settings [ 'autoassign' ] = false ;
}
}
// Custom fields
2015-09-02 22:04:32 -04:00
$modsForHesk_settings = mfh_getSettings ();
2014-05-20 22:41:50 -04:00
foreach ( $hesk_settings [ 'custom_fields' ] as $k => $v )
{
if ( $v [ 'use' ])
{
2015-09-02 22:04:32 -04:00
if ( $modsForHesk_settings [ 'custom_field_setting' ])
2014-12-29 00:11:32 -05:00
{
$v [ 'name' ] = $hesklang [ $v [ 'name' ]];
}
2015-01-02 00:57:51 -05:00
if ( $v [ 'type' ] == 'checkbox' || $v [ 'type' ] == 'multiselect' )
2014-05-20 22:41:50 -04:00
{
$tmpvar [ $k ] = '' ;
if ( isset ( $_POST [ $k ]))
{
if ( is_array ( $_POST [ $k ]))
{
foreach ( $_POST [ $k ] as $myCB )
{
$tmpvar [ $k ] .= ( is_array ( $myCB ) ? '' : hesk_input ( $myCB ) ) . '<br />' ;;
}
$tmpvar [ $k ] = substr ( $tmpvar [ $k ], 0 , - 6 );
}
}
else
{
if ( $v [ 'req' ])
{
$hesk_error_buffer [ $k ] = $hesklang [ 'fill_all' ] . ': ' . $v [ 'name' ];
}
$_POST [ $k ] = '' ;
}
2015-01-12 23:16:12 -05:00
$_SESSION [ " c_ $k " ] = hesk_POST_array ( $k );
2014-05-20 22:41:50 -04:00
}
elseif ( $v [ 'req' ])
{
$tmpvar [ $k ] = hesk_makeURL ( nl2br ( hesk_input ( hesk_POST ( $k ) )));
2015-01-12 23:16:12 -05:00
$_SESSION [ " c_ $k " ] = hesk_POST ( $k );
2014-05-20 22:41:50 -04:00
if ( ! strlen ( $tmpvar [ $k ]))
{
$hesk_error_buffer [ $k ] = $hesklang [ 'fill_all' ] . ': ' . $v [ 'name' ];
}
2014-12-28 00:50:35 -05:00
if ( $v [ 'type' ] == 'date' )
{
$tmpvar [ $k ] = strtotime ( $_POST [ $k ]);
}
2014-05-20 22:41:50 -04:00
}
else
{
2014-12-28 00:50:35 -05:00
if ( $v [ 'type' ] == 'date' && $_POST [ $k ] != '' )
{
$tmpvar [ $k ] = strtotime ( $_POST [ $k ]);
} else
{
$tmpvar [ $k ] = hesk_makeURL ( nl2br ( hesk_input ( hesk_POST ( $k ))));
}
2014-05-20 22:41:50 -04:00
}
}
else
{
$tmpvar [ $k ] = '' ;
}
}
2015-01-12 23:16:12 -05:00
// Check bans
if ( ! isset ( $hesk_error_buffer [ 'email' ]) && hesk_isBannedEmail ( $tmpvar [ 'email' ]) || hesk_isBannedIP ( $_SERVER [ 'REMOTE_ADDR' ]) )
{
hesk_error ( $hesklang [ 'baned_e' ]);
}
2014-05-20 22:41:50 -04:00
// Check maximum open tickets limit
$below_limit = true ;
if ( $hesk_settings [ 'max_open' ] && ! isset ( $hesk_error_buffer [ 'email' ]) )
{
2015-01-27 21:22:44 -05:00
$res = hesk_dbQuery ( " SELECT COUNT(*) FROM ` " . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . " tickets` WHERE `status` IN (SELECT `ID` FROM ` " . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . " statuses` WHERE `IsClosed` = 0) AND " . hesk_dbFormatEmail ( $tmpvar [ 'email' ]));
2014-05-20 22:41:50 -04:00
$num = hesk_dbResult ( $res );
if ( $num >= $hesk_settings [ 'max_open' ])
{
$hesk_error_buffer = array ( 'max_open' => sprintf ( $hesklang [ 'maxopen' ], $num , $hesk_settings [ 'max_open' ]) );
$below_limit = false ;
}
}
// If we reached max tickets let's save some resources
if ( $below_limit )
{
// Generate tracking ID
$tmpvar [ 'trackid' ] = hesk_createID ();
// Attachments
if ( $hesk_settings [ 'attachments' ][ 'use' ])
{
require_once ( HESK_PATH . 'inc/attachments.inc.php' );
$attachments = array ();
$trackingID = $tmpvar [ 'trackid' ];
for ( $i = 1 ; $i <= $hesk_settings [ 'attachments' ][ 'max_number' ]; $i ++ )
{
$att = hesk_uploadFile ( $i );
if ( $att !== false && ! empty ( $att ) )
{
$attachments [ $i ] = $att ;
}
}
}
$tmpvar [ 'attachments' ] = '' ;
}
// If we have any errors lets store info in session to avoid re-typing everything
if ( count ( $hesk_error_buffer ))
{
$_SESSION [ 'iserror' ] = array_keys ( $hesk_error_buffer );
$_SESSION [ 'c_name' ] = hesk_POST ( 'name' );
$_SESSION [ 'c_email' ] = hesk_POST ( 'email' );
$_SESSION [ 'c_category' ] = hesk_POST ( 'category' );
$_SESSION [ 'c_priority' ] = hesk_POST ( 'priority' );
$_SESSION [ 'c_subject' ] = hesk_POST ( 'subject' );
$_SESSION [ 'c_message' ] = hesk_POST ( 'message' );
$tmp = '' ;
foreach ( $hesk_error_buffer as $error )
{
$tmp .= " <li> $error </li> \n " ;
}
// Remove any successfully uploaded attachments
if ( $below_limit && $hesk_settings [ 'attachments' ][ 'use' ])
{
hesk_removeAttachments ( $attachments );
}
$hesk_error_buffer = $hesklang [ 'pcer' ] . '<br /><br /><ul>' . $tmp . '</ul>' ;
hesk_process_messages ( $hesk_error_buffer , 'index.php?a=add' );
}
2015-08-29 22:10:10 -04:00
if ( ! $modsForHesk_settings [ 'rich_text_for_tickets_for_customers' ]) {
$tmpvar [ 'message' ] = hesk_makeURL ( $tmpvar [ 'message' ]);
$tmpvar [ 'message' ] = nl2br ( $tmpvar [ 'message' ]);
}
2014-05-20 22:41:50 -04:00
2015-01-12 23:16:12 -05:00
// Track suggested knowledgebase articles
if ( $hesk_settings [ 'kb_enable' ] && $hesk_settings [ 'kb_recommendanswers' ] && isset ( $_POST [ 'suggested' ]) && is_array ( $_POST [ 'suggested' ]) )
{
$tmpvar [ 'articles' ] = implode ( ',' , array_unique ( array_map ( 'intval' , $_POST [ 'suggested' ]) ) );
}
2014-05-20 22:41:50 -04:00
// All good now, continue with ticket creation
$tmpvar [ 'owner' ] = 0 ;
$tmpvar [ 'history' ] = sprintf ( $hesklang [ 'thist15' ], hesk_date (), $tmpvar [ 'name' ]);
// Auto assign tickets if aplicable
$autoassign_owner = hesk_autoAssignTicket ( $tmpvar [ 'category' ]);
if ( $autoassign_owner )
{
$tmpvar [ 'owner' ] = $autoassign_owner [ 'id' ];
$tmpvar [ 'history' ] .= sprintf ( $hesklang [ 'thist10' ], hesk_date (), $autoassign_owner [ 'name' ] . ' (' . $autoassign_owner [ 'user' ] . ')' );
}
// Insert attachments
if ( $hesk_settings [ 'attachments' ][ 'use' ] && ! empty ( $attachments ) )
{
foreach ( $attachments as $myatt )
{
hesk_dbQuery ( " INSERT INTO ` " . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . " attachments` (`ticket_id`,`saved_name`,`real_name`,`size`) VALUES (' " . hesk_dbEscape ( $tmpvar [ 'trackid' ]) . " ',' " . hesk_dbEscape ( $myatt [ 'saved_name' ]) . " ',' " . hesk_dbEscape ( $myatt [ 'real_name' ]) . " ',' " . intval ( $myatt [ 'size' ]) . " ') " );
2015-05-27 21:52:26 -04:00
$tmpvar [ 'attachments' ] .= hesk_dbInsertID () . '#' . $myatt [ 'real_name' ] . '#' . $myatt [ 'saved_name' ] . ',' ;
2014-05-20 22:41:50 -04:00
}
}
2015-05-19 22:04:19 -04:00
// Set latitude and longitude
$tmpvar [ 'latitude' ] = hesk_POST ( 'latitude' );
$tmpvar [ 'longitude' ] = hesk_POST ( 'longitude' );
2015-08-19 07:46:52 -04:00
// Set html
2015-09-02 22:04:32 -04:00
$tmpvar [ 'html' ] = $modsForHesk_settings [ 'rich_text_for_tickets_for_customers' ];
2015-08-19 07:46:52 -04:00
2015-09-06 18:34:58 -04:00
// Set screen res and user agent
$tmpvar [ 'screen_resolution_height' ] = hesk_POST ( 'screen_resolution_height' );
$tmpvar [ 'screen_resolution_width' ] = hesk_POST ( 'screen_resolution_width' );
$tmpvar [ 'user_agent' ] = $_SERVER [ 'HTTP_USER_AGENT' ];
2015-01-01 14:13:11 -05:00
// Should the helpdesk validate emails?
$createTicket = true ;
2015-09-02 22:04:32 -04:00
if ( $modsForHesk_settings [ 'customer_email_verification_required' ])
2014-05-20 22:41:50 -04:00
{
2015-01-01 14:13:11 -05:00
$verifiedEmailSql = " SELECT `Email` FROM ` " . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . " verified_emails` WHERE `Email` = ' " . hesk_dbEscape ( $tmpvar [ 'email' ]) . " ' " ;
$verifiedEmailRS = hesk_dbQuery ( $verifiedEmailSql );
if ( $verifiedEmailRS -> num_rows == 0 )
{
//-- email has not yet been verified.
$ticket = hesk_newTicket ( $tmpvar , false );
2014-12-30 00:29:37 -05:00
2015-01-01 14:13:11 -05:00
//-- generate the activation key, which is a hash of their email address along with the current time.
$unhashedKey = $tmpvar [ 'email' ] . time ();
2015-01-02 00:40:41 -05:00
$key = hash ( 'sha512' , $unhashedKey );
2014-12-30 00:29:37 -05:00
2015-01-01 14:13:11 -05:00
$escapedEmail = hesk_dbEscape ( $tmpvar [ 'email' ]);
$escapedKey = hesk_dbEscape ( $key );
hesk_dbQuery ( " INSERT INTO ` " . hesk_dbEscape ( $hesk_settings [ 'db_pfix' ]) . " pending_verification_emails` (`Email`, `ActivationKey`)
2014-12-30 00:29:37 -05:00
VALUES ( '".$escapedEmail."' , '".$escapedKey."' ) " );
2015-09-03 21:58:05 -04:00
hesk_notifyCustomerForVerifyEmail ( 'verify_email' , $key , $modsForHesk_settings );
2015-01-01 14:13:11 -05:00
$createTicket = false ;
}
}
if ( $createTicket )
2014-05-20 22:41:50 -04:00
{
2014-12-30 00:18:30 -05:00
//-- email has been verified, and a ticket can be created
$ticket = hesk_newTicket ( $tmpvar );
// Notify the customer
2015-01-12 23:16:12 -05:00
if ( $hesk_settings [ 'notify_new' ])
{
2015-09-03 21:58:05 -04:00
hesk_notifyCustomer ( $modsForHesk_settings );
2015-01-12 23:16:12 -05:00
}
2014-12-30 00:18:30 -05:00
// Need to notify staff?
// --> From autoassign?
if ( $tmpvar [ 'owner' ] && $autoassign_owner [ 'notify_assigned' ])
{
2015-09-03 21:58:05 -04:00
hesk_notifyAssignedStaff ( $autoassign_owner , 'ticket_assigned_to_you' , $modsForHesk_settings );
2014-12-30 00:18:30 -05:00
}
// --> No autoassign, find and notify appropriate staff
elseif ( ! $tmpvar [ 'owner' ] )
{
2015-09-03 21:58:05 -04:00
hesk_notifyStaff ( 'new_ticket_staff' , " `notify_new_unassigned` = '1' " , $modsForHesk_settings );
2014-12-30 00:18:30 -05:00
}
2014-05-20 22:41:50 -04:00
}
// Next ticket show suggested articles again
$_SESSION [ 'ARTICLES_SUGGESTED' ] = false ;
$_SESSION [ 'already_submitted' ] = 1 ;
// Need email to view ticket? If yes, remember it by default
if ( $hesk_settings [ 'email_view_ticket' ])
{
setcookie ( 'hesk_myemail' , $tmpvar [ 'email' ], strtotime ( '+1 year' ));
}
// Unset temporary variables
unset ( $tmpvar );
hesk_cleanSessionVars ( 'tmpvar' );
hesk_cleanSessionVars ( 'c_category' );
hesk_cleanSessionVars ( 'c_priority' );
hesk_cleanSessionVars ( 'c_subject' );
hesk_cleanSessionVars ( 'c_message' );
hesk_cleanSessionVars ( 'c_question' );
hesk_cleanSessionVars ( 'img_verified' );
// Print header
require_once ( HESK_PATH . 'inc/header.inc.php' );
?>
< ol class = " breadcrumb " >
< li >< a href = " <?php echo $hesk_settings['site_url'] ; ?> " >< ? php echo $hesk_settings [ 'site_title' ]; ?> </a></li>
< li >< a href = " <?php echo $hesk_settings['hesk_url'] ; ?> " >< ? php echo $hesk_settings [ 'hesk_title' ]; ?> </a></li>
< li class = " active " >< ? php echo $hesklang [ 'tid_sent' ]; ?> </li>
</ ol >
< div style = " width: 80%; margin-left: auto; margin-right: auto; " >
< ? php
2015-01-01 17:00:55 -05:00
if ( $createTicket ) {
// Show success message with link to ticket
hesk_show_success (
2014-05-20 22:41:50 -04:00
2015-01-01 17:00:55 -05:00
$hesklang [ 'ticket_submitted' ] . '<br /><br />' .
2015-01-12 23:16:12 -05:00
$hesklang [ 'ticket_submitted_success' ] . ': <b>' . $ticket [ 'trackid' ] . '</b><br /><br /> ' .
( $hesk_settings [ 'notify_new' ] && $hesk_settings [ 'spam_notice' ] ? $hesklang [ 'spam_inbox' ] . '<br /><br />' : '' ) .
'<a href="' . $hesk_settings [ 'hesk_url' ] . '/ticket.php?track=' . $ticket [ 'trackid' ] . '">' . $hesklang [ 'view_your_ticket' ] . '</a>'
2015-01-01 17:00:55 -05:00
);
} else
{
hesk_show_notice ( $hesklang [ 'verify_your_email' ] . '<br><br>' . $hesklang [ 'check_spambox' ]);
}
2014-05-20 22:41:50 -04:00
// Any other messages to display?
hesk_handle_messages ();
?>
</ div >
< ? php
require_once ( HESK_PATH . 'inc/footer.inc.php' );
exit ();
function hesk_forceStop ()
{
global $hesklang ;
?>
< html >
< head >
< meta http - equiv = " Refresh " content = " 0; url=index.php?a=add " />
</ head >
< body >
< p >< a href = " index.php?a=add " >< ? php echo $hesklang [ 'c2c' ]; ?> </a>.</p>
</ body >
</ html >
< ? php
exit ();
} // END hesk_forceStop()
?>