Tutorial para fazer um sistema de tickets de suporte em PHP

Escrito por max power | Traduzido por josé fabián
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
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.

Nível de dificuldade:
Moderado

Outras pessoas estão lendo

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.";
  • ?>

Não perca

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