
PHP - Exercício do Facebook: Sistema de Cadastro e Consulta de Imóveis
Sempre crie uma frase de segurança única para jogos, airdrops e outras origens desconhecidas, em vez de usar sua carteira principal.
Link do exercício:
@CanalQb no Facebook - Exercício Cadastro Imóveis
Cadastro e Consulta de Imóveis
Se você precisa de uma solução prática para cadastrar e consultar imóveis, confira abaixo três scripts PHP separados, que facilitam a implementação de um sistema básico: um script para a página inicial, outro para a conexão e configuração do banco de dados, e um terceiro para a lógica de cadastro.
Script para a página inicial (index.php):
<!DOCTYPE html> <html lang="pt-BR"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Cadastro/Consulta de Imóveis</title> </head> <body> <h1>Cadastro/Consulta de Imóveis</h1> <form action="cadastrar_imovel.php" method="post"> <!-- Campos do formulário para cadastrar imóveis --> <label for="tipo_negociacao">Tipo de Negociação:</label> <input type="text" id="tipo_negociacao" name="tipo_negociacao" required><br> <label for="status">Status:</label> <input type="text" id="status" name="status" required><br> <label for="endereco">Endereço:</label> <input type="text" id="endereco" name="endereco" required><br> <label for="tipo_imovel">Tipo do Imóvel:</label> <input type="text" id="tipo_imovel" name="tipo_imovel" required><br> <label for="caracteristicas">Características:</label> <textarea id="caracteristicas" name="caracteristicas" rows="4" required></textarea><br> <label for="preco">Preço:</label> <input type="number" step="0.01" id="preco" name="preco" required><br> <label for="condicoes">Condições:</label> <textarea id="condicoes" name="condicoes" rows="3"></textarea><br> <label for="observacoes">Observações:</label> <textarea id="observacoes" name="observacoes" rows="3"></textarea><br> <button type="submit" name="submit">Cadastrar Imóvel</button> </form> </body> </html>
Script para conexão ao banco de dados (bd.php):
<?php // Configurações para conexão com o banco de dados MySQL usando PDO $servername = "localhost"; $username = "seu_usuario"; $password = "sua_senha"; $dbname = "nome_do_banco"; try { // Estabelece a conexão com o banco de dados $conn = new PDO("mysql:host=$servername;dbname=$dbname;charset=utf8", $username, $password); // Configura o PDO para lançar exceções em caso de erro $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Cria a tabela 'imoveis' se não existir $query = "CREATE TABLE IF NOT EXISTS imoveis ( id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, tipo_negociacao VARCHAR(20) NOT NULL, status VARCHAR(20) NOT NULL, endereco VARCHAR(200) NOT NULL, tipo_imovel VARCHAR(20) NOT NULL, caracteristicas TEXT NOT NULL, preco FLOAT(11,2) NOT NULL, condicoes TEXT, observacoes TEXT ) ENGINE=InnoDB DEFAULT CHARSET=utf8;"; $conn->exec($query); } catch(PDOException $e) { echo "Erro na conexão com o banco de dados: " . $e->getMessage(); exit(); } ?>
Script para lógica de cadastro (cadastrar_imovel.php):
<?php include_once "bd.php"; // Inclui arquivo com a conexão ao banco if(isset($_POST['submit'])) { // Recebe dados do formulário, com validação mínima $tipo_negociacao = filter_input(INPUT_POST, 'tipo_negociacao', FILTER_SANITIZE_STRING); $status = filter_input(INPUT_POST, 'status', FILTER_SANITIZE_STRING); $endereco = filter_input(INPUT_POST, 'endereco', FILTER_SANITIZE_STRING); $tipo_imovel = filter_input(INPUT_POST, 'tipo_imovel', FILTER_SANITIZE_STRING); $caracteristicas = filter_input(INPUT_POST, 'caracteristicas', FILTER_SANITIZE_STRING); $preco = filter_input(INPUT_POST, 'preco', FILTER_VALIDATE_FLOAT); $condicoes = filter_input(INPUT_POST, 'condicoes', FILTER_SANITIZE_STRING); $observacoes = filter_input(INPUT_POST, 'observacoes', FILTER_SANITIZE_STRING); if ($tipo_negociacao && $status && $endereco && $tipo_imovel && $caracteristicas && $preco !== false) { // Prepara e executa a inserção no banco usando prepared statements para segurança $stmt = $conn->prepare("INSERT INTO imoveis (tipo_negociacao, status, endereco, tipo_imovel, caracteristicas, preco, condicoes, observacoes) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"); $result = $stmt->execute([$tipo_negociacao, $status, $endereco, $tipo_imovel, $caracteristicas, $preco, $condicoes, $observacoes]); if ($result) { echo "<p>Imóvel cadastrado com sucesso!</p>"; } else { echo "<p>Erro ao cadastrar imóvel.</p>"; } } else { echo "<p>Por favor, preencha todos os campos obrigatórios corretamente.</p>"; } } ?>
Este conjunto de scripts forma uma base para um sistema simples de cadastro e consulta de imóveis usando PHP e MySQL. Você pode expandir adicionando páginas para consulta e edição, além de implementar validações mais completas e segurança, como proteção contra CSRF e autenticação de usuários.
Para aprender mais sobre PHP e desenvolvimento web, consulte a documentação oficial do PHP: https://www.php.net/manual/pt_BR/.