Mais
×

Tutorial para fazer um sistema de tickets de suporte em PHP

Atualizado em 03 abril, 2017

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

Os desenvolvedores web usam sistemas de suporte PHP para receber feedback dos visitantes do site (Comstock/Comstock/Getty Images)

    Criar a tabela no banco de dados MySQL

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

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

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

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

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

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

  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.

    Nome: Email:
  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".

    Nome: Email:

    Escrever o código PHP

  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.

  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.

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

    ?>

  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.

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

    '); ?>

    Enviando um e-mail ao dono e notificando o visitante

  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.

  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.

  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.

  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.

  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

  • O código completo, colocado dentro dos tags corretos, ficará assim:
  • <?php
  • // 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('<p>Erro, falhou a criação do ticket de suporte.</p>');
  • // 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.";
  • ?>
Cite this Article A tool to create a citation to reference this article Cite this Article