Skip to content
Snippets Groups Projects
open.php 2.39 KiB
Newer Older
  • Learn to ignore specific revisions
  • <?php
    /*********************************************************************
        open.php
    
        New tickets handle.
    
        Peter Rotich <peter@osticket.com>
        Copyright (c)  2006-2012 osTicket
        http://www.osticket.com
    
        Released under the GNU General Public License WITHOUT ANY WARRANTY.
        See LICENSE.TXT for details.
    
        vim: expandtab sw=4 ts=4 sts=4:
    **********************************************************************/
    require('client.inc.php');
    define('SOURCE','Web'); //Ticket source.
    $inc='open.inc.php';    //default include.
    $errors=array();
    if($_POST):
        $_POST['deptId']=$_POST['emailId']=0; //Just Making sure we don't accept crap...only topicId is expected.
    
        if($thisclient) {
            $_POST['name']=$thisclient->getName();
            $_POST['email']=$thisclient->getEmail();
    
        } elseif($cfg->isCaptchaEnabled()) {
    
            if(!$_POST['captcha'])
                $errors['captcha']='Enter text shown on the image';
            elseif(strcmp($_SESSION['captcha'],md5($_POST['captcha'])))
                $errors['captcha']='Invalid - try again!';
        }
    
        //Ticket::create...checks for errors..
        if(($ticket=Ticket::create($_POST,$errors,SOURCE))){
            $msg='Support ticket request created';
    
            //Upload attachments...         
            if($cfg->allowOnlineAttachments()
                    && $_FILES['attachments']
                    && ($files=Format::files($_FILES['attachments']))) {
                $ost->validateFileUploads($files); //Validator sets errors - if any.
                $ticket->uploadAttachments($files, $ticket->getLastMsgId(), 'M');
            }
    
    
            //Logged in...simply view the newly created ticket.
            if($thisclient && $thisclient->isValid()) {
                if(!$cfg->showRelatedTickets())
                    $_SESSION['_client']['key']= $ticket->getExtId(); //Resetting login Key to the current ticket!
                session_write_close();
                session_regenerate_id();
    
                @header('Location: tickets.php?id='.$ticket->getExtId());
    
            //Thank the user and promise speedy resolution!
            $inc='thankyou.inc.php';
        }else{
            $errors['err']=$errors['err']?$errors['err']:'Unable to create a ticket. Please correct errors below and try again!';
        }
    endif;
    
    //page
    $nav->setActiveNav('new');
    require(CLIENTINC_DIR.'header.inc.php');
    require(CLIENTINC_DIR.$inc);
    require(CLIENTINC_DIR.'footer.inc.php');
    ?>