Hesk
PHP Helpdesk software

PLEASE NOTE: I cannot provide free installation support for this free script! Please contact me ONLY about possible bug reports, suggestions or comments! Thank you!

INDEX

COPYRIGHT NOTICE

Copyright 2005-2007 Klemen Stirn. All Rights Reserved.

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.

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" statement)
Removing any of the copyright notices without purchasing a license is illegal! To remove PHPJunkyard copyright notice you must purchase a license for this script. For more information on how to obtain a license please visit the site below:
http://www.phpjunkyard.com/copyright-removal.php

DESCRIPTION

A PHP/MySQL browser based customer support software.

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)

REQUIREMENTS

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):

» Installation

Please take 5 minutes time and read installation instructions carefully and completely! This will ensure a proper and easy installation.

If you have problems/questions see the "Troublshooting and HELP" section further down.

Before you can install Hesk you will need to obtain your MySQL database information, such as database name, database user and password. You have to get this information from your HOSTING COMPANY, PHPJunkyard CANNOT help you get this information!

  1. FTP to the public folder of your server (where the rest of your website 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/hesk

    TIP: If you don't know how to FTP or CHMOD files read my simple FTP and CHMOD tutorial

  2. 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.

  3. 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)

  4. Open your browser and open hesk/install in your browser, for example:
    http://www.yourdomain.com/hesk/install
    (of course change the URL to your domain and your path to Hesk folder!)

  5. Hesk setup script will show up on the install URL. Click New install and follow instructions. The install consists of 4 steps:

    1. STEP 1: License agreement - read the Hesk License agreement and confirm that you agree with the terms
    2. STEP 2: Check setup - the script will test your server to see if all required settings are correct and advise solution to any problems
    3. STEP 3: Database settings - enter your MySQL database settings and the script will test them
      You need to get correct MySQL database information from your hosting company!
    4. STEP 4: Setup database tables - everything OK so far, the script will install MySQL tables
  6. DELETE or rename the "install" directory on your server!

  7. Well done so far, time to setup your help desk! Click the Continue link in install script or open admin.php in your browser, for example:
    http://www.yourdomain.com/hesk/admin.php
    Login using the default password: admin
    Click the Settings link in the top menu to get to the settings page (if not already there)

  8. 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!

  9. Things to do next

    Click the "Your profile" link and set your name, e-mail, NEW PASSWORD and signature (optional).

    You can add new users on the "Manage users" page. The default user (Administrator) cannot be deleted.

    You can add new categories on the "Manage 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.

    Your customers will be able to post tickets on the index page:
    http://www.yourdomain/hesk/index.php
    or just
    http://www.yourdomain/hesk

    If you have problems/questions see the "Troublshooting and HELP" section further down.

  10. Enjoy using Hesk!

» Upgrading from old versions

Please take 5 minutes time and read upgrade instructions carefully and completely! This will ensure a proper and easy upgrade.

Known upgrade issues
Because of big changes in 0.94 there are some known issues with upgrading from old versions:

  1. all "Open" tickets' status will be changed to "Waiting reply"
  2. the "Last update" date will actually show ticket creation date for all existing (old) tickets until a new reply is added.
  3. the "Last replier" will show "Customer" for all existing (old) tickets until a new reply is added.

TIP: Try to perform the upgrade in low-traffic hours when your website receives the least amount of visits.

To upgrade Hesk to version 0.94 follow these steps:

  1. BACKUP YOUR EXISTING HESK DATABASE AND FILES! Most web hosts allow you to do that from your control panel. Contact your host if not sure how to do that. Don't skip this step, crying won't help if you somehow loose all your existing tickets ;-)

  2. 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 EXCEPT the hesk_settings.inc.php file. Do NOT upload the new hesk_settings.inc.php file if you wish to keep your old settings.

  3. 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)

  4. Delete any language files from the language folder except english.inc.php. A lot of new text has been added in Hesk 0.94, you will need to translate that before using any other language files.

  5. Open your browser and open hesk/install in your browser, for example:
    http://www.yourdomain.com/hesk/install
    (of course change the URL to your domain and your path to Hesk folder!)

  6. Hesk setup script will show up on the install URL. Click Update existing install and follow instructions. The update consists of 4 steps:

    1. STEP 1: License agreement - read the Hesk License agreement and confirm that you agree with the terms
    2. STEP 2: Check setup - the script will test your server to see if all required settings are correct and advise solution to any problems
    3. 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
    4. STEP 4: Update database tables - everything OK so far, the script will update your existing MySQL tables to version 0.94
  7. DELETE or rename the "install" directory on your server!

  8. Click the Continue link in update script or open admin.php in your browser, for example:
    http://www.yourdomain.com/hesk/admin.php
    Login using your password and click the Settings link in the top menu to get to the settings page (if not already there)

  9. 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!

  10. If you have problems/questions see the "Troublshooting and HELP" section further down.

  11. Enjoy using Hesk!

» HELP and Troubleshooting

1. What is CHMOD and FTP?

I have prepared a simple FTP and CHMOD tutorial which 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 permissions to modify, write and read the required files. Some 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 anti-SPAM image in 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:

  1. 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.
  2. If no e-mails at all are sent then 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 attachment size limit under 2 Mb (2048 Kb) works, but try also 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 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)?

  1. New - newely created ticket with no replies yet
  2. Waiting reply - this tickets waits for your reply
  3. Replied - you have replied to this ticket, waiting for reply from other party
  4. Resolved (Closed) - the ticket has been resolved, no more replies necessary

 

Since these scripts are 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 (also delete old files and folders from the server). Also please feel free to post any questions or problems you might have in PHPJunkyard forum!

» Customizing 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).

» Customizing e-mail messages

You can easily customize e-mail messages sent by Hesk. E-mail message templates can be found in the "emails" folder:

forgot_ticket_id.txt - e-mail reminder sent if someone forgot (lost) their ticket tracking number.
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.
new_reply_by_staff.txt - e-mail sent to the customer who submitted the ticket after you (your staff) respond to the ticket.
new_reply_by_customer.txt - e-mail sent to staff (you) when the customer replies to the ticket.

Simply edit the e-mail template files and upload them over original ones. 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%% website title
    %%SITE_URL%% website URL (as set on settings page)

You can turn off e-mail notifications in the "Your profile" page. The customer will still receive e-mails if you turn off your e-mails.

» Translating Hesk to your language

As of version 0.93 Hesk comes with a language file which makes translating Hesk to other languages easily.
Check if this version of Hesk had already been translated to your language.

To translate Hesk to your language follow these steps:

  1. Locate file english.inc.php inside your language folder and open it in a plain text editor like Notepad or Wordpad.
  2. Save the file as yourlanguage.inc.php (deutsch.inc.php, francais.inc.php, ...). The entire name should be lowercase.
    OK: francais.inc.php
    WRONG: Francais.inc.php, FRANCAIS.inc.php
  3. Edit the language file header (first lines that start with *) with your information. Please follow the provided format.
  4. Translate all lines containing language. 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 these codes as they are used by Hesk: %s %d

  5. Save the file and upload it to your language folder.
  6. Open the file in your browser to check syntax, for example:
    http://www.domain.com/hesk/language/francais.inc.php
    If everything is OK you should get a message like "No syntax errors detected in /francais.inc.php". If you get any errors then the syntax is wrong. The error should give you line number with error, check syntax around that line (make sure it ends with ; , single quotes must be escaped with \' etc.).
  7. Edit the Language file setting in your admin panel (Settings page)
  8. Test Hesk with your language and make sure it works ok.
  9. You should also translate e-mail files in the "emails" folder and this readme.htm file (please name it readme-yourlanguage.htm, for example readme-fr.htm, readme-de.htm, ...).

If you translate Hesk to your language please post it to the PHPJunkyard forum for others to download.

» Copyright removal

You may NOT remove any copyright statements in the source code. The Powered by link in Hesk mustn't be removed without purchasing a license! For more information please visit http://www.phpjunkyard.com/copyright-removal.php

» Stay updated!

Join my FREE newsletter and you will be notified about new scripts, new versions of the existing scripts and other important news from PHPJunkYard.
Click here for more info

» 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

» What else?

That's it! If you use PHPJunkYard free scripts or any portion of their code please place a link to PHPJunkYard.com on your website. I won't sue you if you don't, but I believe it is a fair trade for a free script/code. Think about it. You can find link suggestions here.

Best regards,

Klemen Stirn
PHP JunkYard
http://www.PHPJunkYard.com