POrtifólio
João Victor Silva dos Santos
Objetivo do Projeto:
O objetivo deste projeto é criar uma aplicação web que permita ao usuário descobrir seu signo
zodiacal com base na sua data de nascimento. O sistema deve ter uma página inicial para o
usuário inserir a data e, após o envio do formulário, ser redirecionado para outra página que
exibirá o signo correspondente com algumas informações adicionais.
Estrutura do Projeto
[Link] — A página inicial com o formulário para inserir da data de nascimento.
[Link] — A página que mostra o signo baseado na data de nascimento inserida.
[Link] — Arquivo XML com as informações de cada signo.
[Link] — Arquivo de estilização personalizado.
[Link] — Arquivo com funções auxiliares PHP
Passo 1: Criando o arquivo XML com as informações dos signos
o primeiro passo seria criar o arquivo [Link] que vai armazenar as informações dos signos
zodiacais. Este arquivo terá a seguinte codigo:
<?xml version="1.0" encoding="UTF-8"?>
<signos>
<signo>
<nome>Áries</nome>
<data_inicio>03-21</data_inicio>
<data_fim>04-19</data_fim>
<caracteristicas>Corajoso, impulsivo, líder</caracteristicas>
</signo>
<signo>
<nome>Touro</nome>
<data_inicio>04-20</data_inicio>
<data_fim>05-20</data_fim>
<caracteristicas>Paciente, determinado, confiável</caracteristicas>
</signo>
<!-- Adicione os outros signos de forma semelhante -->
</signos>
Eu criei esse XML com apenas dois signos (Áries que é meu signo e Touro da minha namorada)
mas poderia encaixar mais.
Passo 2: Criarr a Página Inicial — [Link]
AOo criar o arquivo [Link], que será a página onde o usuário irá inserir a sua data de
nascimento para descobrir o signo.
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Descubra seu Signo</title>
<link href="[Link]
rel="stylesheet">
<link rel="stylesheet" href="[Link]">
</head>
<body>
<div class="container">
<h1 class="text-center mt-5">Descubra seu Signo</h1>
<form action="[Link]" method="GET">
<div class="mb-3">
<label for="dataNascimento" class="form-label">Data de Nascimento</label>
<input type="date" class="form-control" id="dataNascimento"
name="dataNascimento" required>
</div>
<button type="submit" class="btn btn-primary">Descobrir Signo</button>
</form>
</div>
</body>
</html>
Fiz a estilização no bootstrap.
Passo 3: Criar a Página de Resultado — [Link]
Após o usuário enviar sua data de nascimento, vamos processá-la na página [Link]
para determinar o signo e exibir as informações relacionadas.
<?php
// Lê a data de nascimento enviada pelo formulário
$dataNascimento = $_GET['dataNascimento'] ?? null;
if ($dataNascimento) {
// Converte a data de nascimento para um objeto DateTime
$data = new DateTime($dataNascimento);
$mes = $data->format('m');
$dia = $data->format('d');
// Lê o arquivo XML dos signos
$xml = simplexml_load_file('[Link]');
$signo = null;
// Percorre os signos e verifica em qual intervalo a data de nascimento se encaixa
foreach ($xml->signo as $s) {
$inicio = DateTime::createFromFormat('m-d', (string)$s->data_inicio);
$fim = DateTime::createFromFormat('m-d', (string)$s->data_fim);
// Adiciona o ano atual para a comparação
$inicio->setDate(date('Y'), $mes, $dia);
$fim->setDate(date('Y'), $mes, $dia);
// Verifica se a data de nascimento está dentro do intervalo do signo
if (($data >= $inicio) && ($data <= $fim)) {
$signo = $s;
break;
// Se não encontrar o signo, define um valor default
if (!$signo) {
$signo = (object)[
'nome' => 'Desconhecido',
'caracteristicas' => 'Não encontrado.',
];
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Seu Signo - Resultado</title>
<link href="[Link]
rel="stylesheet">
<link rel="stylesheet" href="[Link]">
</head>
<body>
<div class="container">
<h1 class="text-center mt-5">Seu Signo</h1>
<div class="mt-4">
<h3><?php echo $signo->nome; ?></h3>
<p><strong>Características:</strong> <?php echo $signo->caracteristicas; ?></p>
</div>
<a href="[Link]" class="btn btn-secondary mt-4">Voltar</a>
</div>
</body>
</html>
Passo 5: Testando a Aplicação
Agora que os arquivos estão criados e configurados, irei testar a aplicação: Coloquei todos os
arquivos em um servidor local XAMPP.
Acessei a página inicial ([Link]).
Coloquei 25/03/2005
Pressionei o botão "Descobrir Signo".
A página de resultado ([Link]) exibiu o signo aries, junto com suas características.
Conclusão
Este trabalho me fez criar uma aplicação em PHP, HTML, CSS e XML. Basicamente serve para
comparar datas de nascimentos e a interface foi feita no bootstrap, serve para descobrirmos
os signos de acordo com as datas.