EXERCÍCIOS DE PHP
 
Exercício 10  

<?

#função de itens do formulário
function item($desc, $nome, $size, $value)
{
echo "<tr><td><b>$desc:</b></td><td><input type=text name=$nome size=$size value=\"$value\"></td></tr>\n";
}
?>

<html>
<title>Exercício de Revisão 1</title>
<body>

<?
#se é um submit do form adiciona dados ao ficheiro
if (isset($regista))
{
$ficheiro=fopen( "guestbook.db", "a");

$buffer=$nome . "§" . $email . "§" . $homepage . "§" . $sexo . "§" . $mensagem . "§\n";
fputs($ficheiro,$buffer);
fclose($ficheiro);
}


#verifica se existe ficheiro de base de dados do guestbook
if (file_exists( "guestbook.db"))
{

#abre ficheiro de db
$ficheiro=fopen( "guestbook.db", "r");

#inicia contador a zero
$cont=0;

#define tabela como um array
$tabela=array();

#enquanto nao chega ao fim do ficheiro, armazena dados numa tabela
while (!feof($ficheiro))
{
#tira uma linha do ficheiro ate 1000 bytes
$linha=fgets($ficheiro,1000);

#se a linha lida não é o EOF armazena dados
if (!feof($ficheiro))
{
#mete na posicao da tabela a informacao
$tabela[$cont]=$linha;
$cont++;
}
} # fim do while


#define $dados como sendo um array
$dados=array();

#inicializa contador de meninos e meninas
$meninos=0;
$meninas=0;


#abre tabela
echo "<table border=1 align=center>";

#escreve dados na ordem inversa
for ($c=$cont-1; $c>=0; $c--)
{
#retira dados da tabela para o array $dados
$dados=split( "§",$tabela[$c]);

#armazena dados nas devidas variáveis
$nome=$dados[0];
$email=$dados[1];
$homepage=$dados[2];
$sexo=$dados[3];
$mensagem=$dados[4];

#define a cor e numeros de male/female
switch($sexo)
{
case "m" : $cor= "#8080FF";
$meninos++;
break;

case "f" : $cor= "#FF80FF";
$meninas++;
break;

default: $cor= "#FF0000"; #se houver algum problema com o ficheiro de base de dados,
#vai escrever esta coluna a vermelho
}

echo "<tr>"; #abre a primeira linha de dados da tabela
echo "<td bgcolor=$cor align=center>".($c+1). "</td>"; #escreve posição com a devida cor
echo "<td><a href=mailto:$email>$nome</a></td>"; #escreve o nick com o link para o email

#caso tenha homepage mete coluna com link, senao mete os tracinhos
if (strlen($homepage)>11) echo "<td align=center><a href=\"$homepage\" target=_blank>Homepage</a></td>"; #12 caracteres do "http://x.xx"
else echo "<td align=center>---</td>";

#termina a primeira linha; \n para no html fazer um linebreak
echo "</tr>\n";

echo "<tr>"; #abre a segunda linha de dados

#escreve a mensagem numa linha com a largura das 3 colunas de cima
echo "<td colspan=3>$mensagem</td>";

#termina a segunda linha; \n para no html fazer um linebreak
echo "</tr>\n";

} #fim do for

#fecha a tabela do guestbook
echo "</table>";

#deixa um espaço no browser
echo "<br><br>\n\n";


#total de registos
$total=$meninos+$meninas;

#altura maxima da tabela do grafico
$max_altura=200;

#regra 3 simples para calculo de alturas
$alt_meninos=$meninos*$max_altura/$total; #altura da barra dos meninos
$alt_meninas=$meninas*$max_altura/$total; #altura da barra das meninas

#regra 3 simples para calculo de percentagens
$p_meninos=$meninos*100/$total; #percentagem dos meninos
$p_meninas=$meninas*100/$total; #percentagem das meninas


#inicio da tabela do grafico
echo "<table align=center>\n";
echo " <tr>\n";
echo " <td valign=bottom align=center>\n";

#escreve percentagem com 2 casas decimais
echo number_format($p_meninos,2) . "%<br>";

#desenha o grafico dos meninos
echo " <table width=100 height=$alt_meninos border=0 bgcolor=#8080FF>\n";
echo " <tr><td><img src=http://www.cidadela.org/imagens/pix.gif></td></tr>\n"; #a imagem é para n deixar a celula vasia
echo " </table>\n";

echo " </td><td valign=bottom align=center>\n";

#escreve percentagem com 2 casas decimais
echo number_format($p_meninas,2) . "%<br>";

#desenha o grafico das meninas
echo " <table width=100 height=$alt_meninas border=0 bgcolor=#FF80FF>\n";
echo " <tr><td><img src=http://www.cidadela.org/imagens/pix.gif></td></tr>\n"; #a imagem é para n deixar a celula vasia
echo " </table>\n";


echo "</td>\n";
echo "</tr>\n";

echo "<tr><td align=center><b>Rapazes</b></td><td align=center><b>Raparigas</b></td></tr>";
echo "<tr><td align=center>$meninos</td><td align=center>$meninas</td></tr>";
echo "<tr><td align=center colspan=2><b>Total: $total</td></tr>";
echo "</table>\n\n";
#fim da tabela do grafico

} # fim do if que verifica a existencia do ficheiro de db


?>
<br><br>
<br><br>
<!-- formulário de registo -->

<form action= <?=
Parse error: parse error in /usr/home/cidadel/www/php/biblioteca/revisao1/revisao1.phps on line 178

Ver Resultado >

Por: Vasco Pinheiro
Website: www.cidadela.org

 
 

ANÚNCIOS

 



 
 
 
  Tutoriais | Fóruns de Discussão | Notícias | Jogos | Dicas | Flash | Downloads | Livros
Gifs Animados | Loja Online | Publicitar no Truques e Dicas | Contactos