HESK™ PHP Help Desk Software
- Version: 2.2 from 9th June 2010
- Author: Klemen Stirn
- Help Desk Software HESK
- PHP Scripts from PHPJunkyard.com
- Support and developers forum
INDEX
- Copyright and trademark notice
- Description, requirements and and thanks
- Installation
- Upgrading from old versions
- HELP and Troubleshooting
- Customizing HESK
- More free scripts, newsletter, ratings...
- Changelog
COPYRIGHT AND TRADEMARK NOTICE
Copyright 2005-2010 Klemen Stirn. All Rights Reserved. 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 copyright notice ("Powered by" links)
Removing any of the copyright notices without purchasing a license is expressly forbidden. To remove HESK copyright notice you must purchase a license. For more information on how to obtain a license please visit the page below:
https://www.hesk.com/buy.php
DESCRIPTION
A free PHP/MySQL Web based Help Desk Software.
What's new in 2.2
- assign owners to tickets (assign tickets to individual staff members)
- admin panel shows last repliers' name
- more information can be entered into e-mails (category, message, ticket owner, custom fields)
- staff can now submit tickets
- added reporting features
- added staff private messages
- check for duplicate tracking ID
- improved ticket searching
- fixed bug where edit_post rewrites session variables when register_globals is enabled
- fixed bug where e-mails and URLs don't show correctly when editing ticket
- fixed bug where last replier didn't show correctly after deleting a post
- lock/unlock individual tickets
- new way of suggesting KB articles
- ticket history log (who closed, opened, locked or unlocked a ticket)
- more user-friendly error and success message handling
- added checks to fight CSRF-type attacks
- generate URLs that will pre-load category selection when submitting new tickets
- settings will now accept localhost URLs
- purge attachments when the ticket is deleted
- disable customer setting ticket priority level
- a number of minor changes and fixes.
REQUIREMENTS
- A server with working PHP 4.3.2 or newer and MySQL 4.0 or newer
THANKS TO
I would like to say THANKS to everyone who in any way contributed to the development of this script, especially to (in no particular order):
- Mauricio Samy Silva, designed the nice readme file you are just reading (www)
- Everyone who supports my work by purchasing a license
- Everyone who posts their suggestions, comments and feedback on the PHPJunkyard forum
» Installation
Please take 5 minutes and read the installation instructions carefully and completely! This will ensure a proper and easy installation.
If you have problems/questions see the "HELP and TroubleshootingP" section further down.
Before installing HESK you will need to obtain your MySQL database information, such as database name, database user and password. You need to get this information from your HOSTING COMPANY, HESK CANNOT help you find it.
-
Connect via FTP to the public folder of your server where the rest of your Web site is, usually called "public_html," "www" or "site," and create a folder where you will install HESK (for example named "hesk" or "support").
Example: /public_html/hesk
Corresponding URL: http://www.yourdomain.com/heskTIP: Learn how to FTP and CHMOD files, read my simple FTP and CHMOD tutorial
-
Upload folder "img" and images inside to your server in BINARY mode and all other HESK files and folders to your server in ASCII mode.
-
Make sure the following files/folders are writable by the script:
- file hesk_settings.inc.php - on Unix (Linux) servers CHMOD this file to 666 (rw-rw-rw-)
- directory attachments - on Unix (Linux) servers CHMOD this directory to 777 (rwxrwxrwx) -
Open hesk/install in your browser, for example:
http://www.yourdomain.com/hesk/install
(modify the URL to show the HESK install folder on your server) -
The HESK setup script will display on the install URL. Click New install and follow instructions through 4 steps:
- STEP 1: License agreement - read the HESK License agreement and confirm that you agree with the terms.
- STEP 2: Check setup - the script will test your server to see if all required settings are correct and advise solutions to any problems.
- STEP 3: Database settings - enter your MySQL database settings and the setup script will test them.
You need to get correct MySQL database information from your hosting company! - STEP 4: Setup database tables - everything OK so the script will install MySQL tables.
-
Before closing the upgrade script DELETE the "install" directory from your server!
-
Well done, now it's time to setup your help desk! Click the Continue link in the install script or open the admin folder in your browser, for example:
http://www.yourdomain.com/hesk/admin/
Login using
-> Default username: Administrator
-> Default password: admin
Click the Settings link in the top menu to get to the settings page (if not already there) -
Take some time and get familiar with all the available settings. Most should be self-explanatory, for additional information about each setting click the [?] link for help about the current setting.
Don't forget to click the Save changes button at the bottom of the settings page to save your settings!
-
Things to do next
Click the "Profile" link to set your name, e-mail, signature and *** CHANGE YOUR PASSWORD ***.
To create additional staff accounts visit the "Users" page. The default user (Administrator) cannot be deleted.
Add new categories (departments) on the "Categories" page. The default category cannot be deleted, but it can be renamed.
You can create canned responses on the "Canned responses" page. These are pre-written replies to common support questions.
To access and manage your knowledgebase click the "Knowledgebase" link. Knowledgebase is a collection of answers to frequently asked questions (FAQ) and articles which provide self-help resources to your customers. A comprehensive and well-written knowledgebase can drastically reduce the number of support tickets you receive and save a lot of your time. You can arrange articles into categories and sub categories.
Your customers will be able to post tickets on the index page:
http://www.yourdomain/hesk/index.php
or just
http://www.yourdomain/heskIf you have problems/questions see the "HELP and Troubleshooting" section further down.
-
Enjoy using HESK!
» Upgrading from old versions
Please take 5 minutes and read the upgrade instructions carefully and completely! This will ensure a proper and easy upgrade.
Known upgrade issues
There are some known issues when upgrading from version 2.1 or older:
- HESK language will be reset to English as new text has been added. You can install additional languages later following instructions further down the page.
- There is a chance your login password will not work anymore after upgrade. If this happens you will need to reset your password.
- all "Open" tickets' status will be changed to "Waiting reply"
- the "Last update" date will actually show the ticket creation date for all existing (old) tickets until a new reply is added.
- the "Last replier" will show "Customer" for all existing (old) tickets until a new reply is added.
TIP: Perform the upgrade in low-traffic hours when your Web site receives the least amount of visits.
To upgrade HESK to version 2.2 follow these steps:
-
BACKUP YOUR EXISTING HESK DATABASE AND FILES! Don't skip this step! Really, don't!
TIP: Most Web hosts allow you to backup files and databases from your control panel. Contact your host if not sure how to do that. -
Delete or rename these folders located inside your main Hesk folder:
- /emails/
- /language/
Depending on the version you are upgrading from, the Hesk upgrade script might instruct you to delete additional files.
-
Upload ALL HESK files to your server EXCEPT these ones (do NOT upload these files):
- hesk_settings.inc.php
- header.txt
- footer.txtThe "img" folder and images inside must be transferred to your server in BINARY mode and all other HESK files and folders in ASCII mode.
-
Make sure the following files/folders are writable by the script:
- file hesk_settings.inc.php - on Unix (Linux) servers CHMOD this file to 666 (rw-rw-rw-)
- directory attachments - on Unix (Linux) servers CHMOD this directory to 777 (rwxrwxrwx) -
Open hesk/install in your browser, for example:
http://www.yourdomain.com/hesk/install
(modify the URL to show the HESK install folder on your server) -
HESK setup script will show up on the install URL. Click Update existing install and follow instructions. The update consists of 4 steps:
- STEP 1: License agreement - read the HESK License agreement and confirm that you agree with the terms.
- STEP 2: Check setup - the script will test your server to see if all required settings are correct and advise solutions to any problems.
- STEP 3: Database settings - check your MySQL database settings and the script will test them.
The settings must be the same as with your old HESK installation - STEP 4: Update database tables - everything OK, the script will update your existing MySQL tables to version 2.1.
-
Before closing the upgrade script, DELETE the "install" directory on your server!
-
Click the Continue link in update script or open admin.php in your browser, for example:
http://www.yourdomain.com/hesk/admin/
Login using username Administrator and your password, then click the Settings link in the top menu to get to the settings page (if not already there). -
Take some time and get familiar with all the new available settings. Most should be self-explanatory, for additional information about each setting click the [?] link for help about the current setting.
Don't forget to click the Save changes button at the bottom of the settings page to save your settings!
-
If you purchased a HESK License in the past you might need to download and install a new copy of the license from License Manager.
-
If you have problems/questions see the "HELP and Troubleshooting" section further down.
-
Enjoy using HESK!
» HELP and Troubleshooting
1. What is CHMOD and FTP?
I have prepared a simple FTP and CHMOD tutorial that will help you FTP files to your server and set correct CHMOD settings.
2. I did CHMOD hesk_settings.inc.php and attachments folder, but I still get an error.
CHMOD doesn't work on all servers, Windows (IIS) servers, for example, don't understand CHMOD command. You need to make sure the Internet Guest Account (IUSR) has permission to modify, write and read the required files. Further instructions can be found HERE.
In case you still can't get it to work, contact your hosting company and ask them to set modify/write/read permissions for file hesk_settings.inc.php and directory attachments.
3. The security image doesn't show up correctly.
For the image to work your server must have GD library installed. You can test if your server supports all the required functions by uploading the gd_test.php file to your server and open it in your browser. If you get an error or empty page when opening gd_test.php you should either ask your hosting company to install the GD library for PHP or disable the anti-SPAM image in the HESK admin panel under "Settings"
4. The installation (or upgrade) script doesn't move from the "License agreement" page.
You did check that you agree with the license agreement, didn't you? In that case your server probably has problems with PHP sessions. Download Session test files, upload them to your server and open session_test.php in your browser.
Click the CLICK HERE FOR PAGE 2 link. If you get "$_SESSION['test'] is set to:" FALSE contact your hosting company and ask them to check if PHP session are working normally. If you get TRUE instead of FALSE the problem is something else, try searching for help PHPJunkyard Support forum.
5. I get an Your session has expired error when trying to login to admin panel.
Your server probably has problems with PHP sessions. Download Session test files, upload them to your server and open session_test.php in your browser.
Click the CLICK HERE FOR PAGE 2 link. If you get "$_SESSION['test'] is set to:" FALSE contact your hosting company and ask them to check if PHP session are working normally. If you get TRUE instead of FALSE the problem is something else, try searching for help PHPJunkyard Support forum.
6. HESK doesn't send out ticket e-mails
HESK uses the standard PHP mail() command so if sending out e-mails isn't working there are two common problems:
- Some servers restrict sending e-mails from scripts to local domains only (i.e. domains hosted on the server). If you can receive e-mails to something@YOURDOMAIN.com but not to third-party domains (for example something@YAHOO.com) this is probably the case. Contact your hosting company and ask them to remove the restriction.
- If no e-mails at all are sent then the PHP mail() function is probably not configured properly. Contact your hosting company and ask them to check if PHP mail() is enabled and working correctly.
7. File uploads don't work.
For file uploads to work your server must have file.uploads enabled in the PHP configuration and the attachments folder must be writable by HESK. There are also other PHP settings that can limit file uploads, especially the size and number of attachments. Usually keeping the attachment size limit under 2 Mb (2048 Kb) works, but also try lower values, for example 0.5 Mb (512 Kb).
Important PHP settings for file uploads are upload_max_filesize, upload_tmp_dir, post_max_size and max_input_time directives in php.ini. If you are not sure what your settings are, you will need to contact your hosting company and ask them what file size limits should you use for file uploads.
8. What do statuses mean (New, Replied, Waiting Reply, Resolved)?
- New - newely created ticket with no replies yet.
- Waiting reply - this tickets waits for your reply.
- Replied - you have replied to this ticket, waiting for reply from other party.
- Resolved (Closed) - the ticket has been resolved, no more replies necessary.
9. I am still having problems!
Visit the HESK Knowledgebase for more suggestions.
Since this script is free no support is guaranteed. If you can't get the script to work please go through this readme file again carefully and repeat the installation step-by-step (delete old files and folders from the server then try again).
» Customize the look
You may add your header HTML code to header.txt and footer HTML code to footer.txt file. This code will then be used throughout the HESK. You will have to use full image URLs in the code. For example instead of
<img src="images/image.jpg" ... > use
<img src="http://www.yourdomain.com/images/image.jpg" ... >!
Same goes for any Javascripts or CSS files if you are calling them from within the header or footer.
You may also edit the style.css file to customize colors and fonts of your helpdesk. The code inside is CSS (Cascading Style Sheets); you can learn CSS here (it's quite simple and you can easily edit all colors with it).
» Translate HESK to your language
HESK supports multiple languages, translating it to your language is easy.
To translate HESK to your language follow these steps:
- Go to your language folder and copy the default en folder entirely into a new one, for example named fr (for French).
- Go to the new ("fr") folder and open the text.php file inside in a plain text editor like Notepad or Wordpad.
- Edit the language file header (first lines that start with *) with your information. Please follow the provided format.
- Translate all lines containing text. You may translate only the right side of each line, for example:
$hesklang['DO_NOT_CHANGE_THIS']='TRANSLATE WORDS HERE';
When translating make sure to:
- keep the line format: single quotes (') around each phrase and lines must end with a semi-colon (;)
- if you use single quotes in the words escape them with a backslash (\). WRONG: can't CORRECT: can\'t
- do not change special codes such as %s and %d as they are used by HESK
- Language name is stored in the
$hesklang['LANGUAGE']='English';
variable, change it for example to:
$hesklang['LANGUAGE']='Francais'; - The character encoding is set in the
$hesklang['ENCODING']='iso-8859-1';
variable. Change it to the encoding your website uses. If not sure you can set it to:
$hesklang['ENCODING']='utf-8';
- Save changes to the text.php file
- Translate all the text files inside emails folder (language/fr/email). More information about translating e-mails can be found further down this page.
- Upload the entire new language folder to the server, for example, upload contents of the fr folder to:
http://www.domain.com/hesk/language/fr - Open the text.php file in your browser to check syntax, for example:
http://www.domain.com/hesk/language/fr/text.php
If everything is OK you should get a message saying "No syntax errors detected in /text.php". If you get any errors then the PHP syntax is wrong. The error should give you line number with error, check syntax around that line (make sure that line and the line before end with ";", single quotes must be escaped with \' etc.). - Login to your HESK administration panel and go to Settings.
- Is your new language listed under Language Settings > Default Language?
If yes, the language has been installed properly. You can make it the HESK default language by choosing it and clicking the Save Changes button at the bottom of the Settings page.
If no, something is wrong. Clicking the Test language folder link and it will list all the folders located in the language folder and reason(s) why the language isn't installed. - To finish language install don't forget to click the Save Changes button at the bottom of the settings page!
- Test HESK with the new language and make sure it works OK.
If you want to allow your customers to choose a language from all the installed HESK languages, enable the Multiple languages setting (set it to YES). If you provide support in one (default) language, leave it disabled (set it to NO).
If you translate HESK to your language, please post it to the PHPJunkyard forum for others to download.
» Customize e-mail messages
You can easily customize or translate e-mail messages sent by HESK. E-mail message templates can be found in the "emails" folder located inside each sub-folder of the language folder (one e-mails folder per language):
category_changed.txt - e-mail sent to notify staff when a ticket category is changed
forgot_ticket_id.txt - e-mail reminder sent if someone forgot (lost) their ticket tracking number.
new_pm.txt - you received new private message (mail) from another staff member.
new_reply_by_customer.txt - e-mail sent to staff (you) when the customer replies to the ticket.
new_reply_by_staff.txt - e-mail sent to the customer who submitted the ticket after you (your staff) respond to the ticket.
new_ticket.txt - e-mail sent to the person who submits a new ticket.
new_ticket_staff.txt - e-mail sent to staff (you) when someone submits a new ticket.
ticket_assigned_to_you.txt - e-mail sent to staff (you) when a new ticket is assigned to you.
Simply edit the e-mail template files and upload them over the original files. You can use these special tags in the templates and they will be replaced with actual values by HESK:
| Special tag | Replaced with |
|---|---|
| %%NAME%% | customer name |
| %%SUBJECT%% | ticket subject |
| %%TRACK_ID%% | ticket tracking ID |
| %%TRACK_URL%% | ticket URL |
| %%SITE_TITLE%% | Web site title |
| %%SITE_URL%% | Web site URL (as set on settings page) |
| %%MESSAGE%% | Message written by the customer or staff. |
| %%CUSTOM1%% ... %%CUSTOM20%% |
Value of custom field 1 (or custom field 20 in the second case). |
NOTE: file new_pm.txt (new private message (PM) received) only supports these tags:
%%NAME%% - name of the staff member who sent the PM
%%SUBJECT%% - subject of the PM
%%TRACK_URL%% - URL of the PM
%%SITE_TITLE%% - website title
%%SITE_URL%% - website URL
You can turn off e-mail notifications on the "Profile" page (customers will still receive them).
» More FREE PHP Scripts
Get more FREE PHP scripts from PHPJunkyard, visit: PHP Scripts.
» Please rate this script
If you like this script please rate it or even write a review at:
Rate this Script @ The PHP Resource Index
Rate this Script @ Hot Scripts
CHANGELOG
Changes in 2.2
- assign owners to tickets (assign tickets to individual staff members)
- admin panel shows last repliers' name
- more information can be entered into e-mails (category, message, ticket owner, custom fields)
- staff can now submit tickets
- added reporting features
- added staff private messages
- check for duplicate tracking ID
- improved ticket searching
- fixed bug where edit_post rewrites session variables when register_globals is enabled
- fixed bug where e-mails and URLs don't show correctly when editing ticket
- fixed bug where last replier didn't show correctly after deleting a post
- lock/unlock individual tickets
- new way of suggesting KB articles
- ticket history log (who closed, opened, locked or unlocked a ticket)
- more user-friendly error and success message handling
- added checks to fight CSRF-type attacks
- generate URLs that will pre-load category selection when submitting new tickets
- settings will now accept localhost URLs
- purge attachments when the ticket is deleted
- disable customer setting ticket priority level
- a number of minor changes and fixes.
Changes in 2.1
- Full support for multiple languages
- Knowledgebase articles can now have attachments
- Increased custom fields number to 20
- Checkboxes now supported as custom fields
- Autologin feature
- Staff can edit all ticket details
- New redirect options after replying to a ticket (settable in Profile)
- Canned responses can be appended to the message instead of replacing it
- A read-only access to private knowledgebase by all staff
- Fixed numerous small bugs and issues thanks to large code testing and screening
- Improved security
- HESK moved to www.hesk.com Web site, links within the script updated accordingly
Changes in 2.0
- Updated user interface
- Fully featured knowledge base (categories, articles (counting views, able to rate), search, ...)
- Display of latest and top articles
- Before a ticket is submitted HESK will suggest matching Knowledgebase articles
- You can add notes to tickets (hidden from customer, viewable by staff)
- Limit features for staff (not just Administrator/Staff, now you can enable/disable individual features for individual users)
- Rating of staff replies (Helpful/Not helpful)
- Up to 10 custom field now
- Custom fields can be text, textarea, select or radio button
- Disable list users in admin
- Remember staff username
- Default ticket listing by status (new, waiting reply first) then priority
- Staff passwords encrypted - not simple SHA1, but multiple times
- Admin files moved to "admin" folder
- Added prefix to database names
- Autoclose tickets after X days
- Adjust server time to match your local time
- Updated anti-SPAM features
- And many other changes
Changes in 0.94.1
- Fixed an XSS vulnerability on some servers (reported by Nemanja Avramovic, www)
- Changed the way file uploads are handled
Changes in 0.94
- Added support for custom fields (up to 5)
- Added file attachments
- Added anti-SPAM security image
- Added canned responses
- Settings are now edited from the admin panel
- New ticket statuses (New, Replied, Waiting Reply, Resolved)
- Ticket ID reminder
- And many other changes (too many to list here)
© Copyright HESK.COM 2005-2010. All rights reserved.