Este artigo te dá dicas simples de como pode ser criado um mini-chat em seu Site dinâmico em PHP, vamos tentar utilizar uma linguagem bem clara para que principiantes possam absorver o máximo de conteúdo possível.

Realização do Mini-Chat

Passo 1: Requisitos

Especificamente, vamos usar os seguintes conceitos:

  • Passando variáveis através de um formulário;
  • Ler uma tabela;
  • Escreva em uma tabela.

Passo 2: Preparação do roteiro

Antes de começar a escrever como nosso script PHP, o que eu lhe disse que era absolutamente necessário? Sim, seu script não é escrito por ele próprio como que por magia. Então ele vai ter que pensar um pouco antes de começar.

É um script muito simples, assim você não deve ter problemas de compreensão.

Nós gostaríamos de ter, na mesma página, duas caixas de texto no topo: uma para escrever o seu apelido, outro para escrever sua mensagem pouco. Em seguida, um botão "Enviar" irá enviar os dados para o MySQL, de modo que os registros em uma tabela no banco de dados.

A seguir, o script irá mostrar as últimas 10 mensagens que foram registrados (porque se você vê-los todos e você tem 1000 mensagens que podem ser um pouco longo!) A partir da mais recente para a mais antiga.

É um pouco distorcido? OK, isso é o que sua página deve parecer, uma vez concluída:

Ou seja: temos um ID INT tipo de campo (como sempre) que vamos saber em que ordem as mensagens foram enviadas. Ele irá definir o auto_incremento.

Para os campos "username" e "mensagem", utilize o VARCHAR (lembre-se de especificar um limite de tamanho no campo de texto ao lado: 255 caracteres é suficiente, ele não está lá para escrever um romance !).

Comece por criar uma tabela no seu banco de dados contendo ID’s para armazenar as mensagens enviadas no chat. Chame-lhe o que quiser, eu escolhi "minichat”.

Feito? Muito bom!

Se alguma coisa é registrada é gravado em uma tabela e é exibido em 2 caixas de texto as 10 últimas postagens.

O formulário deve retornar na mesma página. Se sua página é chamado de minichat.php, então a sua marca irá forma:

Será então recarregar a página mesmo! Sim, mas desta vez será algo diferente! (por exemplo $_POST[''pseudo''] e $_POST[''message'']), Na verdade, 2 variáveis serão criadas (por exemplo, $ _POST [ ''username''] e $ _POST [ ''mensagem'']), e você será capaz de verificar se contém alguma coisa. Se eles contêm alguma coisa, então você salvar os dados. Caso contrário, você não faz nada (não vejo outra pessoa em seu código!).

Em resumo, quando a página é carregada, há 2 casos:

  • O usuário postou uma mensagem, $_POST [ ''username''] e $_POST [ ''mensagem''] não estão vazios. A postagem é gravada, em seguida, são exibidas as caixas de texto 2 e as 10 últimas postagens.
  • O usuário não postou uma mensagem, $_POST [ ''username''] e $_POST [ ''mensagem''] são vazios. Portanto, nada é feito, você simplesmente mostra o 2 caixas de texto e as 10 últimas postagens.

Você vai precisar de duas condições para verificar se as variáveis não estão vazias:

  1. Usar um isSet para verificar se existem variáveis (como no primeiro TP);
  2. Então, se a variável existe, verificar se eles não estão vazios (NULL).

Se estas 2 condições forem satisfeitas, então você pode enviar a mensagem no banco de dados sem medo.

Eu não quero entrar em detalhes ainda (porque é um limite da classe de "hacking" deve ser após ) mais Mas temos de proteger contra as injeções de SQL, ou seja, pessoas que, por uma técnica precisa, pode tentar introduzir código SQL na mensagem. Isto é particularmente perigoso.

Para evitar isso, novamente, podemos aplicar uma função. O código perfeitamente seguro usar será:

Código: PHP


$message = mysql_real_escape_string(htmlspecialchars($_POST[''mensagem'']));

$pseudo = mysql_real_escape_string(htmlspecialchars($_POST[''pseudo'']));

Passo 3: Sua Vez!

Agora é sua vez de pensar. Com os itens que lhe dei, e com força de vontade, você deve ser capaz de fazer a Mini-Chat!

Se você tiver um pouco de dificuldade, e se o script não funcionar, não apague num momento de raiva (não ficar animado). Em vez disso, se você realmente não pode colocar o seu código e depois comparar com a correção.

Será muito gratificante para você, você vai ver!

Passo 4: Correção

Você vai ver agora o que eu esperava de você. Se você conseguiu fazer algo que funciona: bravo!

E se você não chegou, não se preocupe demais: a principal coisa é que você tem feito o esforço de pensar. Ao ver a correção, você vai aprender um grande negócio!



<http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>

<?

if (isset($_POST[''pseudo'']) AND isset($_POST[''mensagem''])) // verifica se as variáveis existem
{
    if ($_POST[''pseudo''] != NULL AND $_POST[''message''] != NULL) 
    {
        mysql_connect("localhost", "sdz", "senha");
        mysql_select_db("coursphp");
 
$message = mysql_real_escape_string(htmlspecialchars($_POST[''mensagem'']));
        $pseudo = mysql_real_escape_string(htmlspecialchars($_POST[''pseudo'']));
 
mysql_query("INSERT INTO minichat VALUES('''', ''$pseudo'', ''$mensagem'')");
 
        mysql_close();
    }
}
 
 


<form action="minichat.php" method="post">
 
<label>Pseudo:</label> 
 <input type="text" name="pseudo">

<label>Message:</label> 
 <input type="text" name="message">
 
 <input type="submit" value="Enviar">



mysql_connect("localhost", "sdz", "senha");
mysql_select_db("coursphp");

mensagnes :
$reponse = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,10");
 
mysql_close();
 
while ($donnees = mysql_fetch_array($reponse) )

{ 
  echo $donnees[''pseudo'']; ?> :  echo $donnees[''mensagem'']; 
}

?>

Claro, este script irá trabalhar com você, se você criou uma tabela "minichat" como eu mostrei acima. Bem, como é que o roteiro?

  1. Em primeiro lugar, há uma isset sobre as duas variáveis $_POST [ ''username''] e $_POST [ ''mensagem''] para verificar se existem variáveis. Se não existir, ele não vai embora. Se elas existem, passamos a um segundo teste.
  2. A segunda condição verifica se a variável $_POST [ ''username''] e $_POST [ ''mensagem''], contêm alguma coisa. Na verdade, seria chato um visitante envia uma mensagem em branco ou não dar o apelido. Se assim for, então vamos gravar os dados (não esquecendo de usar htmlspecialchars mysql_real_escape_string por razões de segurança evitando scripts maliciosos).
  3. Então nós tivemos que salvar alguma coisa ou não, nós escrevemos o formulário HTML. É completamente estúpido, você já viu isto no capítulo sobre as variáveis e até mesmo no proteção por senha.
  4. Finalmente, mostrar as últimas 10 mensagens, utilizando a seguinte consulta SQL:
    SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,10
    Isto significa: "Seleciona todos os campos em minichat (SELECT * FROM minichat), as ordens das entradas em ordem decrescente (ORDER BY ID DESC), e leva apenas cerca de 10 (LIMIT 0,10)"

A primeira vez que você visualizar a página, $_POST [ ''username''] e $_POST [ ''mensagem''] não existem, assim o PHP não irá executar o que está na condição de isset.

Se você está se divertindo para enviar uma mensagem, ele vai primeiro ser registrado no banco de dados. Em seguida, ele exibe mensagens.

Você será capaz de conversar em seu próprio site com seus visitantes!


Saiu na DevMedia!
  • O que são formulários mestre detalhe?:
    Muitas vezes, por uma questão de usabilidade, a aplicação necessita armazenar, em uma mesma requisição, um número variável de dados, criados em um formulário dinamicamente.
  • Desbravando o Docker:
    Codificar fazer o deploy da aplicação costuma ser uma preocupação pra quem está começando e, na maioria das vezes, uma dor de cabeça até pra quem tem mais tempo na estrada. Mas não precisa, pois com a ferramenta certa podemos eliminar grande parte dos problemas

Saiba mais sobre PHP ;)

  • Linguagem PHP:
    Neste Guia de Consulta você encontrará todo o conteúdo que precisa para aprender PHP, uma linguagem de programação amplamente utilizada para a construção de aplicações web.
  • Programador PHP:
    Descubra o melhor caminho para aprender PHP, sem perder tempo. Acompanhe os cursos e conteúdos indicados nesse Guia na ordem em que são propostos e prepare-se para decolar sua carreira de programador PHP!