• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

entering

[PHP] Iniciação em PHP

18 mensagens neste tópico

Introdução

O que é PHP?

PHP (Hypertext Preprocessor) originalmente chamado como Personal Home Page Tools é uma linguagem de scripting escrito por e para desenvolvedores de aplicações Web.

Pode ser embebido em HTML e corre do lado do servidor (server-side scripting) ou seja "apenas é enviado HTML" para o cliente, sendo assim torna-o bastante seguro, pois o cliente apenas vê o desejado.

PHP é um módulo oficial do Apache, como o Apache PHP pode correr em várias plataformas entre elas por ex: Unix, Mac, Windows ...

Além de ser portável também é bastante usado, como tal existe muita documentação sobre PHP. Se anda a procura de uma linguagem de scripting a correr do lado do servidor, experimente PHP não se vai arrepender.

A história de PHP

PHP foi desenvolvido em 1994 por Rasmus Lerdorf, inicialmente desenvolvido com o objectivo de obter informações sobre as visitas a seu site, mais tarde surge uma nova versão PHP/FI que inclui o Form Interpreter.

Em 1997, PHP já era usado aproximadamente por 50000 páginas na Internet e foi crescendo e evoluindo (na altura que estou a escrever isto já esta na versão 5.1.2). Para ter ideia do crescimento de PHP, apenas um ano mais tarde em vez de 50000 páginas na Internet a usar PHP existia aproximadamente o dobro e em 2000 atingiu a marca de dois milhões.

Razões para usar PHP

  • Performance elevada;
  • Custo (usar PHP não custa nada 0€);
  • Fácil de aprender;
  • É estável;
  • É popular (o que torna fácil encontrar documentação e source codes);
  • Permite aceder a bases de dados (ODBC e suporte nativo por exemplo: MySQL e Oracle);
  • PHP pode correr em quase todo o lado (ASP só corre em IIS, que na minha opinião é menos seguro que Apache).

Adicionar PHP a HTML

Chegamos finalmente ao ponto de escrever o primeiro script em PHP.

<html>
<head>
<title>Olá Mundo</title>
</head>
<body>
<?php
echo "Olá Mundo!";
?>
</body>
</html>

Este código apenas mostra Olá Mundo, tudo que é PHP tem que estar dentro das tags <?php ?> ou então dentro de <? ?> (short tags). Não aconselho o uso dos short tags, pois é necessário estar no php.ini a opção short_open_tag on. Também se pode usar o HTML script tags <SCRIPT LANGUAGE="PHP"> </SCRIPT>.

Se desejar ver informações sobre o PHP, Apache, ...

<html>
 <head>
<title>phpinfo</title>
 </head>
 <body>
<?php
phpinfo(); // Função que mostra informações do sistema
?>
 </body>
</html>

Irei agora mostrar um exemplo com um formulário e um campo de texto, o utilizador introduz um nome, que é recebido por PHP e consequentemente mostrado Olá NOME.

Código HTML

<html>
 <head>
<title>ex01</title>
 </head>
 <body>
<form name="form1" method="post" action=""> <!-- Inicio do formulario -->
  Nome:
  <input type="text" name="nome" maxlength="200"> <!-- Campo de texto máximo de 200 caracteres -->
  <br>
  <input type="submit" name="Submit" value="Enviar"> <!-- Botão para submeter -->
</form> <!-- Fim do formulario -->
 </body>
</html>

Se premir o botão Enviar nada será feito (a página será recarregada), pois não existe nenhum tratamento da string recebida (campo nome). O código PHP deverá estar acima do código HTML.

<?php
if (isset($_POST['nome'])) { // Testa se a variável $_POST['nome'] existe
 echo "Olá ", $_POST['nome'];
 exit; // Termina a execução
}
?>

Iremos ver mais à frente melhor o $_POST (e também o $_GET) na secção Passar informações.

Sintaxe e variáveis

Nesta secção procuro abordar alguns aspectos gerais da linguagem, como usar variáveis e maneiras de mostrar texto na janela do browser.

Aspectos gerais

  • Não são necessárias declarações de variáveis;
  • PHP não é HTML, PHP é embebido em HTML no entanto cada parte do documento é interpretado como PHP ou HTML consoante o caso;
  • PHP tem uma sintaxe similar a C em alguns aspectos:
    • Não interpreta espaços em branco (ex: $variavel=2; é igual a $variavel = 2;)
    • Ao contrário de C o nome das funções não diferem minúsculas de maiúsculas
    • Expressões são terminadas em ;
    • Atribuições ($variável=valor)
    • Comentários ( /* */ ou //)
    • Chavetas separam blocos de instruções

    [*]PHP tem uma sintaxe similar a Perl em alguns aspectos:

    • Comentários ( # texto )
    • Variáveis começam por o carácter dólar ($)

Variáveis

Uma das maneiras principais de armazenar informação é por meio de variáveis. Existem algumas regras sobre variáveis:

  • Como já foi referido em cima começam por $;
  • É atribuído um valor a variável usando o carácter =;
  • O valor de uma variável é o valor da sua última atribuição;
  • Os caracteres admitidos no nome das variáveis são a-z A-Z 0-9 e _ (no entanto o primeiro carácter a seguir ao $ não pode ser um número).

<?php
$var=3;
echo $var;
echo "<br />";
$var=5;
echo $var;
?>

Output:

3
5

Nota: uma variável cuja atribuição é feita num bloco de instruções (<?php ... ?>) estará disponível no resto dos blocos (<?php ... ?>).

Tipos de variáveis

PHP facilita a vida no tratamento de tipos de variáveis e é flexível (para programadores de linguagens estilo C podem esquecer declarações do estilo int variavel e char variavel[num]).

<?php
$teste = 2 + 0.15;
echo $teste;
?>

Output:

2.15

O output é o esperado, PHP converte o inteiro (2) num float (número real) e depois soma.

<?php
$teste="Olá";
echo $teste; // Igual a printf ("%s",$teste);
?>

Output:

Olá

Output

echo

void echo (string arg1, [string arg2 ...]);

O echo não é realmente uma função mas sim uma construção da linguagem, como tal os parênteses não são obrigatórios e no caso de se querer passar mais de um parâmetro não se podem usar.

print

int print (string arg);

O print não é realmente uma função mas sim uma construção da linguagem, como tal os parênteses não são obrigatórios. Devolve um inteiro, que no entanto é sempre 1. Apenas permite passar um parâmetro.

printf

int printf (string,args);

Produz um output formatado (equivalente ao printf de C), devolve o tamanho da string que foi enviada. Alguns formatos possíveis:

  • %s - string
  • %d - inteiro de base 10
  • %o - inteiro de base 8
  • %f - float, entre outros

Constantes e Operadores

Constantes

Uma constante é um nome para um determinado valor, tal como o nome sugere não pode ser modificado ao longo da execução do script.

O nome de uma constante obedece às mesmas regras que o nome de uma variável, ou seja: os caracteres admitidos no nome das constantes são a-z A-Z 0-9 e _ (no entanto o primeiro carácter não pode ser um número).

<?php
define ("TESTAR","xxx"); // Função que define a constante TESTAR com a string xxx
echo TESTAR;
?>

Output:

xxx

Pode-se obter o valor de uma constante através do seu nome (ao contrário das variáveis não possui um $ antes), ou então através da função constant. O exemplo que irei dar a seguir faz o mesmo que o exemplo acima dado, no entanto a função constant é especialmente útil quando à partida não se sabe o nome da constante, por exemplo porque se encontra armazenado numa variável ou é retornado por uma função.

<?php
define ("TESTAR","xxx");
echo constant("TESTAR");
?>

Output:

xxx

Se quiser verificar se uma função se encontra definida, bastara usar a função defined.

Exemplo:

<?php
define ("TESTAR","xxx");
if (defined('TESTAR')) echo "Constante definida.";
?>

Constantes "mágicas"

PHP providencia um grande número de constantes predefinidas (http://pt.php.net/manual/en/reserved.constants.php). Também podem ser visualizadas usando a função get_defined_constants(), esta função devolve o nome e os valores de todas as constantes, devolvendo uma matriz (array).

<?php
print '<pre>'; // Esta tag mostra texto pre-formatador
print_r(get_defined_constants());
print '</pre>';
?>

Output:

Array
(
[E_ERROR] => 1
[E_WARNING] => 2
[E_PARSE] => 4
[E_NOTICE] => 8
...
)

Operadores

Aritméticos:

  • + Adição (++ incrementa um valor)
  • - Subtracção (-- decrementa um valor)
  • * Multiplicação
  • / Divisão
  • % Módulo

Lógicos (A diferença entre o and e &&, e or e || é ao nível de precedências):

  • and Devolve TRUE quando ambos os argumentos são válidos
  • or Devolve TRUE se pelo menos um argumento é válido
  • ! Verdadeiro se o argumento não é verdadeiro
  • xor Devolve TRUE se pelo menos um argumento é válido, mas não ambos
  • && Devolve TRUE quando ambos os argumentos são válidos
  • || Devolve TRUE se pelo menos um argumento é válido

Comparação:

  • == Igual (=== idêntico, ou seja analisa se são do mesmo tipo)
  • != Diferente (!== não idêntico)
  • < Menor
  • > Maior
  • <= Menor ou igual
  • >= Maior ou igual

Strings

Existem dois operadores de strings, o . e o .= que servem para concatenar strings (para programadores de C que estão habituados a usar a função strcat em PHP tal não existe).

<?php
$s1="Olá ";
$s2=$s1 . "Mundo."; // $s2 = Olá Mundo.
//Ou $s1="Olá "; $s1.="Mundo.";
?>

Estruturas de controlo

If-Else-Elseif

A estrutura de controlo if é muito importante em qualquer linguagem de programação pois permite fazer verificações de condições e consequentemente só executar alguns blocos de instruções. Para programadores em C que existem grande semelhanças.

if (expressão) {
 instruções;
}
else {
 instruções;
}

Se pretende testar várias condições seguidas pode usar um conjunto de ifs encadeados.

if (expressão) {
 instruções;
}
else
 if { // Ou então elseif é idêntico
instruções;
 }
 else {
instruções;
 }

Exemplo:

<html>
 <head>
<title>ex02</title>
 </head>
 <body>
<?php
 $d=date("D");
 if ($d=="Fri")
echo "Bom fim de semana.";
 else
if ($d=="Mon")
  echo "Um bom inicio de uma semana de trabalho! ";
else
  echo "Um bom dia.";
?>
 </body>
</html>

Switch

A estrutura de controlo switch permite fazer várias verificações que poderiam ser feitas por N ifs encadeados mas assim torna-se muito mais simples.

switch (expressão) {
 case valor1:
instruções;
[break;]
 case valor2:
instruções;
[break;]
 [default:
instruções;]
}

Irei dar um exemplo, o mesmo que o exemplo do if faz mas usando um switch, poderá ver o que faz aqui.

<?php
$d=date("D");
switch ($d) {
 case "Fri":
echo "Bom fim de semana.";
break;
 case "Mon":
echo "Um bom inicio de uma semana de trabalho!";
break;
 default:
echo "Um bom dia.";
}
?>

While

Dentro das construções de PHP de ciclos esta é sem dúvida a mais simples. Executa o bloco de instruções enquanto a expressão for TRUE. Caso seja FALSE logo de início nem sequer chega a executar as instruções, nesse caso devera ser usado um ciclo Do-While que iremos ver de seguida.

while (expressão)
 instruções;

Exemplo:

<?php
$cont=1;
while ($cont<=5) {
 echo $cont."<br />";
 ++$cont;
}
?>

Output:

1
2
3
4
5

Do-While

O ciclo do while é similar ao while excepto que quando testa a expressão é no fim do ciclo e não no início.

do instruções
while (expressão);

Exemplo:

<?php
$cont=2;
do {
 echo $cont;
 ++$cont;
} while ($cont>20);
?>

Output:

2

Apenas mostra uma linha devido à expressão retornar FALSE. Se fosse um ciclo while em vez de um do while não mostrava uma única linha.

For

O ciclo mais complexo em PHP (em muitas outras linguagens também) sendo a sintaxe a seguinte:

for (expressão inicial; expressão condicional; expressão final)
 instruções;

expressão inicial - é executada apenas uma vez (normalmente usada para inicializar variáveis);

expressão condicional - é analisada a cada ciclo se é FALSE o ciclo termina, caso contrário continua;

expressão final - no fim de cada ciclo esta expressão é executada.

Exemplo (o output será igual ao output da secção while só que desta vez é usado o for):

<?php
for ($cont=1;$cont<=5;++$cont)
 echo $cont."<br />";
?>

Output:

1
2
3
4
5

Nota: Se quiser incluir mais de uma instrução basta estarem entre chavetas, também é possível dentro de cada expressão ter várias instruções desde que separadas por vírgula.

Ex: for ($cont=1;$cont<=5;++$cont,++$cont,--$cont) // Faz exactamente o mesmo

Break e Continue

A maneira mais comum de sair fora de um ciclo é a expressão tornar-se FALSE. Os comandos break e continue possibilitam outra opção.

break

Termina a execução de um ciclo.

<?php
$cont=1;
while ($cont<=5) {
 echo $cont."<br />";
 ++$cont;
 if ($cont==3)
break;
}
?>

Output:

1
2

continue

Salta o resto das instruções do ciclo actual que o contêm e continua a execução na expressão condicional.

<?php
$cont=0;
while ($cont<5) {
 ++$cont;
 if ($cont==3)
continue;
 echo $cont." ";
}
?>

Output:

1 2 4 5

Funções

Funções definidas pelo utilizador não são realmente necessárias, pode-se produzir sites interessantes e úteis sem recorrer a funções definidas pelo utilizador mas apenas a construções básicas e funções já existentes no PHP. Se acha que os seus ficheiros em PHP estão a ficar demasiados grandes, difíceis de perceber, e difícil de fazer a gestão, pense em usar funções.

O que é uma função?

Função é uma maneira de pegar num pedaço de código dar-lhe um nome e pôr-lo à parte e quando quiser pode chamá-lo pelo nome. São especialmente úteis quando vamos usar esse pedaço de código várias vezes, no entanto em situações que só são usadas uma vez também são úteis por permite dividir bem o código tornando-o mais legível.

Sintaxe

function nome-da-função ($arg1, $arg2, ...) {
 instruções;
 [return $valor;]
}

Vou dar um exemplo de como fazer uma função a somar dois valores:

<?php
function soma ($valor1,$valor2) {
 return($valor1+$valor2);
}
if (isset($_POST['valor1']) && isset($_POST['valor2'])) {
 echo soma($_POST['valor1'],$_POST['valor2']);
 exit;
}
?>

O código HTML é o seguinte e deverá ser colocado após o código PHP:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>ex04</title>
</head>
<body>
<form name="form1" method="post" action="">
 Valor 1
 <input name="valor1" type="text" id="valor1" maxlength="20">
 <br>
 Valor 2
 <input name="valor2" type="text" id="valor2" maxlength="20">
 <br>
<input type="submit" name="Submit" value="Enviar">
</form>
</body>
</html>

Variáveis locais e globais

Fora de funções as regras de variáveis são simples, se um valor for atribuído a uma variável, em qualquer parte do ficheiro em execução esse valor estará pronto a ser usado. As variáveis "declaradas" numa função são apenas acessíveis dentro dela, digamos que cada função tem um pequeno mundo seu e que não entra em conflito com o verdadeiro mundo. Se pretendem que numa função se refiram a variáveis globais deverão usar: global $variavel;.

Include e Require (se o require falhar emite um erro e pára o processamento)

É normal termos um conjunto de funções que vamos usar em várias páginas. Pode-se reunir esse conjunto de funções todo numa página PHP e incluir ao longo das páginas conforme necessário. Funções: include, include_once, require e require_once.

Passar informações

Alguma desta informação não é específica de PHP mas sim uma consequência da interacção PHP/HTML. HTML por si próprio é muito limitado. Imaginemos que quero guardar sempre numa variável de onde o utilizador veio para ter sempre um link 'Voltar atrás' correcto, tal não é possível com HTML; também podemos fazer umas forms todas giras mas de nada nos serve senão temos maneira de fazer o tratamento da informação recebida e guardá-la conforme o caso, aqui entra o PHP. Iremos abordar o $_POST e o $_GET.

$_GET

Variáveis fornecidas ao script através da URL. Similar ao $HTTP_GET_VARS (em desuso).

Exemplo

<?php
if (isset($_GET['palavra']))
 echo "A palavra é ".$_GET['palavra'];
else
 echo "Erro, variável não definida.";
?>

exemplos/ex05.php

exemplos/ex05.php?palavra=TESTE

Nota: Não recomendo a utilização do $_GET para sistemas de login, pois as passwords ficam a vista e também a utilização de URL grandes, mais de 255 caracteres é pedir problemas.

$_POST

Variáveis fornecidas ao script através de HTTP POST. Similar ao $HTTP_POST_VARS (em desuso).

É mais seguro que o $_GET pois as passwords não ficam visíveis no URL e também permitem passar maior quantidade de informação. Ao longo deste manual já usei várias vezes o $_POST, cada campo de uma form tem um nome para ir buscar essa variável é $_POST['nome'].

Exemplo: <input type="text" name="nome" maxlength="200"> : $_POST['nome'].

Strings

Strings são uma sequência de caracteres que podem ser manipulados, dados como input a funções, enviadas para o utilizador, recebias pelo utilizador através de forms, entre outras.

$string1='Olá';
$string2="Olá";

A diferença é entre " e ', sendo esta ao nível da interpretação com " o PHP interpreta as variáveis e também caracteres começados pelo caracter especial \.

<?php
$nome="guest";
$string1='Olá $nome';
$string2="Olá $nome";
echo $string1;
echo "<br />";
echo $string2;
?>

Output:

Olá $nome
Olá guest

Sendo uma string um conjunto de caracteres, ou seja, um vector, podemos manipular facilmente strings.

<?php
$s="Olá tudo bem? Quando vais a casa do ..."; $cont=0;
while ($cont<strlen($s)) {
 if (($s[$cont]=="o") || ($s[$cont]=="O")) $s[$cont]="X";
 if (($s[$cont]=="l") || ($s[$cont]=="L")) $s[$cont]="w";
 if (($s[$cont]=="Q") || ($s[$cont]=="c")) $s[$cont]="k";
 ++$cont;
}
echo $s;
?> 

Output:

Xwá tudX bem? kuandX vais a kasa dX ...

Se desejar fazer concatenações de strings veja isto. Existem um conjunto de funções importantes: strlen (devolve o número de caracteres da string), strpos (devolve a primeira posição da substring), strcmp (compara duas strings, pode se usar o operador ==), strcasecmp (comparar duas strings mas sem diferenciar maiúsculas de minúsculas).

Matrizes (Arrays)

As matrizes em PHP, ao contrário de outras linguagens de programação (C/C++), permitem armazenar dados de tipos variados. Uma matriz é um conjunto de variáveis "juntas" numa só. Algumas das variáveis que já usamos, como por exemplo $_GET, usa uma matriz.

$aluno0="Nome";
$aluno1="Nome";

Podemos organizar numa matriz, por número e/ou string (entre ' ').

<?php
$alunos[0]="Eduardo";
$alunos[1]="João";
print_r ($alunos);
?>

array

$alunos=array('Eduardo', 'João');

É exactamente o mesmo que acima foi mostrado. Por defeito começa pelo índice 0, mas pode ser especificado outro valor, como veremos a seguir:

<?php
$alunos=array(0 => 'Eduardo', 1=> 'João');
print_r ($alunos);
?>

Existem muitas funções para manipulação de arrays vou dar apenas o exemplo das mais importantes (lista completa):

bool is_array (var); Devolve FALSE se a var não for um array

int count (var, [int mode]); Devolve o números de variáveis (linhas) no array

current Devolve o elemento actual do array

next Aponta para o próximo elemento do array

reset Aponta para o primeiro elemento do array

end Aponta para o último elemento do array

Editado por entering
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pah Isto é Que Foi 1 Ganda Post :P Parabéns e Continua é isto que o ppl ker :cheesygrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tanks Unknow, foi escrito já a uns meses largos (trabalho para entregar a um stor), em breve estou a pensar fazer algo mais alargado e organizado e por na net, dai querer algumas sugestoes, criticas, detecçao de erros, etc..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Grande tutorial que aqui temos. Só existe um pormenor que gostaria de ver corrigido: utiliza o GeSHI no código que postas para fazer o highlight do mesmo. :cheesygrin: Dará um aspecto mais soft ao tutorial.

De resto, um grande tutorial  :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas! eu gostei bastante do tuto.

Mas na qualidade de recente aprendiz de PHP devo dizer que coisas como...

Chegamos finalmente ao ponto de escrever o primeiro script em PHP.

<html>
<head>
<title>Ola Mundo</title>
</head>
<body>
<?php
echo "Ola Mundo!";
?>
</body>

</html>

... só complica, (pelo menos  a mim era o caso)

Pesso que para 1ª abordagem se devia de falar simplesmente em:

<?php
echo "Ola Mundo!";
?>

e aproveitar LOGO para esplicar que echo/print,...same shit. Porque era algo me me fazia uma granda confuzão!

Mas de resto está 5  estrelas, muito esplicito,... gostei!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

muito trabalhinho aí... ainda bem que alguem se predispoe a faze-lo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Muito muito bom.

Ainda bem que há tutos para os mais iniciados.

Tem-me ajudado bastante. Thanks :)

Mas olha...aqui nesta frase...

"O output é o esperado, PHP converte o inteiro (2) num float e depois soma."

O que queres dizer com "float"?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que queres dizer com "float"?

Float é um número real (fráccionário, com vírgulas portanto...)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Muito bom trabalho! E vem mesmo a calhar pois estou a precisar de aprender PHP para um trabalhinho que tenho que fazer. Isto vai sem dúvida acelerar o processo. Muito obrigado. :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Realmente tas de parabens se foste tu que o fizestes tens todo merito isto ajuda a muita gente, quem me dera que quando comecei a programar PHP encontra-se uma coisa destas :thumbsup:

É isto e um forum como o p@p, na altura que comecei com o PHP tive de aprender sozinho, pedia ajuda a pessoal que percebia mandavam-me passear.

Penso que devias fazer uma pagina toda pipi com este tutorial :P

Vou ver se arranjo um tempinho para fazer tutoriais tambem :cheesygrin:

PS: um moderador que faça move do topic para o forum Tutorials!

Cheers!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Drone ainda bem que referiste isso, sff que mudem para a secçao tutoriais

(foi eu que fiz o tut td)

*MCK-12: vou por uma nota no tutorial que um fload é um número real

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Drone ainda bem que referiste isso, sff que mudem para a secçao tutoriais

(foi eu que fiz o tut td)

*MCK-12: vou por uma nota no tutorial que um fload é um número real

Float* :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

bem...

lamento estar a dizer isto em vez de o fazer de uma vez.. ( exames )

wiki com isto!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O PaP tem um wiki... é importante que este tipo de conteudo comece a ser arquivado lá de forma a ficar mais acessível.

vai a

http://portugal-a-programar.org/mediawiki

faz login com o username aqui do fórum e afixa lá este tutorial :)

Atenção que a sintaxe do wiki n é bbcode como a dos fóruns... mas aquilo tem um editor todo pipi que permite afixação facil.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Gostei muito do toturial... Mas acho que é muito difícil aprender PHP...

Por acaso gostava de saber do pessoal que sabe PHP se foi muito dificil aprender(responda pfv) :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora