Tutorial para fazer um sistema de tickets de suporte em PHP

Escrito por max power | Traduzido por josé fabián
Tutorial para fazer um sistema de tickets de suporte em PHP
Os desenvolvedores web usam sistemas de suporte PHP para receber feedback dos visitantes do site (Comstock/Comstock/Getty Images)

Um sistema de suporte em PHP aceita o feedback dos visitantes de um site. A linguagem de scripting PHP serve como intermediária entre o navegador do visitante e o banco de dados MySQL que armazenará a informação. PHP é uma linguagem gratuita e de código aberto. Um banco de dados MySQL também é um produto de código aberto que vem pré-instalado com a maioria dos planos de hosting (hospedagem). Isso significa que o MySQL provavelmente já esteja disponível no painel de controle da sua conta de hosting. O PHP pode também enviar o ticket de feedback por e-mail para o dono do site, para alertá-lo em tempo real e permiti-lhe dar soluções ao emissor do mesmo.

Instruções

    Criar a tabela no banco de dados MySQL

  1. 1

    Faça login no seu painel de controle de hosting, através do endereço indicado pelo seu fornecedor do serviço.

  2. 2

    Clique no ícone MySQL, o qual se encontrará na seção "database" (banco de dados) do painel de controle.

  3. 3

    Digite um nome para o banco de dados e clique no botão "create database" (criar banco de dados).

  4. 4

    Volte para o painel de controle e selecione o ícone "phpMyAdmin", que também estará na seção "database".

  5. 5

    Selecione o banco de dados escolhido e pressione o botão "create table" (criar tabela).

  6. 6

    Dê um nome à tabela. O nome "SupportTicket" (TicketSuporte) pode ser um nome apropriado. Digite o número "3" na caixa "add columns" (adicionar colunas) e pressione o botão "Go" (Ir).

  7. 7

    Crie um campo ID na primeira coluna. Configure o tipo de campo como INT. Marque a caixa "auto_increment". Esse campo será usado como chave primária para os dados digitados no sistema de tickets de suporte. Configure o tamanho do campo em 100.

  8. 8

    Crie um novo campo na segunda coluna. Dê ao mesmo o nome "narrative" (descrição). Selecione a opção "VarChar" no menu de tipo de dado. Configure o tamanho em 3000. Esse campo conterá a descrição do ticket de suporte.

  9. 9

    Crie um novo campo na terceira coluna. Coloque "email" como nome do mesmo. Selecione "VarChar" como tipo de campo e "150" como tamanho. Esse campo conterá o endereço de e-mail do usuário do sistema de suporte.

  10. 10

    Crie um novo campo na quarta coluna. Coloque "name" como nome, "VarChar" como tipo e "200" como tamanho. Esse campo conterá o nome da pessoa que emitirá o ticket de suporte.

  11. 11

    Crie um novo campo na quinta coluna, com nome "timestamp". Selecione o tipo de campo "timestamp" e escolha "CURRENT_TIMESTAMP" da caixa de atributos. Esse campo será preenchido automaticamente com a data e hora da abertura de um novo ticket de suporte.

  12. 12

    Defina o campo ID como chave primária. Depois de salvar os campos, você poderá marcar a caixa de índice "primary key" ao lado do campo ID.

    Escrever o código HTML

  1. 1

    Crie um novo formulário HTML. O sistema de tickets de suporte pode usar um formulário HTML padrão para receber a entrada do usuário. Esse exemplo mostrará o envoltório de um formulário básico, o qual chamará o script "support_ticket.php" e lhe enviará os dados usando o método "POST" quando o usuário pressionar o botão "Criar ticket de suporte".

    <form action="support_ticket.php" method="post"> <input type="submit" value="Criar ticket de suporte"/> </form>

  2. 2

    Escreva os campos de entrada para aceitar o nome e e-mail da pessoa que abrirá o ticket. O código de exemplo inclui duas caixas e etiqueta os campos com os nomes apropriados.

    <form action="support_ticket.php" method="post"> Nome: <input name="name" /> Email: <input name="email" /> <input type="submit" value="Criar ticket de suporte"/> </form>

  3. 3

    Adicione um campo "textarea" para aceitar a descrição. É nessa caixa que o usuário descreverá o problema e pedirá ajuda. O código de exemplo está completo. Note que a área de texto tem por nome "narrative".

    <form action="support_ticket.php" method="post"> Nome: <input name="name" /> Email: <input name="email" /> <textarea name="narrative"">Descreva o problema aqui...</textarea>

    <input type="submit" value="Criar ticket de suporte"/> </form>

    Escrever o código PHP

  1. 1

    Escreva o arquivo support_ticket.php. No primeiro lugar, leia os valores do método POST. Observe o exemplo. Note que os campos nome, email e narrative são sanitizados através dos métodos "stripslashes", "htmlspecialchars" e "ENT_QUOTES", o que evitará que os visitantes digitem código malicioso no banco de dados.

    <?php $name = stripslashes(htmlspecialchars($_POST[name], ENT_QUOTES)); $email = stripslashes(htmlspecialchars($_POST[email], ENT_QUOTES)); $narrative = stripslashes(htmlspecialchars($_POST[narrative], ENT_QUOTES)); ?>

  2. 2

    Coloque em uma variável PHP o comando INSERT INTO do MySQL. Neste exemplo o comando será chamado e os valores de "name", "email" e "narrative" serão encaminhados para os campos respectivos do MySQL.

    <?php $name = stripslashes(htmlspecialchars($_POST[name], ENT_QUOTES)); $email = stripslashes(htmlspecialchars($_POST[email], ENT_QUOTES)); $narrative = stripslashes(htmlspecialchars($_POST[narrative], ENT_QUOTES));

    $query = "INSERT INTO SupportTicket (name, email, narrative) VALUES ('$name','$email','$narrative')";

    ?>

  3. 3

    Execute o comando MySQL com o método "mysql_query" do PHP. O código de exemplo para o arquivo PHP agora está completo.

    <?php $name = stripslashes(htmlspecialchars($_POST[name], ENT_QUOTES)); $email = stripslashes(htmlspecialchars($_POST[email], ENT_QUOTES)); $narrative = stripslashes(htmlspecialchars($_POST[narrative], ENT_QUOTES));

    $query = "INSERT INTO SupportTicket (name, email, narrative) VALUES ('$name','$email','$narrative')";

    mysql_query($query) or die('<p>Erro, falhou a criação do ticket de suporte.</p>'); ?>

    Enviando um e-mail ao dono e notificando o visitante

  1. 1

    Escreva o código PHP para enviar por e-mail o ticket de suporte para o dono. Defina as diretrizes nas variáveis "$to" e "$subject". Essa é a informação que aparecerá nos cabeçalhos do e-mail.

    <?php $to = "donoDoSite@seuDominio.com”; $subject = "Novo ticket de suporte"; ?>

  2. 2

    "Cure" a entrada do usuário no texto do e-mail, observando o código de exemplo. Você notará que as variáveis que contêm a entrada do usuário foram designadas na variável "$salutation", a qual conterá o texto do e-mail.

    <?php $to = "donoDoSite@seuDominio.com"; $subject = "Novo ticket de suporte"; $salutation = “Nome: “ . $name . "\n Email: " . $email . "\n \n "; $message = $salutation . (nl2br($narrative)); ?>

  3. 3

    Defina os headers (cabeçalhos) do email. Essa informação é importante pois evitará que o programa de e-mail do dono do site classifique as mensagens como spam.

    <?php $to = "donoDoSite@seuDominio.com"; $subject = "Novo ticket de suporte"; $salutation = “Nome: “ . $name . "\n Email: " . $email . "\n \n "; $message = $salutation . (nl2br($narrative)); $headers = 'From: seuEmail@seuDominio.com' . "\n" . 'Reply-To: seuEmail@seuDominio.com' . "\n" . 'Content-Type: text/html; charset="utf-8"' . "\n" . 'X-Mailer: PHP/' . phpversion(); $returnpath = "-fseuEmail@seuDominio.com"; ?>

  4. 4

    Envie o e-mail através da função "mail" do PHP. Observe o código de exemplo e note que as variáveis da mensagem foram colocadas na função "mail". O código para enviar o e-mail está agora completo.

    <?php $to = "donoDoSite@seuDominio.com"; $subject = "Novo ticket de suporte"; $salutation = “Nome: “ . $name . "\n Email: " . $email . "\n \n "; $message = $salutation . (nl2br($narrative)); $headers = 'From: seuEmail@seuDominio.com' . "\n" . 'Reply-To: seuEmail@seuDominio.com' . "\n" . 'Content-Type: text/html; charset="utf-8"' . "\n" . 'X-Mailer: PHP/' . phpversion(); $returnpath = "-fseuEmail@seuDominio.com"; mail($to, $subject, $message,$headers,$returnpath); ?>

  5. 5

    Informe ao visitante do site que o ticket foi aberto. Neste exemplo, o comando "echo" do PHP indicará ao visitante que ele foi enviado.

    echo "Obrigado por enviar um novo ticket de suporte. A sua opinião é apreciada e você receberá uma resposta em breve.";

Dicas & Advertências

  • O código completo, colocado dentro dos tags corretos, ficará assim:
  • // ler dados do formulário HTML
  • $name = stripslashes(htmlspecialchars($_POST[name], ENT_QUOTES));
  • $email = stripslashes(htmlspecialchars($_POST[email], ENT_QUOTES));
  • $narrative = stripslashes(htmlspecialchars($_POST[narrative], ENT_QUOTES));
  • // inserir dados no banco de dados
  • $query = "INSERT INTO SupportTicket (name, email, narrative) VALUES ('$name','$email','$narrative')";
  • mysql_query($query) or die('Erro, falhou a criação do ticket de suporte.');
  • // enviar email ao dono
  • $to = "donoDoSite@seuDominio.com";
  • $subject = "Novo ticket de suporte";
  • $salutation = “Nome: “ . $name . "\n
  • Email: " . $email . "\n
  • \n
  • ";
  • $message = $salutation . (nl2br($narrative));
  • $headers = 'From: seuEmail@seuDominio.com' . "\n" .
  • 'Reply-To: seuEmail@seuDominio.com' . "\n" .
  • 'Content-Type: text/html; charset="utf-8"' . "\n" .
  • 'X-Mailer: PHP/' . phpversion();
  • $returnpath = "-fseuEmail@seuDominio.com";
  • mail($to, $subject, $message,$headers,$returnpath);
  • // notificar o visitante
  • echo "Obrigado por enviar um novo ticket de suporte. A sua opinião é apreciada e você receberá uma resposta em breve.";
  • ?>
Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível