Résolu Comment crée un système de Support avec Ticket ?

Statut
N'est pas ouverte pour d'autres réponses.

Swiiz

Premium
Inscription
2 Mars 2014
Messages
2 004
Réactions
699
Points
1 740
RGCoins
0
Hello :)

J'aimerais faire un système de Support avec ticket sur mon afin de communiqué avec les clients .
Comme ceci a peu près
lveWB9K.png


Pour que les client si il on une question ou un problème évité de passé par skype.

Je peux évidemment payer ;)

Cordialement,
Swiiz
 
Hello :)

J'aimerais faire un système de Support avec ticket sur mon site afin de communiqué avec les clients .
Comme ceci a peu près
lveWB9K.png


Pour que les client si il on une question ou un problème évité de passé par skype.

Je peux évidemment payer ;)

Cordialement,
Swiiz
Si quelqu'un te donne une solution, pourra tu m'expliquer aussi, je suis curieux de savoir comment faire :)
 
Attention je C/C ma source !

Partie Membre
Support.php
PHP:
                        <div class="portlet box yellow">
                            <div class="portlet-title">
                                <h4><i class="icon-reorder"></i>My Tickets</h4> <a href="new.php" align="right" class="btn blue"><i class="icon-plus"></i></a>
                            </div>
                            <div class="portlet-body">
                                <table class="table table-bordered table-hover">
                                    <thead>
                                        <tr>
                                            <th>Subject</th>
                                            <th>Status</th>
                                            <th>View</th>
                                        </tr>
                                    </thead>
                                    <tbody>
            <?php
            $SQLGetTickets = $odb -> prepare("SELECT * FROM `tickets` WHERE `username` = :username ORDER BY `id` DESC");
            $SQLGetTickets -> execute(array(':username' => $_SESSION['username']));
            while ($getInfo = $SQLGetTickets -> fetch(PDO::FETCH_ASSOC))
            {
                $id = $getInfo['id'];
                $subject = $getInfo['subject'];
                $status = $getInfo['status'];
                echo '<tr><td>'.htmlspecialchars($subject).'</td><td>'.$status.'</td><td width="50px"><a href="ticket.php?id='.$id.'"><button class="btn grey">View</button></a></td></tr>';
            }
            ?>
                                    </tbody>
                                </table>
                            </div>
                        </div>
New.php
PHP:
<div class="portlet box yellow">
                            <div class="portlet-title">
                                <h4><i class="icon-reorder"></i>New Ticket</h4>
                            </div>
                            <div class="portlet-body">
<?php
       if (isset($_POST['updateBtn']))
       {
               if ($securimage->check($_POST['captcha_code']) == true) {
            echo '<font color="black">Wrong captcha :\ </font>';
            }
            else {
            $subject = ($_POST['subject']);
            $content = ($_POST['content']);
            $errors = array();
            if (empty($subject) || empty($content))
            {
                $errors[] = 'Fill in all fields';
            }
            if (empty($errors))
            {
                $SQLinsert = $odb -> prepare("INSERT INTO `tickets` VALUES(NULL, :subject, :content, :status, :username)");
                $SQLinsert -> execute(array(':subject' => $subject, ':content' => $content, ':status' => 'Waiting for admin response', ':username' => $_SESSION['username']));
                echo '<div class="alert alert-success"p><strong><font color="black">SUCCESS: </font></strong><font color="black">Ticket has been created.  Redirecting....</font></p></div><meta http-equiv="refresh" content="3;url=support.php">';
            }
            else
            {
                echo '<div class="alert alert-error"><p><strong>ERROR:</strong><br />';
                foreach($errors as $error)
                {
                    echo '-'.$error.'<br />';
                }
                echo '</div>';
            }
        }
    }
       ?>
<form action="" method="POST">
                                    <div class="control-group">
                                       <div class="controls">
                                       <label class="control-label">Subject:</label>
                                          <input type="text" name="subject" class="m-wrap medium" />
                                       </div>
                                    </div>
                           <div class="control-group">
                              <label class="control-label">Content:</label>
                              <div class="controls">
                                 <textarea class="span6 m-wrap" name="content" rows="3"></textarea>
                              </div>
                           </div>
                          
<input type="submit" value="Open Ticket!" name="updateBtn" class="btn blue" />
</form>
                            </div>
                        </div>

Partie Staff

ticket.php
PHP:
<?
       $SQLGetTickets = $odb -> query("SELECT * FROM `tickets` WHERE `id` = $id");
       while ($getInfo = $SQLGetTickets -> fetch(PDO::FETCH_ASSOC))
       {
        $username = $getInfo['username'];
        $subject = $getInfo['subject'];
        $status = $getInfo['status'];
        $original = $getInfo['content'];
        }
       if (isset($_POST['closeBtn']))
       {
$SQLupdate = $odb -> prepare("UPDATE `tickets` SET `status` = :status WHERE `id` = :id");
$SQLupdate -> execute(array(':status' => 'Closed', ':id' => $id));
echo '<div class="nNote nSuccess hideit"><p><strong><font color="black">SUCCESS: </font></strong><font color="black">Ticket has been closed.  Redirecting....</font></p></div><meta http-equiv="refresh" content="3;url=tickets.php">';
        }
       if (isset($_POST['updateBtn']))
       {
           $updatecontent = $_POST['content'];

            $errors = array();
            if (empty($updatecontent))
            {
                $errors[] = 'Fill in all fields';
            }
            if (empty($errors))
            {
                $SQLinsert = $odb -> prepare("INSERT INTO `messages` VALUES(NULL, :ticketid, :content, :sender)");
                $SQLinsert -> execute(array(':sender' => 'Admin', ':content' => $updatecontent, ':ticketid' => $id));
            {
                $SQLUpdate = $odb -> prepare("UPDATE `tickets` SET `status` = :status WHERE `id` = :id");
                $SQLUpdate -> execute(array(':status' => 'Waiting for user response', ':id' => $id));
                echo '<div class="nNote nSuccess hideit"><p><strong><font color="black">SUCCESS: </font></strong><font color="black">Ticket has been updated.  Redirecting....</font></p></div><meta http-equiv="refresh" content="3;url=tickets.php">';
            }
            }
            else
            {
                echo '<div class="nNote nFailure hideit"><p><strong>ERROR:</strong><br />';
                foreach($errors as $error)
                {
                    echo '-'.$error.'<br />';
                }
                echo '</div>';
            }
        }
?>                       
                            <div class="portlet paddingless">
                                <div class="portlet-title line">
                                    <h4 class=""><i class="icon-comments"></i><? echo htmlspecialchars($subject); ?></h4><form action="" method="POST">
<input type="submit" align="right" name="closeBtn" class="btn red" value="Close Ticket"/></h4></form>
                                </div>
                                <div class="portlet-body" id="chats">
                                    <div class="scroller" data-height="343px" data-always-visible="1" data-rail-visible1="1">
                                        <ul class="chats">
                                            <li class="in">
                                                <div class="message">
                                                    <span class="arrow"></span>
                                                    <a href="#" class="name"><? echo $username; ?></a>
                                                    <span class="body">
                                                    <? echo htmlspecialchars($original); ?>
                                                    </span>
                                                </div>
                                            </li>
            <?php
            $SQLGetMessages = $odb -> prepare("SELECT * FROM `messages` WHERE `ticketid` = :ticketid ORDER BY `messageid` ASC");
            $SQLGetMessages -> execute(array(':ticketid' => $id));
            while ($getInfo = $SQLGetMessages -> fetch(PDO::FETCH_ASSOC))
            {
                $sender = $getInfo['sender'];
                $content = $getInfo['content'];
                if ($sender != "Admin") { $li = "in"; } else { $li = "out"; }
                echo '<li class="'.$li.'"><div class="message"><span class="arrow"></span><a href="#" class="name">'.$sender.'</a><span class="body">'.htmlspecialchars($content).'</span></div></li>';
            }
            ?>
                                        </ul>
                                    </div>
                                    <div class="chat-form">
<form action="" method="POST">
                                        <div class="input-cont">  
                                            <input class="m-wrap" type="text" name="content" placeholder="Type a message here..." />
                                        </div>
                                        <div class="btn-cont">
                                            <span class="arrow"></span>
                                            <input type="submit" name="updateBtn" class="btn blue icn-only" value="Send"/>
                                        </div>
</form>
                                    </div>
                                </div>
                            </div>
Partie .sql
PHP:
CREATE TABLE IF NOT EXISTS `messages` (
  `messageid` int(11) NOT NULL AUTO_INCREMENT,
  `ticketid` int(11) NOT NULL,
  `content` text NOT NULL,
  `sender` varchar(30) NOT NULL,
  PRIMARY KEY (`messageid`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;

--
-- Contenu de la table `messages`
--

INSERT INTO `messages` (`messageid`, `ticketid`, `content`, `sender`) VALUES

CREATE TABLE IF NOT EXISTS `tickets` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `subject` varchar(30) NOT NULL,
  `content` text NOT NULL,
  `status` varchar(30) NOT NULL,
  `username` varchar(15) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=18 ;

--
-- Contenu de la table `tickets`
--

INSERT INTO `tickets` (`id`, `subject`, `content`, `status`, `username`) VALUES
 
Statut
N'est pas ouverte pour d'autres réponses.
Retour
Haut