Aprenda PHP - tutorial completo

Tutorial com 22 lições, caso já saiba alguma pode pular, basta digitar control +F e localizar o que deseja, Vale lembrar que o PHP é uma linguagem que exige muita dedicação pra quem quer aprender, vale muito a pena, mas não é fácil, portanto dedique-se

Introdução

PHP possibilita a você inserir funcionalidades avançadas no seu site.
A finalidade deste tutorial é fazer uma introdução clara e precisa do PHP. Iniciaremos do zero, mas é necessário que você possua um bom conhecimento da linguagem HTML. Caso você não conheça HTML recomendamos começar com a leitura do nosso tutorial HTML.
PHP pode ser usado em vários contextos. - fóruns de discussão, enquetes, lojas on-line, pontes SMS, listas de discussão, etc. A única limitação para o uso do PHP é a sua imaginação. Não é difícil aprender PHP, mas esteja ciente de que PHP é mais sofisticado e exige mais do que o aprendizado da HTML. Assim, lembre-se que a paciência no processo de aprendizado é uma virtude.
Obviamente este tutorial não vai lhe ensinar tudo sobre PHP. Será necessário seu engajamento efetivo e realização de experimentos com os códigos mostrados. Se você necessitar de ajuda durante o processo de aprendizado recomendamos usar nossos fóruns. Lá você encontrará pessoas especializadas prontas para dar dicas, sugestões e conselhos.

O que é necessário?

Supõe-se que você tem acesso a um editor de texto é sabe como usá-lo.
Você precisa ter acesso a um computador ou a um servidor capaz de processar PHP. Ao contrário do que ocorre com a HTML e as CSS, para PHP não faz a menor diferença o navegador que o usuário está usando, mas o importante é o tipo de servidor na qual sua página está hospedada. Isto porque PHP é uma tecnologia processada no lado do servidor.
Nas lições seguintes você aprenderá como o PHP funciona e como configurar seu computador para processar PHP. Em seguida você aprenderá sobre funções e métodos do PHP.
Ao término deste tutorial você estará em condições de desenvolver scripts PHP e em consequência poderá usar as ilimitadas funcionalidades da linguagem para adicionar interatividade às suas páginas web.
Divirta-se!

Lição 1: O que é PHP

Quando se começa o estudo de PHP as primeiras perguntas são: O que é PHP? Como ele funciona?
Nesta lição daremos a resposta a estas duas perguntas. É essencial que você conheça as respostas antes de começar a desenvolver com PHP. O exato conhecimento do que é e de como funciona o PHP servirá de base para acelerar de forma significativa o seu processo de aprendizado.
Bem, vamos começar!

O que é PHP?

Inicialmente PHP foi um acrônimo para Personal Home Pages, mas posteriormente assumiu o significado de PHP: Hypertext Preprocessor.
PHP foi criado por Rasmus Lerdorf nascido na Groelândia - Dinamarca e posteriormente começou a ser desenvolvido como código livre. PHP não é um Padrão Web - é uma tecnologia de código aberto. PHP não é uma linguagem de programação no sentido estrito da palavra, mas sim uma tecnologia que permite a inserção de scripts nos seus documentos.
A descrição sumária do que seja uma página PHP é que trata-se de um arquivo gravado com a extensão .php contendo tags HTML e scripts que são executados em um servidor web.

Como funciona o PHP?

A melhor maneira de explicar como o PHP funciona é comparando-o com a HTML. Suponha que você digite o endereço de um documento HTML (por exemplo: http://www.meusite.com/page.htm) na barra de endereços do navegador. Esta ação desencadeia a requisição de uma página HTML. A requisição é ilustrada conforme a figura a seguir:
A figura mostra um cliente requisitando uma página HTML ao servidor
Como você pode observar, o servidor simplesmente envia uma página HTML ao cliente. Suponha agora que você digita http://www.meusite.com/page.php - requisitando uma página PHP - o servidor inicia seu trabalho de processamento:
A figura mostra um cliente requisitando uma página PHP ao servidor
O servidor lê cuidadosamente o arquivo PHP procurando por tarefas a serem por ele executadas. Somente depois de executar eventuais tarefas o resultado é enviado ao cliente. É importante ressaltar que o cliente recebe e vê somente o resultado do trabalho do servidor e não as instruções para executar o trabalho.
Se você clicar a funcionalidade do navegador para inspecionar o código fonte de uma página PHP você não verá código PHP - verá somente as tags HTML e seus conteúdos. Assim, não é possível visualizar os scripts PHP inseridos em uma página inspecionando o código fonte da página. Você terá que aprender PHP de outras maneiras, por exemplo: lendo nosso tutorial.
Neste tutorial você aprenderá como escrever comandos para serem executados pelo servidor!
Então, a primeira coisa que você precisa é... um servidor! Mas, não se apavore - você não precisará comprar um novo computador. Você precisa simplesmente instalar um software no seu computador que fará com que ele funcione como um servidor. Outra opção é ter um site hospedado em um servidor que suporte PHP. Neste caso você precisa estar on-line enquanto codifica.
Na próxima lição mostraremos como proceder para que seu computador funcione como um servidor.

Lição 2: Servidores

PHP é uma tecnologia que funciona no lado do servidor. Então, você precisa de um servidor para processar PHP. Você não desembolsará um tostão para dispor de um servidor e existem várias opções para obter um.
Esta lição mostra três opções para você dispor de um servidor. Nela faremos uma breve introdução às três opções (escolha a opção que melhor atenda às suas necessidades). Depois que o seu servidor estiver instalado e funcionando poderemos passar para a lição 3 na qual você criará sua primeira página PHP.

Opção 1: Servidor remoto de hospedagem

A primeira escolha é hospedar seu site em um servidor de hospedagem que suporte PHP.

Opção 2: Instalação de PHP no seu computador

Não existe uma receita de bolo para instalar PHP em um computador. Esta opção é recomendada para usuários com experiência, mas usuário comum não está impedido de escolhê-la. Basta seguir as instruções para download e instalação (em inglês) contidas nos links a seguir:

Opção 3: XAMPP

XAMPP é um programa que habilita PHP no computador sem necessidade de instalação complicada pelo usuário. É indicado para usuários comuns.

Lição 3: Sua primeira página PHP

Nas lições 1 e 2 aprendemos o que é PHP e instalamos um servidor ou vamos usar um servidor remoto para seguir nossas lições. Assim, estamos em condições de criar nossa primeira página PHP. Seguiremos um caminho simples e fácil, contudo ao chegar ao final da lição você entenderá muito mais de PHP e saberá o que pode fazer com ele.
Basicamente um arquivo PHP é um arquivo de texto com a extensão .php consistindo de:
  • Texto
  • Tags HTML
  • Scripts PHP
Você já sabe o que são textos e tags HTML. Então vamos examinar os scripts PHP.

Scripts PHP

O Grupo de documentação do PHP detalha e desenvolve documentaçãoa documentação para o PHP. Neste nosso tutorial nós, frequentemente, faremos referência e apontaremos para links naquela documentação. O objetivo é que você consulte e se familiarize com a documentação e fique em condições de encontrar respostas para suas dúvidas na documentação. PHP envolve tantas funcionalidades que é impossível aprender tudo em um tutorial. Em compensação PHP não é difícil. Ao contrário, PHP é uma linguagem parecida com o inglês.
Vamos começar com sua primeira página.

Exemplo: Hello World!

Comece gerando um documento HTML e grave-o na raiz do site com o nome page.php. Se você usa XAMPP, (ver lição 2), o caminho no seu computador é: "c:\xampp\htdocs\page.php" (ali seu computador é um servidor).
O código HTML deve ser como mostrado a seguir:
 <html>
 <head>
 <title>Minha primeira página PHP</title>

 </head>
 <body>

 </body>
 </html>

 
 
Na lição 1 ensinamos que PHP destina-se a escrever comandos para o servidor.. Vamos escrever um comando para o servidor.
Primeiramente devemos dizer ao servidor onde PHP começa e onde termina. Para isso usamos as tags <?php e ?> respectivamente, para marcar o início e o fim do código a ser executado pelo servidor (na maioria dos servidores é suficiente escrever <? para tag de início, contudo <?php á a maneira mais correta e recomendada de se escrever a tag de início do PHP).
Acrescente o seguinte código na sua marcação HTML:
 <html>
 <head>
 <title>Minha primeira página PHP</title>
 </head>
 <body>

 <?php   

 echo "<h1>Hello World!</h1>";

 ?>

 </body>
 </html>
 
 
Se você abrir o documento em um navegador deverá ver algo parecido com o seguinte:
Imagem mostrando o resultado do código em um navegador
Observe o que acontece quando você examina o código fonte do documento (selecione "view source"):
Imagem mostrando o código fonte do documento
O código PHP sumiu! Como foi dito na lição 1, apenas o servidor "vê" o código PHP - o cliente (no caso o navegador) "vê" somente o resultado!
Vamos examinar o que acontece. Pedimos ao servidor para escrever <h1> Hello World!</h1>. Em linguagem técnica podemos dizer que usamos a função Documentação PHPecho para instruir o servidor a escrever uma string para o cliente. O ponto e vírgula termina o comando. Não se apavore! Tentaremos manter o uso de linguagem técnica a um mínimo possível.
Este primeiro exemplo, sem dúvida, não é nada empolgante. Espere um pouco! Daqui para frente as coisas se tornarão cada vez mais empolgantes. Vejamos outro exemplo.

Exemplo: Agora!

Vamos fazer o servidor escrever mais. Podemos, por exemplo, pedir ao servidor para escrever a data e hora atual:
 <html>
 <head>
 <title>Minha primeira página PHP</title>

 </head>
 <body>

 <?php   

 echo date("r");

 ?>

 </body>
 </html>
 
 
O resultado em um navegador é algo como mostrado a seguir:

Imagem mostrando o resultado do código em um navegador

E o código HTML correspondente é:

Imagem mostrando o código fonte do documento

Está ficando empolgante. Certo?
Fizemos o servidor mostrar a data e hora na página renderizada. Notar que se você recarregar a página uma nova data e hora será mostrada. O servidor escreve a data e hora toda vez que a página é enviada ao cliente.
É importante notar que o código HTML renderizado contém apenas a data - não é mostrado o script PHP. Assim, não importa o navegador que o usuário está usando o resultado é sempre o mesmo. Atualmente, todas as funcionalidades que são executadas no lado do servidor sempre funcionam em todos os navegadores!
Chamamos a atenção novamente para o ponto e vírgula no final de uma linha de código PHP. Este ponto e vírgula é obrigatório ao final de um comando. Se você esquecer o script não funcionará.
No exemplo nós usamos documentaçãodate, que é uma função destinada a retornar a data e hora atuais no servidor.
Vamos ampliar o exemplo escrevendo uma string e uma function - separadas por um "." (ponto) - observe a seguir:
 <html>
 <head>
 <title>Minha primeira página PHP</title>
 </head>
 <body>

 <?php 
 
 echo "<p>O grupo data/hora atual é: " . date("r") . "</p>";

 ?>

 </body>
 </html>
 
 
O resultado em um navegador é algo como mostrado a seguir:

Imagem mostrando o resultado do código em um navegador

E o código HTML correspondente é:

Imagem mostrando o código fonte do documento

Na próxima lição estudaremos com detalhes a função documentaçãodate e os diferentes formatos do grupo data/hora.

Lição 4: Trabalhando com datas e horas

Nesta lição você aprenderá as diferentes maneiras de trabalhar com datas e horas usando o PHP. Começaremos mostrando exemplos bem simples com a finalidade de mostrar o que PHP é capaz de fazer. Nesta lição estudaremos com detalhes a função documentaçãodate do PHP.

Funções para data e hora

PHP nos fornece uma série de funções relacionadas a data e hora. Nesta lição veremos a mais importante destas funções; a função documentaçãodate.
Usando-se os diferentes parâmetros previstos para a função documentaçãodate ela retornará o grupo data/hora em diferentes formatos. Os parâmetros mais usuais são:
date("y")
Retorna o ano atual - para o dia de hoje o valor retornado é: 13
date("m")
Retorna o mês atual - para o dia de hoje o valor retornado é: 03
date("F")
Retorna o nome do mês atual - para o dia de hoje o valor retornado é: March
date("d")
Retorna o dia do mês atual - para o dia de hoje o valor retornado é: 08
date("l")
Retorna o nome do dia da semana atual - para o dia de hoje o valor retornado é: Friday
date("w")
Retorna o número correspondente ao dia da semana atual - para o dia de hoje o valor retornado é: 5
date("H")
Retorna a hora atual - para o dia de hoje o valor retornado é: 14
date("i")
Retorna o minuto atual - para o dia de hoje o valor retornado é: 02
date("s")
Retorna o segundo atual - para o dia de hoje o valor retornado é: 47
O exemplo a seguir ilustra o uso da função documentaçãodate
 <html>
 <head>
 <title>Grupo data/hora</title>

 </head>
 <body>

 <?php 
 
 echo "<p>Hoje é " . date("l") . "</p>";

 ?>
 
 </body>
 </html>
 
 

A hora é: 1362747767

Ops... aqui parece coisa para nerds. A função documentaçãotime() retorna a hora atual em número de segundos contados desde 1 de janeiro de 1970 às 12:00 PM, GMT.
 <html>
 <head>
 <title>Grupo data/hora</title>
 </head>
 <body>

 <?php   

 echo "<p>São decorridos exatamente " . time() . " segundos desde 1 de janeiro de 1970, 12:00 PM, GMT </ p> ";

 ?>

 </body>
 </html>
 
 
A representação da hora em segundos, contados desde 1 de janeiro de 1970 às 12:00 PM, GMT é chamada "timestamp" (UNIX timestamp) que é uma representação muito útil quando se trabalha com datas/horas passadas e futuras.
Por padrão, a função documentaçãodate usa o timestamp atual (isto é, o valor corrente de documentaçãotime()). Mas, usando um parâmetro você pode especificar o retorno da função em um diferente time stamp e assim trabalhar com datas passadas e futuras. No exemplo a seguir nós definimos o timestamp para 0 segundos a partir de 1 de janeiro de 1970 às 12:00 PM, GMT. Fazendo assim podemos verificar qual foi o dia da semana de 1 de janeiro de 1970.
 <html>
 <head>
 <title>Grupo data/hora</title>
 </head>
 <body>

 <?php 
 
 echo "<p>O dia da semana em 1 de janeiro de 1970 foi  " . date("l",0) . "</p>";

 ?>

 </body>
 </html>
 
 
A menos que você seja um gênio da matemática é muito complicado calcular o número de segundos passados desde de 1 de janeiro de 1970 para uma determinada data. Felizmente existe uma função chamada documentaçãomktime que realiza o cálculo.
A sintaxe para a função documentaçãomktime é (hora, minuto, segundo, mês, dia, ano). O exemplo a seguir faz a conversão para a data da chegada do homem à lua (21 de julho de 1969 às 02:56):
 <html>
 <head>
 <title>Grupo data/hora</title>
 </head>
 <body>

 <?php  
 
 echo mktime (2,56,0,7,21,1969);

 ?>

 </body>
 </html>
 
 
Notar que o retorno foi um número negativo. Isto indica que a data é anterior a 1 de janeiro de 1970.
Agora já podemos no valer do que até aqui aprendemos e usar a função documentaçãodate para saber qual foi o dia da semana em que ocorreu o evento histórico da chegada do homem à lua.
 <html>
 <head>
 <title>Grupo data/hora</title>
 </head>
 <body>

 <?php
 
 echo date("l", mktime(2,56,0,7,21,1969));
 
 ?>
 
 </body>
 </html>
 
 

Mas afinal qual a utilidade prática?

Até agora tudo parece muito teórico. Afinal de que maneira posso usar uma do tipo documentaçãotime() de uma forma prática? Ao aprender algo novo é importante saber se você poderá usar o que aprendeu em uma página web.
Considere que o que você aprende neste tutorial é a construção de blocos de códigos - o que você pode fazer com eles depende somente da sua criatividade e está limitado apenas pela sua imaginação! Eu ousaria afirmar que você já aprendeu muito mais do que está pensando. Por exemplo: você acha que é capaz de criar um background para uma página que mude a cada dia da semana e funcione em todos os navegadores?
Claro que você é capaz! Observe o exemplo a seguir:
 <html>
 <head>
 <title>Grupo data/hora</title>
 </head>

 <body background="background_<?php echo date("w"); ?>.png">

 </body>
 </html>
 
 
O exemplo mostrado, que usa uma imagem de fundo dinâmica, requer que você construa apenas sete imagens e as nomeie como background_1.png, background_2.png, background_3.png, etc.
Se o usuário entra no seu site na terça feira a imagem de fundo será background_2.png e no dia seguinte será background_3.png. Fácil e simples!
Na próxima lição estudaremos os blocos de código destinados a construção de loops e aqueles destinados a repetição de código.
PHP é legal. Você não acha?

Lição 5: Loops

Na linguagem PHP existem diferentes estruturas de controle destinadas a gerenciar a execução de scripts. Nesta lição nós estudaremos os loops. Loops são usados para executar repetidamente uma parte de um script em um determinado número de vezes ou até que seja encontrada uma determinada condição.

Loop "while"

A sintaxe para um loop documentaçãowhile é conforme mostrada a seguir:
 while (condição) {
  Comandos PHP de execução
 } 
 
 
Esta sintaxe pode ser traduzida para linguagem corrente como: execute comandos PHP enquanto (while) a condição for satisfeita.
Vejamos um exemplo bem simples:
 <html>
 <head>
 <title>Loops</title>

 </head>
 <body>

 <?php

 $x = 1;
  
 while ($x <= 50) {
    echo "<p>Este texto se repete 50 vezes</p>";
    $x = $x + 1;
 }
 ?>

 </body>

 </html>
 
 
No exemplo mostrado usamos uma variável denominada "$x". Como você pode notar, nomes de variáveis em PHP sempre começam com o caractere "$". No início é fácil esquecer esta sintaxe, contudo é absolutamente necessário o símbolo "$" para iniciar o nome de variáveis, pois do contrário o script não funciona.
Além disto o restante do script é auto-explicável. No começo a variável $x recebe o valor 1. A seguir o loop pede para o servidor executar o comando de escrever um texto enquanto a variável for menor do que 50. A cada execução a variável é incrementada de 1 unidade.

Loop "for"

Outra maneira de executar um loop é com uso de documentaçãofor conforme mostrado a seguir:
 
 for (Inicialização; Condição; passo) {
   Comandos PHP de execução
 }
 
 
Os comandos PHP de execução se repetem com a 'Inicialização' + 'passo' enquanto a 'Condição é satisfeita'. Se isso não faz sentido para você o exemplo a seguir esclarece melhor:
 <html>
 <head>

 <title>Loops</title>
 </head>
 <body>

 <?php

 for ($x=0; $x<=50; $x=$x+5) {
    echo '<p>A variável $x agora tem o valor igual a ' . $x . '</p>';
 }
 ?>

 </body>
 </html>
 
 
No exemplo mostrado $x é incrementado de 5 unidades em cada loop. O loop continua sua execução enquanto $x for menor ou igual a 50. Notar que o valor de $x é usado como parte do texto a ser escrito pelo script.
Observe outro exemplo:
 <html>
 <head>

 <title>Loops</title>
 </head>
 <body>

 <?php

 for ($x=1; $x<=6; $x=$x+1) {
    echo "<h" . $x . "> Cabeçalho nível</h" . $x . ">";
 }
 ?>

 </body>
 </html>
 
 
Você entendeu? começamos definindo o valor de $x igual a 1. A seguir em cada loop escrevemos um cabeçalho nível $x (h1, h2, h3, etc.) até $x alcançar o valor seis.

Loops dentro de loops

A princípio não existe limite para a quantidade de loops a usar. Você pode facilmente aninhar loops e criar muitas repetições.
Mas, cuidado! A execução de PHP torna-se lenta quando desenvolvemos scripts extensos e complicados. Por exemplo: observe a seguir o script com três loops capaz de escrever 16 milhões de cores!
Com a finalidade de não tornar a página de carregamento muito lento nós reduzimos drasticamente o número de repetições para passos de 30 limitando o número de cores escritas para 512.
 <html>

 <head>
 <title>Loops </title>
 </head>
 <body>

 <?php
 
 for ($intRed=0; $intRed<=255; $intRed=$intRed+30) {

    for ($intGreen=0; $intGreen<=255; $intGreen=$intGreen+30) {

       for ($intBlue=0; $intBlue<=255; $intBlue=$intBlue+30) {
  
    $StrColor = "rgb(" . $intRed . "," . $intGreen . "," . $intBlue . ")";
    
    echo "<span style='color:" . $StrColor . "'>" . $StrColor . "</span>";
  
       }
    }
 }
 ?>

 </body>
 </html>
 
 
No exemplo mostrado cada uma das três cores primárias (red, green e blue) pode ter um valor entre 0 e 255. Qualquer combinação de três valores resulta em uma cor do tipo rgb(255,255,255). O código da cor é escrito em um elemento <span> que por sua vez é estilizado com a respectiva cor.
Loops tornam-se mais interessantes é práticos depois que você aprende mais algumas funcionalidades do PHP. Assim que você entender o princípio de funcionamento do loop passe para a lição seguinte na qual estudaremos as condicionais.

Lição 6: Condicionais

Condicionais são usadas para executar um bloco de script sempre que determinada condição seja satisfeita. Por exemplo: uma condição pode estabelecer que uma data seja posterior a 1 de janeiro de 2012 ou que uma variável seja maior do que 7.

If...

A primeira condicional que estudaremos é o documentaçãoif cuja sintaxe é mostrada a seguir:
 if (condition) {
    Comandos PHP
 }
 
 
Mais uma vez a sintaxe se parece com a linguagem corrente: If (Se) se a condição é satisfeita, execute alguma coisa. Vejamos um exemplo simples:
 <html>

 <head>
 <title>Loops </title>
 </head>
 <body>

 <?php

 $x = 2;

 if ($x > 1) {
    echo "<p>A variável $x é maior que 1 </p>";
 }
  
 ?>

 </body>
 </html>
 
 

if ... else ...

Vejamos agora a condicional documentaçãoelse cuja sintaxe é mostrada a seguir:
 
 if (condição) {
    comandos PHP
 }
 else {
    Comandos PHP
 }

 
Mais uma vez a sintaxe se parece com a linguagem corrente: if (se) a condição é satisfeita, execute alguma coisa else (se não) execute outra coisa.
Na Lição 4 mostramos como encontrar o número representativo do mês. No exemplo a seguir usaremos este número em uma condicional documentaçãoif documentaçãoelse para encontrar em qual das estações do ano estamos:
 <html>
 <head>
 <title>Condicionais</title>
 </head>
 <body>

 <?php

 if (date ("m") == 3) {
    echo "<p>Estamos no outono!</p> ";
 }
 else {
    echo "<p>Eu não sei em que estação estamos!</p> "; 
 }

 ?>

 </body>
 </html>
 
 
Notar que se trata de uma condicional não muito inteligente - ela só funciona para o Mês de Março!
Contudo, existem várias maneiras de aperfeiçoar a condicional tornando-a mais precisa. Observe a seguir alguns operadores de comparação que podemos usar na condicional mostrada:
== Igual
< Menor que
> Maior que
<= Menor ou igual a
>= Maior ou igual a
!= Diferente
Existem também operadores lógicos:
&& e
|| ou
! não
Operadores se destinam a criar condicionais mais precisas e com seu uso podemos melhorar o exemplo mostrado anteriormente fazendo com que o retorno do script seja a estação primavera em todos os meses que ela ocorre e não somente em março:
 <html>
 <head>
 <title>Condicionais</title>

 </head>
 <body>

 <?php
 
 if (date("m") >= 3 && date("m") <= 5) {
    echo "<p> Estamos no outono!</p> ";
 }
 else {
    echo "<p> A estação atual é primavera, verão ou inverno!</p> ";
 }
  
 ?>

 </body>
 </html>

 
 
Vamos examinar estas novas condicionais:
 date("m") >= 3 && date("m") <= 5 
 
Pode ser traduzida como:
 Se o número que representa o mês for maior ou igual a 3  e menor ou igual a 5
 
 
Legal não é? Operadores são largamente usados em diferentes blocos de script do PHP.
Contudo nosso exemplo só funciona para os meses de março, abril e maio, Os demais meses não são contemplados pela condicional. Assim, vamos aperfeiçoá-lo mais:

if ... elseIf ... else...

Usando documentaçãoelseif podemos expandir a condicional e fazer com que nosso script funcione para todos os meses do ano:
 <html>
 <head>
 <title>Condicionais</title>

 </head>
 <body>

 <?php
 
 if (date("m") >= 3 && date("m") <= 5) {
    echo "<p>Estamos no outono!</p>";
 }

 elseif (date("m") >= 6 && date("m") <= 8) {
    echo "<p>Estamos no inverno!</p>";
 }

 elseif (date("m") >= 9 && date("m") <= 11) {
    echo "<p>Estamos na primavera!</p>";
 }

 else {
    echo "<p>Estamos no verão!</p>";
 }
  
 ?>

 </body>
 </html>

 
 
Escrever condicionais é uma questão de lógica e método. O exemplo mostrado é bem esclarecedor, porém o uso de condicionais pode tornar-se bem mais complexo.

switch ... case

Outra maneira de se escrever condicionais é com uso do método documentaçãoswitch:
 switch (expressão) {
 
 case 1: 
    comandos PHP
    break; 
 case 2: 
    comandos PHP
    break; 
 default:
    comandos PHP
    break;
 }
 
 
Este método toma por base uma expressão e a seguir relaciona uma série de "respostas" ou "valores" e respectivos comandos PHP. A maneira mais fácil de entender esta condicional é observando um exemplo.
Na lição 4 nós vimos que a função documentaçãodate("w") retorna um número representando dia da semana. Vamos mostrar um exemplo para escrever o nome do dia da semana em lugar do número que o representa:
 <html>
 <head>
 <title>Condicionais</title>
 </head>
 <body>

 <?php
 
 switch(date("w")) {
  
 case 1:
    echo "Hoje é segunda-feira";
    break;
 case 2:
    echo "Hoje é terça-feira";
    break;
 case 3:
    echo "Hoje é quarta-feira";
    break;
 case 4:
    echo "Hoje é quinta-feira";
    break;
 case 5:
    echo "Hoje é sexta-feira";
    break;
 case 6:
    echo "Hoje é sábado";
    break;
 default:
    echo "Hoje é domingo";
    break;
  
 }
  
 ?>

 </body>
 </html>
 
 
Em geral documentaçãoswitch é uma boa alternativa para a condicional documentaçãoif documentaçãoelse. Qual delas usar em uma determinada situação depende somente de você. Use aquela que você considera mais fácil e lhe pareça mais lógica. Criar scripts lógicos e claros pode se constituir em um grande desafio para o desenvolvedor.
Na próxima lição mostraremos como inserir comentários em seus scripts com a finalidade de facilitar o entendimento de como eles funcionam. Um script bem comentado oferece a você ou a outra pessoa dicas que serão valiosas por ocasião de mudanças ou manutenção futura.

Lição 7: Comentando seus scripts

Como você já deve ter concluído, um script PHP pode se tornar bastante confuso de entender. Nesta lição falaremos sobre comentários, sua importância e a maneira correta de inserí-los nos seus scripts.

Por que é importante comentar os scripts?

Quando codificamos, estamos escrevendo comandos para um servidor/computador usando uma linguagem estritamente formal que pode não refletir claramente o que você estava pensando quando criou o script.
Ora, isso pode criar dificuldades para terceiros (ou mesmo para você) quando se tratar de entender como o script foi estruturado e como consequência tornar extremamente árdua a tarefa de identificação e correção de erros.
Comentários são usados para se escrever pequenos textos explanatórios no script. O servidor ignora qualquer comentário no script e eles não afetam ou interferem com a funcionalidade do script.
No mundo dos negócios é comum as Companhias exigirem que os scripts e programas sejam comentados, pois é considerado um alto risco aceitar um sistema no qual a identificação e correção de erros se torna uma tarefa difícil pela falta de comentários.

Como inserir comentários?

É fácil inserir um comentário. Você simplesmente começa um texto de comentário escrevendo duas barras: "//".
Observe um exemplo mostrado na lição 5 no qual inserimos comentários:
 <html>
 <head>
 <title>Loops</title>
 </head>
 <body>

 <?php

 // Escreve código de cores usando três loops

 // Vermelho pode estar entre 0 e 255 
 for ($intRed=0; $intRed<=255; $intRed=$intRed+30) {

    // Verde pode estar entre 0 e 255
    for ($intGreen=0; $ intGreen<=255; $intGreen=$intGreen+30) {

       // Azul pode estar entre 0 e 255
       for ($ intBlue=0; $intBlue<=255; $intBlue=$intBlue+30) {

       // O código de cores tem o formato rgb(vermelho,verde,azul)
    $strColor = "rgb(" . $intRed . "," . $intGreen . "," . $intBlue . ")"

       // Aqui escrevemos o código da cor
    echo "<span style='color:" . $strColor . "'> " . $strColor . " </span>";

       // Fecha os loops
       }
    }
 }

 ?>
 
 
Para clareza do exemplo incluímos muitos comentários extras mostrando inequivocamente que os comentários auxiliam, e muito, a tarefa de debugar o script.
Então! Não se esqueça de comentar seus scripts.

Lição 8: Arrays

Nesta lição veremos o que array, como usá-los e o que podemos fazer com eles.
Entender arrays pode ser um pouco difícil no início. Mas, não desanime, vamos tentar... nós iremos tornar o processo de aprendizado o mais fácil possível.

O que é array?

Array é uma coleção (ou conjunto) de elementos indexados na qual cada um dos elementos tem um número identificador único.
Parece confuso? Creia, não é tão complicado.
Imagine uma lista de palavras separadas por vírgula como a mostrada a seguir:
 maçãs, peras, bananas, laranjas, limões
 
 
Agora imagine dividir a lista tomando como separador cada vírgula. Em seguite atribua a cada divisão um número identificador único:
maçãs (0), peras (1), bananas (2), laranjas (3), limões (4)
O que você acabou de ver é um array. Podemos dar um nome para o array como, por exemplo, "frutas". A idéa é que possamos acessar o array usando um número identificador e com ele consultar o valor correspondente usando uma sintaxe como mostrada a seguir:
frutas(0) = maças
frutas(1) = peras
frutas(2) = bananas
frutas(3) = laranjas
frutas(4) = limões
esta é a idéia por trás de arrays. Vamos ver um exemplo prático.

Como usar um array?

Continuaremos com o array de frutas. Passo a passo mostraremos como fazer para a lista funcionar como um array. Primeiro vamos criar uma variável para conter a lista como mostrado a seguir:
 <?php

 $listadefrutas = "maçãs, peras, bananas, laranjas, limões";
 
 ?>
 
 
A seguir vamos usar a função documentaçãoexplode para dividir a lista pelas vírgulas:
 <?php
  
 $listadefrutas = "maçãs, peras, bananas, laranjas, limões";
  
 $arrFrutas = explode(",", $listadefrutas);

 ?>
 
 
Viva! "$arrFrutas" agora é um array!
Observe que chamamos a função documentaçãoexplode com dois argumentos:
  1. a lista a ser dividida
  2. e o delimitador - isto é, o caractere usado para separar os itens da lista (no caso do exemplo a vírgula) colocado entre aspas ",".
Usamos a vírgula como delimitador, mas podemos usar qualquer caractere e até mesmo uma palavra.
Vamos comentar o script e colocá-lo em uma página PHP:
 <html>
 <head>
 <title>Array</title>
 </head>
 <body>

 <?php
 
 // Lista separada por vírgula
 $listadefrutas = "maçãs, peras, bananas, laranjas, limões";
  
 // Cria um array seprando os itens da lista (tendo a vírgula como delimitador)
 $arrFrutas = explode(",", $listadefrutas);
  
    // Escreve os valores do array
    echo "<p>Lista de frutas:</p>";
  
    echo "<ul>";
    echo "<li>" . $arrFrutas[0] . "</li>";
    echo "<li>" . $arrFrutas[1] . "</li>";
    echo "<li>" . $arrFrutas[2] . "</li>";
    echo "<li>" . $arrFrutas[3] . "</li>";
    echo "<li>" . $arrFrutas[4] . "</li>";
    echo "</ul>";

 ?>

 </body>
 </html>
 
 
este exemplo é muito simples e na verdade não há vantagem alguma em usar um array para realizar este tipo de tarefa. Mas, um momento... arrays podem ser usadas de maneira muito mais vantajosa.

Loop por um array

Na lição 5 estudamos loops. A seguir veremos como realizar um loop por um array.
Quando você conhece o número de itens de um array não encontra problemas para definir um loop por ele. Você começa em 0 e desenvolve o loop até atingir o número de itens do array. No exemplo das frutas um loop pelo array seria como mostrado a seguir:
 <html>
 <head>
 <title>Array</title>

 </head>
 <body>

 <?php
 
 // Lista separada por vírgula
 $listadefrutas = "maçãs, peras, bananas, laranjas, limões";
  
 // Cria um array seprando os itens da lista (tendo a vírgula como delimitador)
 $arrFrutas = explode (",", $listadefrutas);
  
    echo "<p>Lista de frutas:</p>";
    echo "<ul>";
  
    // Loop pelo array $arrFrutas
    for ($x=0; $x<=4; $x++) {
       echo "<li>" . $arrFrutas[$x] . "</li>";
    }
  
    echo "</ul>";

 ?>
  
 </body>
 </html>
 
 
Como você pode notar a variável $x (que cresce de 0 a 4 no loop) foi usada para chamar o array.

Como encontrar o tamanho de um array

Mas, o que acontecerá se uma outra fruta for adicionada à lista? Nosso array passará a ter mais um item cujo número identificador será 5. Já deu para ver o problema? Precisamos alterar o loop para que ele funcione de 0 a 5, caso contrário não serão incluídos todos os elementos do array.
Não seria maravilhoso se pudéssemos saber automaticamente quantos itens um array tem?
É isso exatamente o que faremos a seguir com uso da função documentaçãoforeach. Agora podemos criar um loop que funciona em todo array independentemente do número de itens nele contido:
 <?php
    foreach ($arrFrutas as $x) {
       echo $x;
    }
 ?>
 
 
este loop funciona independentemente do número de itens contido no array.

Outro exemplo

A seguir mostramos um exemplo, usando array, para escrever os nomes dos meses:
 <html>
 <head>
 <title>Array</title>

 </head>
 <body>

 <?php
 // Cria um array dos meses.
 // Cria um array com os meses. Notar a vírgula antes do mês de janeiro. Isto é necessário //porque não existe mês representado pelo número 
 $arrMes = array("","Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro");
  
 // Chama o array com o número do mês - escreve no navegador do usuário
 echo $arrMes[date("n")];
 ?>

 </body>
 </html>
 
 
Notar que usamos a função documentaçãoarray e não documentaçãoexplode para criar o array.
Ok. Isto é tudo sobre arrays! Na próxima lição veremos como escrever nossas próprias funções


Lição 9: Funções

Nas lições anteriores você aprendeu a usar funções, tais como, documentaçãodate() e documentaçãoarray(). Nesta lição você aprenderá a criar suas próprias funções usando a funcionalidade do PHP chamada documentaçãofunction.

O que é função?

Uma função se destina a processar inputs (entradas) e retornar um output (saída). Isto pode ser muito útil se, por exemplo, você tiver que processar uma grande quantidade de dados ou se tiver que realizar cálculos ou rotinas que devam ser executadas muitas vezes.
A sintaxe geral para uma função é mostrada a seguir:
 Nome da função(lista de parâmetros) {
    Comandos PHP
 }
 
 
O exemplo a seguir esclarece a sintaxe para uma função bem simples destinada a adicionar 1 unidade a um número:
 function AddOne($x) {
    $x = $x + 1;
    echo $x;
 }

 
 
O nome escolhido para nossa função foi AddOne e deve ser chamada com um parâmetro que é o numero a somar - por exemplo: 34....
 echo AddOne(34);
 
 
... o retorno da função será (pasmem!) 35.
No exemplo mostrado processou-se um número, contudo as funções podem processar textos, datas e qualquer outro tipo de dado. Você pode, até mesmo, criar funções para serem chamadas por parâmetros. Nesta lição estudaremos diferentes tipos de funções.

Exemplo 1: Função com vários parâmetros

Como dito anteriomente é possível criar funções com vários parâmetros. No exemplo a seguir criaremos uma função que é chamada com 3 números como parâmetros e retorna a soma deles:
 <html>
 <head>
 <title>Funções</title>

 </head>
 <body>

 <?php

 function AddAll($number1,$number2,$number3) {
    $plus = $number1 + $number2 + $number3;
    return $plus;
 }
  
 echo "123 + 654 + 9 é igual a " . AddAll(123,654,9);

 ?>

 </body>
 </html>
 
 
Ok. Isto foi bastante simples! Mas, o objetivo foi apenas mostrar que uma função pode ser chamada com vários parâmetros.

Exemplo 2: Data e hora em inglês

Vamos criar uma função um pouquinho mais complexa. Uma função a ser chamada com date() e time() e retornar a data e hora no formato: Wednesday, 15 February, 2012, 10:00:00 AM
 <html>
 <head>
 <title>Funções</title>
 </head>
 <body>

 <?php

 function EnglishDateTime($date) {
  
   // Array com o nome em portuguêss dos dias e semanas
   $arrDay = array("segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado","domingo");
  
   // Array with the English names of the months
   $arrMonth = array("","janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro");
  
   // Montar a data
   $EnglishDateTime = $arrDay[(date("w",$date))] . ", " . date("d",$date);
   $EnglishDateTime = $EnglishDateTime  . " " . $arrMonth[date("n",$date)] . " " . date("Y",$date);
   $EnglishDateTime = $EnglishDateTime  . ", " . date("H",$date) . ":" . date("i",$date);
  
   return $EnglishDateTime;

 }
  
 // Função de teste
 echo EnglishDateTime(time());

 ?>

 </body>
 </html>
 
 
Notar que a definição de '$arrMonth' e '$EnglishDateTime' constam de diversas linhas do script. Fizemos assim para que usuários com baixa resolução de tela tenham uma melhor visão do exemplo. Isto não tem nenhum efeito no funcionamento do código.
A função mostrada funciona em qualquer servidor independentemente do idioma. Isto significa que você pode usar esta função no seu site mesmo que ele esteja hospedado em um servidor na França e você quiser mostrar suas datas no formato inglês.
Por ora ficaremos por aqui sem nos aprofundar mais, pois agora você já sabe alguma coisa sobre como as funções trabalham.

Lição 10: Passando variáveis no URL
Quando se trabalha com PHP é comum a necessidade de se passar variáveis de uma página para outra. Nesta lição veremos como passar variáveis em um URL.

Como isto funciona?

Talvez você já tenha visto e ficado intrigado com URLs no formato parecido com o mostrado a seguir:
 http://html.net/page.php?id=1254
 
 
O que significa aquele sinal de interrogação depois do nome da página?
A resposta é: os caracteres depois do sinal de interrogação são uma HTTP query string. Uma HTTP query string contém variáveis e seus valores. No exemplo mostrado a HTTP query string contém uma variável chamada "id", e seu respectivo valor igual a "1254".
Observe outro exemplo:
 http://html.net/page.php?name=Joe
 
 
Aqui você tem uma variável ("name") com o valor ("Joe").

Como recuperar o valor de uma variável com PHP?

Suponha uma página PHP chamada people.php. Suponha, também, que você "chame" esta página usando o seguinte URL:
 people.php?name=Joe
 
 
A sintaxe PHP para recuperar o valor da variável 'name' passada no URL é mostrada a seguir:
 $_GET["name"]
 
 
Use documentação$_GET para recuperar o valor de uma variável. Vejamos outro exemplo:
 <html>
 <head>
 <title>Query string</title>
 </head>
 <body>

 <?php

 // Extrai o valor da variável name
 echo "<h1>Olá " . $_GET["name"] . "</h1>";

 ?>

 </body>
 </html>
 
 
Ao abrir a página que demonstra este exemplo faça a seguinte experiência: substitua na barra de endereços do navegador o nome "Joe" pelo seu nome e recarregue a página! Legal, não é?

Várias variáveis no mesmo URL

Você não está limitado a passar uma só variável no URL. Para passar mais de uma variável use o sinal & ( e comercial) para separar as variáveis, como mostrado a seguir:
 people.php?name=Joe&age=24
 
 
Este URL contém duas variáveis: name (nome) e age (idade). Tal como foi explicado anteriomente para recuperar as duas variáveis a sintaxe é mostrada a seguir:
 $ _GET["name"]
 $ _GET["age"]
 
 
Vamos usar mais uma variável no nosso exemplo:
 <html>
 <head>
 <title>Query string </title>
 </head>
 <body>

 <?php

 // Extrai o valor da variável name
 echo "<h1>Olá " . $ _GET["name"] . "</h1>";
  
 // Extrai o valor da variável age
 echo "<h1>Você tem ". $ _GET["age"] . " anos de idade</h1>";

 ?>

 </body>
 </html>
 
 
Bem, agora você já sabe como passar variáveis em um URL. Na próxima lição veremos mais um método de passagem de variáveis: o método usando formulários.

Lição 11: Passando variáveis com uso de formulários

Sites interativos se baseiam em entrada de dados pelos usuários. Uma das formas mais comuns de coletar dados e com uso de formulários
Nesta lição estudaremos como construir formulários e processar seus dados no servidor.

<form>

Para o elemento form destinado a marcar um formulário estão previstos, entre outros, dois atributos de suma importância, são eles: action e method.
action
Destina-se a definir o URL para o qual os dados do formulário serão enviados para processamento. Neste URL encontra-se o arquivo com o script de processamento dos dados.
method
Este atributo admite os valores "post" e "get" que são dois métodos deferentes de passagem de dados. Por enquanto você não precisa saber as diferenças entre estes métodos, basta saber que com "get" os dados são passados pelo URL e com post "post" são enviados em forma de um bloco de dados via um mecanismo denominado STDIN. Na lição anterior estudamos como recuperar dados passados no URL com uso de documentação$_GET. Nesta lição veremos como recuperar dados passados com uso do método "post".

Formulário em uma página HTML

A página contendo o formulário não precisa, necessariamente, ser uma página PHP. Não precisa nem mesmo estar no mesmo site que recebe seus dados para processamento.
O nosso primeiro exemplo mostra uma página contendo um formulário bem simples contendo apenas um campo de entrada de dados:
 <html>
 <head>
 <title>Formulário</title>
 </head>
 <body>

 <h1>Informe seu nome</h1>

 <form method="post" action="handler.php">
 <input type="text" name="username">
 <input type="submit">
 </form>

 </body>
 </html>

 
 
A renderização no navegador é conforme mostrada a seguir:
Form

Agora vem a parte divertida: receber e manipular dados com PHP
Para requisitar dados enviados por um formulário usamos documentação$_POST:
 
 $_POST["fieldname"];
 
 
Retorna o valor de um campo do formulário. Vejamos um exemplo.
Crie uma página contendo o formulário mostrado anteriormente. Crie outra página chamada "handler.php" (notar que este nome é o mesmo daquele constante como valor do atributo action da tag <form> no nosso formulário).
O arquivo "handler.php" é como mostrado a seguir:
 <html>
 <head>
 <title>Formulário</title>
 </head>

 <body>

 <?php

 echo "<h1>Olá " . $_POST["username"] . "</h1>";

 ?>

 </body>
 </html>
 
 

Dados do usuário e condicionais

No exemplo a seguir manipularemos os dados do usuário com condicionais. Nosso formulário será com mostrado a seguir:
 <html>
 <head>
 <title>Formulário</title>
 </head>
 <body>

 <form method="post" action="handler.php">

 <p>Qual é o seu nome:</p>
 <input type="text" name="username"></p>

 <p>Qual é a sua cor favorita:
 <input type="radio" name="favoritecolor" value="r" /> Vermelha 
 <input type="radio" name="favoritecolor" value="g" /> Verde 
 <input type="radio" name="favoritecolor" value="b" /> Azul </p>

 <input type="submit" value="Enviar" />

 </form>

 </body>
 </html>
 
 
A renderização no navegador é conforme mostrada a seguir:

A seguir mostraremos um script que usa o dado relativo a preferência de cor do usuário para mudar a cor do fundo da página conforme sua preferência. Faremos isso criando uma condicional (ver lição 6) que usa a cor escolhida pelo usuário no formulário.
 <?php

 $strHeading = "<h1>Olá " . $_POST["username"] . "</h1>";

 switch ($_POST["favoritecolor"]) {
 case "r":
  $strBackgroundColor = "rgb(255,0,0)";
  break;
 case "g";
  $strBackgroundColor = "rgb(0,255,0)";
  break;
 case "b":
  $strBackgroundColor = "rgb(0,0,255)";
  break;
 default:
  $strBackgroundColor = "rgb(255,255,255)";
  break;
 }

 ?>

 <html>
 <head>
 <title>Formulário</title>

 </head>
 <body style="background: <? echo $strBackgroundColor; ?>;">

 <? echo $strHeading; ?>

 </body>
 </html>
 
 
O fundo será branco se o usuário não escolher uma cor. Isto é feito com o uso da declaração default que define a ação a tomar se nenhuma das condições for satisfeita.
Mas, o que acontece se o usuário não fornece seu nome? O resultado será somente "Hello". Vamos usar mais uma condicional para resolver esta questão.
 <?php

 $strUsername = $_POST["username"];
  
 If ($strUsername != "") {
     $strHeading = "<h1>Olá " . $_POST["username"] . "</h1>";
 }
 else {
     $strHeading = "<h1>Olá visitante!</h1> ";
 }

 switch ($_POST["favorite color"]) {
 case "r":
  $strBackgroundColor = "rgb(255,0,0)";
  break;
 case "g";
  $strBackgroundColor = "rgb(0,255,0)";
  break;
 case "b":
  $strBackgroundColor = "rgb(0,0,255)";
  break;
 default:
  $strBackgroundColor = "rgb(255,255,255)";
  break;
 }

 ?>

 <html>

 <head>

 <title>Formulário</title>
 </head>
 <body style="background: <? echo $strBackgroundColor; ?>;">

 <? echo $strHeading; ?>

 </body>
 </html>

 
 
No exemplo anterior usamos uma condicional para validar o dado entrado pelo usuário. Neste caso particular, se o usuário não fornecer seu nome, não haverá grande prejuízo. Contudo em scripts mais avançados é essencial que se considere a possibilidade do usuário não entrar o dado solicitado ou mesmo entrar um dado do tipo totalmente diferente daquele que imaginamos quando criamos o formulário.

Exemplo: Formulário de contato

Com os conhecimentos que você já adquiriu sobre PHP você já está em condições de criar um formulário de contato usando a função documentaçãomail, que tem a seguinte sintaxe:
 
 mail(to, subject, message);
 
 
Começamos com nosso formulário:
 <html>
 <head>
 <title>Formulário de contato</title>
 </head>
 <body>

 <h1>Formulário de contato</h1>

 <form method="post" action="handler.php">
 <p>Assunto:<br /><input type="text" name="subject" /></p>
 <p>Menssagem:<br /><textarea name="message"></textarea></p>
 <input type="submit">
 </form>

 </body>
 </html>
 
 
A seguir temos o script PHP para processar os dados:
 <html>
 <head>
 <title>Functions</title>
 </head>
 <body>

 <?php

 // Enviar para (use seu endereço de e-mail)
 $strEmail = "name@mydomain.com";

 // Coleta dados do usuário
 $strSubject = $_POST["subject"];
 $strMessage = $_POST["message"];

 mail($strEmail,$strSubject,$strMessage);
 echo "E-mail enviado.";
  
 
 ?>

 </body>
 </html>
 
 
Convém notar que o exemplo só funcionará se você tiver acesso a um serviço de email. Por padrão este não é o caso em XAMPP e na maioria dos serviços de hospedagem gratuitos. Alguns serviços de hospedagem requerem que você inclua um header "from" conforme mostrado a seguir:
 
 mail("you@yourdomain.com", "Teste", "Isto é um teste de email", "From: me@mydomain.com"); 

Lição 12: Sessão

Quando você visita um site você realiza uma série de ações. Navega de uma página a outra. Talvez você preencha um formulário ou compre um produto.
Como desenvolvedor essas informações são de grande valia para criação de um site de sucesso.
Suponha que você necessita criar um site no qual algumas páginas serão de acesso restrito requerendo login e senha. Para que a proteção ao acesso seja efetiva as páginas restritas devem possuir mecanismos capazes de detectar se o usuário está logado. Em outras palavras, quando o usuário requisita uma nova página do site é preciso "lembrar" o que ele fez anteriormente.
É exatamente para isto que as sessões se prestam - como usar a funcionalidade sessions do PHP para armazenar e recuperar informações sobre um usuário em visita ao site.

Session

As documentaçãosession do PHP permitem gerenciar informações colhidas durante uma sessão (estada no site) do usuário. Você pode escrever aplicações inteligentes com uso de armazenagem e recuperação de informações sobre o usuário.
Uma sessão pode começar de diferentes maneiras. Não iremos nos ater a detalhes técnicos e focaremos no caso em que uma sessão começa com o armazenamento de um valor. Uma sessão ends/dies (termina/morre) se o usuário não requisitar nenhuma página após decorridos um determinado tempo (por padrão 20 minutos). Obviamente, no seu script, você pode terminar uma sessão a qualquer momento.
Suponha que 50 pessoas estão visitando o site ao mesmo tempo, por exemplo, em um site de vendas. As informações sobre quais itens cada uma delas incluiu na sua cesta de compras são um bom exemplo de armazenamento com uso de session. Para identificar cada um dos usuário o servidor usa um ID único armazenado em um cookie. Cookie é um pequeno arquivo de texto armazenado no computador do usuário (saiba mais sobre cookies na lição 13). Assim, sessions requerem suporte a cookies no navegador do usuário.

Exemplo de uso de sessions

Quando você requisitou esta página eu armazenei a hora em uma session. Eu fiz isto para mostrar a você como funciona uma sessão.
Eu criei um item de nome "StartTime" e armazenei ele usando o seguinte trecho de script PHP:
 <?php

 session_start();
 $_SESSION["StartTime"] = date("r");

 ?>
 
 
Desta forma uma sessão foi iniciada. Como foi dito anteriormente um ID é criado pelo servidor para cada sessão.
A sua sessão tem o seguinte ID: 0973bd63e5e280eef62e7ef198fabf2e
A qualquer momento eu posso chamar "StartTime" da sessão escrevendo o seguinte:
 <?php

 session_start();
 echo $_SESSION["StartTime"];

 ?>
 
 
Isto vai me mostrar que a página foi por você requisitada em Fri, 08 Mar 2013 14:14:02 +0100 (de acordo com o relógio do meu servidor).
O mais interessante é que esta informação permanece armazenada e disponível em session até mesmo depois que você sai desta página. A informação permanece até que a seesão termine.
por pdrão, uma sessão permanece ativa até que o usuário feche o navegador. Nesta ocasião ela termina. Se você quiser terminar uma sessão antes disto a sintaxe é como mostrada a seguir:
 <?php

 session_destroy();

 ?>
 
 
Vamos examinar outro exemplo de aplicação para sessão: uso de senha.

Sistema de login com uso de sessão

No exemplo a seguir iremos criar um sistema simples de login. Usaremos muitos dos conceitos que aprendemos até aqui.
Precisamos de um formulário para coletar login e senha do usuário. Observe a seguir:
 <html>
 <head>
 <title>Login</title>

 </head>
 <body>
 <form method="post" action="login.php">

 <p>Usuário: <input type="text" name="username" /></p>
 <p>Senha: <input type="text" name="password" /></p>

 <p><input type="submit" value="Login" /></p>

 </form>
 </body>
 </html>

 
 
A seguir criamos um arquivo denominado: login.php.
Neste arquivo o script verifica se o login e senha fornecidos no formulário estão corretos. Se estiverem, iniciamos uma sessão informando que o usuário está logado com um login e senha correta.
 <html>

 <head>
 <title>Login</title>

 </head>
 <body>
 
 <?php

 // Verifica se usuário e senha conferem
 if ($_POST["username"] == "php" && $_POST["password"] == "php") {
  
 // Se usuário e senha conferir definimos session para YES
   session_start();
   $_SESSION["Login"] = "YES";
   echo "<h1>Você está logado</h1>";
   echo "<p><a href='document.php'>Link para o arquivo restrito</a><p/>";
  
 }
 else {
  
 // Se usuário e senha conferir definimos session para NO
   session_start();
   $_SESSION["Login"] = "NO";
   echo "<h1>Você NÃO está logdo</h1>";
   echo "<p><a href='document.php'>Link para o arquivo restrito</a><p/>";
  
 }

 ?>

 </body>
 </html>

 
 
Nas páginas de acesso restrito precisamos verificar se o usuário que as requisitou está logado corretamente. Se não estiver ele é enviado para a página de login. Observe como é feito o script de proteção das páginas:
 <?php

 // Iniciar Session PHP 
 session_start();

 // Se o usuário não estiver logado manda ele para o formulário de login
 if ($_SESSION["Login"] != "YES") {
   header("Location: form.php");
 }

 ?>

 <html>
 <head>
 <title>Login</title>
 </head>

 <body>
 <h1>Este é um documento de acesso restrito</h1>

 <p>Acesso permitido somente para usuários logados.</p>
 </body>
 </html>
 
 
Agora você já conhece o objeto Session do PHP. Na próxima lição nós continuaremos nesta área estudando os cookies.


Lição 13: Cookies

Quais são as informações sobre seus visitantes, como elas são coletadas por um site e que uso o site faz das informações são questões que podem intrigar o usuário. Cookies são normalmente citados quando se quer exemplificar uma forma de coletar informações e de invasão de privacidade. Mas, afinal devemos nos preocupar com isso? Tire suas próprias conclusões. Ao terminar esta lição você saberá o que pode ser feito com cookies.

O que é cookie?

Cookie é um pequeno arquivo de texto no qual um site pode armazenar informações. Cookies são gravados no disco rígido do usuário e não no servidor.
A maioria dos cookies expira (se auto apagam) depois de transcorrido um determinado tempo de pode variar de 1 minuto a vários anos. Contudo o usuário pode identificar e apagar cookies do seu computador a qualquer momento.
A maioria dos navegadores, tais como, Microsoft Internet Explorer, Mozilla Firefox e Google Chrome, podem ser configurados de modo a que o usuário seja previamente avisado da gravação de cookie e dar-lhe a opção de aceitar ou não a gravação. Mas, por que simplesmente não permitir a gravação de cookies? Bem, isto é possível, contudo muitos sites não funcionarão sem uso dos cookies. Isto porque eles dependem de cookies para melhorar a usabilidade e viabilizar a funcionalidade do site.

Como a informação é armazenada no cookie?

É fácil configurar ou modificar um cookie com uso da função PHP documentaçãosetcookie. No exemplo a seguir criaremos um cookie e a ele daremos um valor.
Primeiro devemos escolher um nome para o cookie. No nosso exemplo escolhemos o nome "HTMLTest". A seguir definimos um valor para o cookie como mostrado a seguir:
 <?php 

 // Configura o cookie
 setcookie("HTMLTest", "Este é um cookie para teste");   

 ?> 

 
Por padrão, um cookie expira quando o navegador é fechado, mas isto pode ser facilmente alterado adicionando-se um parâmetro a mais na função definindo o tempo de vida do cookie:
 <?php 

 // Configura o cookie
 setcookie("Name", "C. Wing, time()+3600);   
 setcookie("Interests", "plane spotting", time()+3600); 
 
 ?>
 
 
"Time()+3600" define que o cookie expira em 3600 segundos (60 minutos) a partir de agora.
No exemplo mostrado armazenamos informações sobre o nome do usuário e seus interesses. Estas informações podem ser úteis, por exemplo, para direcionar o usuário para uma seção específica do site.

Como se recupera o valor de um cookie?

Para recuperar o valor de um cookie usamos documentação$_COOKIE. Por exemplo; para recuperar o valor do cookie mostrado no exemplo anterior a sintaxe é conforme mostrada a seguir:
 <?php 

 // Recupera o vlor do cookie
 $strName = $_COOKIE["Name"];   
 strInterest = $_COOKIE["Interest"];
  
 // Escreve no cliente
 echo "<p>" . strName . "</p>"   
 echo "<p>Você é interessado em: . " strInterest . "</p>"
 
 ?>
 
 

Quem pode ler um cookie?

Por padrão, um cookie pode ser lido por documentos de até segundo nível hospedados no mesmo domínio (por exemplo: html.net) no qual ele foi criado. Contudo, com uso dos parâmetros domain e path você pode restringir mais este comportamento usando a sintaxe mostrada a seguir:
 
 setcookie(name, value, expiration time, path, domain);
 
 
Vejamos um exemplo:
 
 <?php
 
 // Configurando o cookie: nome, valor, tempo da vida, caminho, domínio
 setcookie("Name", "C. Wing", time()+60*60*24*365, "/tutorials/php/", "www.html.net");   
 ?>
 
 
No exemplo mostrado criamos um cookie chamado "Name" com o valor "C. Wing." O cookie expira em 1 ano (60 segundos * 60 minutos * 24 horas * 365 dias) e pode ser lido apenas por arquivos no diretório "/tutorials/php/" no (sub-)domínio "www.html.net".

Exemplo de cookie

Vamos gravar um cookie no seu computador e observar o que acontece.
O código mostrado a seguir cria o cookie:
 <?php 

 // Criar cookie
 setcookie("HTMLTest", "Este é um cookie para teste!", time()+60*60*24, "/tutorials/php/", "www.html.net");   
  
 // Escreve a informação no cliente
 echo $_COOKIE ["HTMLTest"];    

 ?>
 
 
O cookie foi gravado no seu disco rígido. O cookie e gravado em um local do disco rígido que varia com o sistema operacional usado pelo usuário. Uma vez que você consiga localizá-lo o seu formato parecido com o seguinte:
Diretório de Cookies no Windows
Como você pode ver um cookie é um arquivo de texto que pode ser aberto no Notepad, por exemplo. O conteúdo do cookie que acabamos de criar se parece com o seguinte:
 HTMLTest TEXT=Este+é+um+cookie+para+teste%21 www.html.net/tutorials/php 0 80973619229399148 4216577264 29399141 * 
 
 
Não iremos nos aprofundar mais em cookies, contudo note que o usuário detém o controle sobre a gravação de cookies no seu computador.
Nesta lição estudamos os cookies e suas finalidades. É sabido que alguns sites usam cookies com propósitos excusos. Mas, na maioria dos casos cookies são usados para tornar a interação com o site mais amigágel ou para individualizar o uso do site.
Pode ser uma boa ideia usar cookies no seu site, mas neste caso é de boa prática informar o usuário sobre seu uso. Você pode passar esta informação na política de privacidade do site ou durante o processo de registro do usuário no site.

Lição 14: Sistema de arquivos

Usando PHP você pode acessar o sistema de arquivos no servidor. Esta funcionalidade permite que você manipule diretórios e arquivos de texto com scripts PHP.
Você pode usar PHP para ler um arquivo de texto ou mesmo nele escrever. Ou ainda, você pode inspecionar quais são os arquivos existentes em um determinado diretório no servidor. As posiibilidades são muitas e o PHP pode facilitar bastante o seu trabalho.
Nesta lição estudaremos como usar PHP para trabalhar com arquivos e diretórios. O objetivo é fornecer uma visão geral deste assunto. Nas lições que se seguem apronfudaremos o assunto. Nós não cobriremos todas as funcionalidades. Se você precisar de mais informações consulte a documentação do PHP.
documentaçãofilemtime
Retorna a hora em que o conteúdo de um arquivo foi editado pela última vez (no formato UNIX timestamp - ver lição 4)).
documentaçãofileatime
Retorna a hora em que o conteúdo de um arquivo foi acessado (aberto) pela última vez (no formato UNIX timestamp - ver lição 4)).
documentaçãofilesize
Retorna o tamanho do arquivo em bytes.
Vamos verificar as três propriedades descritas para o arquivo que você está lendo agora: "/tutorials/php/lesson14.php"
 <html>

 <head>
 <title>Sistema de arquivos</title>
 </head>
 <body>
  
 <?php
   
 // Pesquisar e escrever propriedades
 echo "<h1>Arquivo: lesson14.php</h1>";
 echo "<p>Editado pela última vez em: " . date("r", filemtime("lesson14.php")); 
 echo "<p>Aberto pela última vez em: " . date("r", fileatime("lesson14.php")); 
 echo "<p>Tamanho do arquivo: " . filesize("lesson14.php") . " bytes";
 
 ?>

 </body>
 </html>
 
 

Diretórios

PHP permite que se trabalhe com diretórios do servidor. Nós não aprofundaremos o assunto, apenas mostraremos um exemplo. Para maiores informações consulte a documentação do PHP.
documentaçãoopendir
Abre um diretório.
documentaçãoreaddir
Retorna o nome do próximo arquivo do diretório aberto (com uso de documentaçãoopendir)
documentaçãoclosedir
Fecha um diretório.
O exemplo a seguir mostra os arquivos contidos no diretório "tutorials/php/".
 <html>
 <head>
 <title>Objeto Sistema de Arquivos</title>
 </head>
 <body>

 <?php
   
 // Abre o diretório
 $folder = opendir("../../tutorials/php/");

 // Loop pelos arquivos do diretório
 while (($entry = readdir($folder)) != "") {
    echo $entry . "<br />";
 }

 // Fecha o diretório
 $folder = closedir($folder);

 ?>

 </body>

 </html>
 
 
No exemplo mostrado começamos abrindo o diretório "../../tutorials/php/". A seguir um loop é criado para escrever o nome do próximo arquivo, até atingir o último. Chegando ao fim o diretório é fechado.
Nas próximas lições estudaremos como ler e escrever em um arquivo de texto.

Lição 15: Ler arquivos de texto

Na lição anterior estudamos como acessar o sistema e arquivos do servidor. Nesta lição aplicaremos o conhecimento adquirido para fazer a leitura de um arquivo de texto no servidor.
Arquivos de texto são uma maneira poderosa de armazenar vários tipos de dados. Eles não são tão flexíveis quanto um Banco de Dados, mas têm a vantagem de não requerer muita memória. Além disso por ser em formato de texto puro funcionam na grande maioria dos sistemas.

Abrir um arquivo de texto

Usamos a função documentaçãofopen para abrir um arquivo de texto. A sintaxe é mostrada a seguir:
 fopen(filename, mode)
 
 
filename
Nome do arquivo a abrir.
mode
Define o modo, que pode ser: "r" (reading - ler), "w" (writing - escrever) ou "a" (appending - adicionar). Nesta lição nós usaremos o modo de leitura "r". Nas próximas lições estudaremos como escrever e adicionar texto em um arquivo de texto.
Nos exemplos a seguir usaremso um arquivo de texto denominado unitednations.txt. trata-se de uma lista dos Programas e Fundações das Nações Unidas e seus respectivos domínios. Você fazer o download do arquivo ou criar seu próprio arquivo para testar os exemplos com ele.
Vamso começar abrindo o arquivo unitednations.txt:
 <?php

 // Abrir o arquivo de texto
 $f = fopen("unitednations.txt", "r");

 // Fechar o arquivo de texto
 fclose($f);

 ?>

 
 

Exemplo 1: Ler uma linha de um arquivo de texto

Usamos a função documentaçãofgets para ler uma linha do arquivo. Este método lê até o primeiro "break" de linha no arquivo (não inclui a linha do "break").
 <html>

 <head>
 <title>Ler um arquivo de texto</title>
 </head>
 <body>

 <?php

 $f = fopen("unitednations.txt", "r");

 // Lê uma linha e escreve no cliente
 echo fgets($f); 

 fclose($f);

 ?>

 </body>
 </html>
 
 

Exemplo 2: Ler todas as linhas de um arquivo de texto


 <html>

 <head>
 <title>Ler um arquivo de texto</title>
 </head>
 <body>

 <?php

 $f = fopen("unitednations.txt", "r");

 // Lê cada uma das linhas do arquivo
 while(!feof($f)) { 
     echo fgets($f) . "<br />";
 }

 fclose($f);

 ?>

 </body>
 </html>
 
 
No exemplo anterior percorremos as linhas com uso de um loop e usamos a função documentaçãofeof (for end-of-file) para verificar se chegamos ao fim do arquivo. Se não ("!" - ver lição 6), ta linha é escrita.
Em lugar de construir um loop poderíamos ter obtido o mesmo resultado com uso da função documentaçãofread. Se você trabalhar com arquivos extensos leve em consideração que a função documentaçãofread usa mais recursos que a função documentaçãofgets. Para arquivos pequenos, praticamente, não faz diferença usar uma ou outra.

Exemplo 3: Diretório de links

Conforme vimos no início desta lição, arquivos de texto podem ser excelentes para armazenagem de dados. Isto pode ser demonstrado no exemplo a seguir no qual criamos um diretório de links a partir dos conteúdos do arquivo de texto unitednations.txt.
O arquivo contém o nome do Programa ou Fundação seguindo-se uma vírgula e depois o domínio. É fácil de concluir que se quissésemos poderíamos armazenar mais informações nesta lista separada por vírgula.
Para recuperar a informação em cada linha usaremos um array. Ver lição 8 para mais informações sobre arrays.
 <html>
 <head>
 <title>Ler um arquivo de texto</title>

 </head>
 <body>

 <?php
 $f = fopen("unitednations.txt", "r");

 // Lê cada uma das linhas do arquivo
 while (!feof($f)) { 

 // Criar um array com o separador vírgula
    $arrM = explode(",",fgets($f)); 

 // escreve links (dados vem do array)
    echo "<li><a href='http://" . $arrM[1] . "'>" . $arrM[0]. "</a></li>"; 

 }

 fclose($f);
 ?>

 </body>
 </html>
 
 
Legal não é? A princípio você pode expandir o arquivo de texto para conter mais linhas ou mesmo incluir outras informações como, por exemplo, um endereço.
Na próxima lição veremos como escrever em um arquivo de texto.

Lição 16: Escrever em arquivos de texto

Na lição anterior aprendemos a ler um arquivo de texto com PHP. Nesta lição veremos como escrever em um arquivo de texto com PHP.
Os dois métodos são bem semelhantes, mas existe uma diferença importante: Você tem que ter permissão para escrever no arquivo. Isto significa que o arquivo tem que estar localizado em um diretório ao qual você tenha permissão de acesso para escrever.
Se você está trabalhando localmente em seu computador, poderá você mesmo configurar as permissões: dê um clique com o botão direito do mouse na pasta do diretório e escolha "Properties". Na maioria dos servidores de hospedagem existe por padrão um diretório com permissão de escrita. Em geral tais diretórios são nomeados como "cgi-bin", "log", "databases" oo algo similar. Se o seu servidor de hospedagem permitir você também poderá configurar permissões. Geralmente basta que, no seu cliente FTP, você clique com o botão do mouse na pasta e escolha "properties" ou "permissions" ou algo similar. Na figura a seguir mostramos como configurar permissões no FileZilla.
FileZilla
Se precisar de mais informações leia a documentação de suporte do seu servidor de hospedagem.
Convém notar que é arquivo de texto no qual se pretende escrever que deve estar localizado no diretório com permissão de escrita e não o arquivo PHP.

Abrir um arquivo de texto para escrever

Tal como fizemos para ler um arquivo de texto usaremos a função documentaçãofopen para escrever, mas agora configurada para o modo "w" (writing - escrever) ou "a" (appending - adicionar).
A diferença entre os modos writing e appending é a posição do 'cursor' para escrever - se no começo ou no fim do arquivo respectivamente.
Nos exemplos desta lição usaremos um arquivo vazio denominado textfile.txt, mas se você preferir pode usar seu próprio arquivo.
Vamos começar abrindo o arquivo de texto:
 <?php

 // Abre o arquivo de texto
 $f = fopen("textfile.txt", "w");

 // Fecha o arquivo de texto
 fclose($f);

 ?>
 
 

Exemplo 1: Escrever uma linha no arquivo de texto

Para escrever uma linha usamos a função documentaçãofwrite como mostrado a seguir:
 <html>

 <head>
 <title>Escrever em um arquivo de texto</title>
 </head>
 <body>
 
 <?php

 // Abre o arquivo de texto
 $f = fopen("textfile.txt", "w");

 // Escreve no arquivo de texto
 fwrite($f, "PHP is fun!"); 

 // Fecha o arquivo de texto
 fclose($f);

 // Abre o arquivo e lê a linha
 $f = fopen("textfile.txt", "r");
 echo fgets($f); 

 fclose($f);

 ?>

 </body>
 </html>
 
 
Uma vez aberto o arquivo no modo writing a nova linha é escrita na parte superior do arquivo é sobrescreve a primeira linha do arquivo. Se abrirmos o arquivo no modo appending a nova linha é escrita na parte inferior do arquivo acresentando mais uma linha no arquivo.

Exemplo 2: Escrever um bloco de texto em um arquivo de texto

É possível escrever um bloco de texto inteiro em vez de uma só linha como mostrado a seguir:
 <html>
 <head>
 <title>Escrever em um arquivo de texto</title>
 </head>
 <body>

 <?php

 // Abre o arquivo de texto
 $f = fopen("textfile.txt", "w");

 // Escreve um texto
 fwrite($f, $_POST["textblock"]); 

 // Fecha o arquivo de texto
 fclose($f);

 // Abre o arquivo e lê a linha
 $f = fopen("textfile.txt", "r");

 // Lê o texto
 echo fgets($f); 
 fclose($f);

 ?>
 
 </body>

 </html>
 
 
Na próxima lição veremos outra forma de armazenagem de dados: Banco de Dados.
 

Lição 17: Banco de Dados

Um Banco de Dados é um conjunto de informações / dados organizados de uma maneira a facilitar as tarefas de extração, manutenção e atualização dos dados. Banco de Dados possibilitam a criação de sites dinâmicos com grande quantidade de informações. Por exemplo:os dados sobre todos os membros do site HTML.net bem como todos os posts dos forums do site estão guardados em um Banco de Dados.
Um Banco de dados, em geral é constituído de uma ou mais tabelas. Se você já trabalhou com planilhas ou mesmo com banco de dados, você deve estar familiarizado com tabelas, suas colunas e linhas:
Tabela
Existem vários tipos de Banco de Dados: MySQL, MS Access, MS SQL Server, Oracle SQL Server e muitos outros. No nosso tutorial usaremos o Banco de Dados MySQL. MySQL é o tipo de Banco de Dados mais indicado e natural para se usar com PHP.
Para acompanhar esta e as próximas lições você precisa ter acesso a um Banco de Dados:
  • Se você tem um site PHP hospedado remotamente é quase certo que MySQL esteja disponível no servidor. Informe-se com o suporte do seu servidor de hospedagem.
  • Se você instalou PHP no seu computador e quiser instalar MySQL faça o download de um a versão gratuita (MySQL Community Edition) no site do MySQL.
  • Se você está usando XAMPP (ver liçaõ 2) MySQL já foi instalado e está pronto para ser usado. Certifique-se, no Painel de Controle, que MySQL está sendo executado:

    XAMPP
A seguir, nesta lição, veremos como conectar a um Banco de Dados e nas lições seguintes aprenderemos a criar um Banco de Dados e dele extrair e atualizar dados.

Conexão com o Banco de Dados

Primeiro você precisa ter acesso ao servidor no qual está instalado o Banco de Dados. O acesso é feito com uso da função documentaçãomysql_connect que admite a seguinte sintaxe:
 mysql_connect(servidor, usuário, senha) 
 
Simples e direto: O parâmetro (servidor) indica o local onde se encontra o Banco de Dados, usuário e senha indicam o nome do usuário e a senha de acesso ao Banco de Dados.
Se você possui um site, leia a documentação de suporte do seu servidor para saber o local do servidor MySQL. Nome de usuário e senha em geral é o mesmo que você usa para acessr o site via FTP. Se não for contacte o suporte para seu servidor.
Exemplo de conexão MySQL para um site em servidor remoto:
 mysql_connect("mysql.myhost.com", "user001", "sesame") or die(mysql_error()); 
 
Exemplo de conexão MySQL com servidor local XAMPP (configuração padrão):
 mysql_connect("localhost", "root", "") or die (mysql_error());
 
Notar nos exemplos a inclusão de or die(mysql_error()) que, resumo, destina-se a interromper o script e retornar uma mensagem de erro caso não seja possível estabelecer a conexão.
É assim que se faz a conexão com o servidor MySQL. Agora você já está em condições de criar Banco de Dados, extrair e inserir dados. É exatamente isso que aprenderemos nas próximas lições.
Ah sim! não se esqueça que é de boa prática encerrar a conexão tão logo você tenha terminado de usar o Banco de Dados. Para isso use a função documentaçãomysql_close.

Lição 18: Criando Banco de Dados e suas Tabelas

Na lição anterior aprendemos como se conectar com um Banco de Dados. O próximo passo é aprender como criar Banco de Dados e Tabelas.
Veremos duas maneiras de se criar Bancos de Dados e Tabelas. Primeiro com uso de PHP e depois de uma maneira mais amigável usando a ferramenta PhpMyAdmin que existe por padrão na maioria dos servidores remotos e também no XAMPP.
Se você tem um servidor remoto com PHP e MySQL e já criou um Banco de Dados pule esta parte da lição e vá para criação de Tabelas. Para mais informações consulte o suporte do seu servidor.

Criar Banco de Dados e Tabelas com PHP

A função documentaçãomysql_query é usada para enviar umna consulta (query) para o Banco de Dados MySQL. Consultas são escritas n linguagem Structured Query Language (SQL) (ou Linguagem estruturada de consulta). SQL é a linguagem mais usada para consultas a um Banco de Dados - não só para MySQL - e é lógica e muito fácil de aprender. Nesta e na próxima lição você aprenderá a sinbtaxe para realizar as mais usadas consultas SQL.
Para criar um Banco de Dados a query SQL usada é documentaçãoCREATE DATABASE que admite a seguinte sintaxe:
 CREATE DATABASE nome do Banco
 
Bem lógico não é!? Vamos criar um script PHP:
 mysql_connect("mysql.myhost.com", "user", "sesame") or die(mysql_error());

 mysql_query("CREATE DATABASE mydatabase") or die(mysql_error());

 mysql_close();

 
Primeiro a conexão com o Banco de Dados. A seguir criamos o Banco de Dados denominado "mydatabase". Finalmente encerramos a conexão.
Até aqui tudo bem... mas as tarefas se complecam um pouco quando se trata de criar Tabelas com PHP. Para isso usamos a query SQL CREATE TABLE com a seguinte sintaxe:
 
 CREATE TABLE nome da Tabela
 (
 nome_coluna1 DATA_TYPE,
 nome_coluna3 DATA_TYPE,
 nome_coluna4 DATA_TYPE,
 ...
 )

 
nome da Tabela e nome_coluna são, sem dúvida, o nome da Tabela e da coluna respectivamente. DATA_TYPE é usado para especificar o tipo de dado a ser inserido na coluna. Os tipos de dados mais usados são:
documentaçãoINT
Para números inteiros
documentaçãoDECIMAL
Pra números decimais
documentaçãoCHAR
Textos com menos de 255 caracteres
documentaçãoTEXT
Para texto com menos de 65.535 caracteres
documentaçãoLONGTEXT
Para texto com menos 4.294.967.295 caracteres
documentaçãoDate
Para datas no formato YYYY-MM-DD
documentaçãoTime
Para hora no formto HH:MM:SS
documentaçãoDATETIME
Para data/hora no formato YYYY-MM-DD HH:MM:SS
Lógico e fácil. Vejamos um exemplo:
 
 mysql_connect("mysql.myhost.com", "user", "sesame") or die(mysql_error());
 mysql_select_db("people") or die(mysql_error());

 mysql_query("CREATE TABLE MyTable (
   id INT AUTO_INCREMENT,
   FirstName CHAR,
   LastName CHAR,
   Phone INT,
   BirthDate DATE
   PRIMARY KEY(id)
 )") Or die(mysql_error());
 mysql_close ();

 
Começamos com a conexão com o servidor MySQL. A seguir usamos a função documentaçãomysql_select_db para selecionar o Banco de Dados denominado "people". Depois criamos a Tabela denominada "persons" contendo 5 colunas.
Notar que para a coluna "id" usamos documentaçãoINT para especificar que a coluna conterá números inteiros e a seguir usamos documentaçãoAUTO_INCREMENT para definir que os números serão incrementados automaticamente, garantindo que cada linha da coluna tenha um ID único (exclusivo, ou seja, que não se repete)
Finalmente usamos documentaçãoPRIMARY KEY para definir a coluna "id" como chave primária. A chave primária é o identificador exclusivo da cada registro (linha) da Tabela. Este identificador será de grande utilidade para manipulação dos registros.

Criar Banco de Dados e Tabelas com phpMyAdmin

Pode ser bastante útil criar Banco de Dados e Tabelas com PHP. Porém, em geral, será bem mais fácil usar phpMyAdmin (ou qualquer outra ferramenta administrativa para MySQL) que existe por padrão na maioria dos servidores remotos e em XAMPP. As figuras mostradas a seguir esclarecem como criar Banco de Dados e Tabelas no phpMyAdmin.
Comece fazendo login no phpMyAdmin. Em geral o endereço é o mesmo do servidor MySQL (por exemplo: "http://mysql.myhost.com") bem como o nome de usuário e senha. No XAMPP o endereço é: http://localhost/phpmyadmin/.
Uma vez logado, digite um nome para o Banco de Dados e clique o botão "Create":
phpMyAdmin
Em alguns servidores remotos já existe um Banco de Dados padrão e não é permitida a criação de outros Banco de Dados. Se este for o seu caso, use o Banco de Dados padrão.
Para criar uma Tabela clique na aba "Databases" e escolha o Banco de Dados na qual a Tabela será criada:
phpMyAdmin
Procure a caixa denominada "Create new table in database" e nela digite o nome da Tabela e o número de colunas. Clique o botão "Go":
phpMyAdmin
A seguir define o nome das colunas, o tipo de dado em cada uma delas, etc. tal como mostramos anteriormente.
phpMyAdmin
Notar que usamos "id" como documentaçãoPRIMARY KEY e documentaçãoAUTO_INCREMENT (A_I).
Assim, criamos nosso Banco de Dados e sua Tabela. Nas próximas lições aprenderemos como inserir, extrair e apagar dados de um Banco de Dados.

Lição 19: Inserindo dados em um Banco de Dados

Nesta lição veremos como inserir dados em um Banco de Dados com uso de scripts PHP.

Inserir dados com SQL

Para inserir dados em um Banco de Dados com SQL a sintaxe é idêntica a usada para criar Banco de Dados. A sintaxe é mostrada a seguir:
 INSERT INTO nome_da_Tabela(coluna1, coluna2, ...) VALUES(valor1, valor2, ...) 
 
 
Notar que podemos manipular dados em várias colunas ao mesmo tempo usando uma lista separada por vírgula no comando SQL. Mas, é óbvio, podemos manipular uma coluna somente. Colunas que não constam do comando SQL permanecem vazias.

Exemplo: Inserir dados de uma pessoa na Tabela

Neste exemplo usaremos o Banco de Dados criado na lição 18. Vamos inserir os dados de uma pessoa. Seja a pessoa Gus Goose cujo telefone é 99887766 e nasceu em 1964-04-20
O comando SQL para inserção é conforme mostrado a seguir:
 
 $strSQL = "INSERT INTO people(FirstName,LastName,Phone,BirthDate) VALUES('Gus','Goose','99887766 ','1964-04-20')"; 

 mysql_query($strSQL) or die(mysql_error());
 
 
Notar que um comando SQL pode tornar-se extenso dificultando seu entendimento. Para esclarecer melhor e facilitar o entendimento existe uma sintaxe alternativa conforme mostrada a seguir:
 strSQL = "INSERT INTO people(";

 strSQL = strSQL . "FirstName, ";
 strSQL = strSQL . "LastName, "
 strSQL = strSQL . "Phone, ";
 strSQL = strSQL . "birth) ";

 strSQL = strSQL . "VALUES (";

 strSQL = strSQL . "'Gus', ";
 strSQL = strSQL . "'Goose', ";
 strSQL = strSQL . "'99887766', ";

 strSQL = strSQL . "'1964-04-20')";
  
 mysql_query($strSQL) or die(mysql_error());
 
 
Segundo esta sintaxe, dividimos o comando em parte e usamos uma variável - no nosso caso $strSQL - para concatenar as partes em um comando único.
Na prática não importa a sintaxe que você usa. Dependendo do seu projeto escolha aquela que for mais conveniente para o claro entendimento dos comandos SQL.
Tente executar o seguinte código para inserir Gus Goose no Banco de Dados:
 <html>
 <head>
 <title>Inserindo dados em um Banco de Dados</title>
 </head>
 <body>
 <?php

 // Conexão com o Banco de Dados
 mysql_connect("mysql.myhost.com", "user", "sesame") or die (mysql_error ());

 // Seleciona o Banco de Dados
 mysql_select_db("mydatabase") or die(mysql_error());

 // Comando SQL

 $strSQL = "INSERT INTO people(";

 $strSQL = $strSQL . "FirstName, ";
 $strSQL = $strSQL . "LastName, ";

 $strSQL = $strSQL . "Phone, ";
 $strSQL = $strSQL . "BirthDate) ";

 $strSQL = $strSQL . "VALUES(";

 $strSQL = $strSQL . "'Gus', ";

 $strSQL = $strSQL . "'Goose', ";
 $strSQL = $strSQL . "'99887766', ";

 $strSQL = $strSQL . "'1964-04-20')";

 // Comando SQL executado 
 mysql_query($strSQL) or die (mysql_error());

 // Encerra conexão
 mysql_close();
 ?>

 <h1>Banco de Dados atualizado!</h1>
 </body>
 </html>
 
 

Inserir uma entrada de usuário no Banco de Dados

Em certos casos há necessidade de inserir uma entrada de usuário no Banco de Dados.
Como você já deve ter concluído isto será feito com uso de um formulário como descrito na lição 11 - pois podemos inserir o valor passado pelo formulário em um comando SQL. Suponha o formulário conforme mostrado a seguir:
 <form action="insert.php" method="post">
 <input type="text" name="FirstName" />
 <input type="submit" value="Save" />

 </form>
 
 
O formulário será enviado para insert.php no qual, conforme mostrado na lição 11, extrairemos o valor entrado no formulário pelo usuário. Para este nosso exemplo o comando SQL é conforme mostrado a seguir:
 strSQL = "INSERT INTO people(FirstName) values('" . $_POST["FirstName"] . "')"
 
 
De maneira semelhante é possível extrair dados de cookies, sessions, query strings, etc.

Erros mais comuns

No início, você provavelmente será brindado com uma bateria de mensagens de erros quando tentar atualizar dados em um Banco de Dados. Não há lugar para o menor erro que seja, quando trabalhamos com Banco de Dados. O simples esquecimento ou má colocação de uma vírgula põe tudo a perder e lá vem uma mensagem de erro. Observe a seguir os erros mais comuns cometidos quando se está iniciando.

Tipo de dado incorreto

É importante manter consistência de tipo de dado na coluna. Cada coluna deve conter um determinado tipo de dado. A figura a seguir mostra os tipos de dados para a Tabela "people" do nosso exemplo.
Specifying data types
Se você tentar inserir textos ou números em um mesmo campo que admite somente textos, vai ocorrer erro. Ou bem texto ou bem número. É importante definir o tipo de dados da forma mais precisa possível.
Observe, a seguir, uma lista dos tipos de dados:
Tipo de dado Definição Tamanho
CHR Texto ou combinação de texto e número. Pode-se também ser empregado para números não usados em cálculos (por exemplo: número de telefone). Até 255 caracteres - ou o comprimento definido em "Length"
TEXT Textos longos ou combinação de textos e números. Até 65.535 caracteres.
INT Dados numéricos para cálculos matemáticos. 4 bytes.
DATE Datas no formato YYYY-MM-DD 3 bytes.
TIME Horas no formato hh:mm:ss 3 bytes.
DATETIME Data/hora no formato YYYY-MM-DD hh:mm:ss 8 bytes.

Comandos SQL com aspas e barras

Se, em um comando SQL, você tentar inserir texto contendo aspas simples ('), aspas duplas (") ou barra invertida (\), o registro não será inserido. A solução é usar barra invertida (\) antes destes caracteres nos comandos SQL.
Isto pode ser feito com uso da função documentaçãoaddslashes como mostrado a seguir:
 <?php

 $strText = "Seu nome é O'Reilly?";
 $strText = addslashes($strText);

 ?>
 
 
Então, usando esta função todo caractere ('), (") e (\) será acrescido automaticamente de uma barra invertida (\) no seu início. Esta barra extra é necessária apenas para possibilitar a inserção do dado no Banco de Dados. É importante ressaltar que o PHP realiza por padrão o documentaçãoaddslashes em todos os dados obtidos via $_GET, $_POST e $_COOKIE. Assim, não há necessidade de usar documentaçãoaddslashes em strings que já tenham sido "escapadas" (com barra invertida).
Na próxima lição estudaremos como extrair dados de um Banco de Dados. Mas, antes de seguir tente inserir mis pessoas no Banco de Dados (tal como mostramos no exemplo para a pessoa Gus Goose).

Lição 20: Extraindo dados de um Banco de Dados

Chegou a hora de extrairmos dados de um Extraindo dados de um Banco de Dados.
Esta é, sem duvida, uma das mais importantes lições deste tutorial. Uma vez que você tenha entendido esta lição você saberá por que um site baseado em Banco de Dados pode tornar-se tão poderoso e sua visão de desenvolvedor certamente vai se expandir-se drasticamente.

Consultas SQL

Para extrair dados de um Banco de Dados usamos queries (consultas) SQL. Um exemplo de query é: "extraia todos os dados da tabela 'people' ordenados alfabeticamente" ou "extraia os nomes contidos na tabela 'people'".
Repetimos: Structured Query Language (SQL) é usada para estabelecer comunicação com o Banco de Dados. Observe o exemplo a seguir:
 Extrair todos os dados da tabela 'people'
 
 
O comando SQL é assim:
 SELECT * FROM people
 
 
A sintaxe é auto explicativa. Leia e conclua sobre os comandos mostrados a seguir.

Exemplo 1: Extrair dados de uma tabela

Este exemplo usa o Banco de Dados e Tabela mostrados na lições 19 e na lição 18. Portanto, leia aquelas lições antes de prosseguir.
O exemplo mostra como extrair dadis da tabela "people" com uso de consulta SQL.
SQL query retorna o resultado em forma de uma série de registros. Estes registros são armazenados em um conjunto de registros denominado recordset. Um recordset pode ser definido como uma esécie de tabela na memória do servidor contendo linhas de dados (registros) no qual cada registro é subdividido em campos individuais (ou colunas).
Um recordset pode ser comparado a uma tabela na qual cada registro pode ser comparado a uma linha de tabela. Usando PHP podemos percorrer um recordset com um loop usando a função documentaçãomysql_fetch_array que retorna um array de linhas.
O código a seguir mostra o uso de documentaçãomysql_fetch_array para construir um loop pelo recordset:
 <html>
 <head>
 <title>Extraindo dados de um  Banco de Dados</title>
 </head>
 <body>

 <?php
 // Conexão com o Banco de Dados
 mysql_connect("mysql.myhost.com", "user", "sesame") or die (mysql_error ());

 // Seleciona o Banco de Dados
 mysql_select_db("mydatabase") or die(mysql_error());

 //query SQL
 $strSQL = "SELECT * FROM people";

 // Executa a query (o recordset $rs contém o resultado da query)
 $rs = mysql_query($strSQL);
 
 // Loop pelo recordset $rs
 // Cada linha vai para um array ($row) usando mysql_fetch_array
 while($row = mysql_fetch_array($rs)) {

    // Escreve o valor da coluna FirstName (que está no array $row)
   echo $row['FirstName'] . "<br />";

   }

 // Encerra a conexão
 mysql_close();
 ?>
 </body>
 </html>
 
 
Notar que para cada registro extraimos o conteúdo da coluna "FirstName" com $row['FirstName']. De modo semelhante podemos extrair o conteúdo da coluna "Phone" bcom $row['Phone'], por exemplo.
A ordem de saída dos recordset é a mesma que ele ocupa na tabela do Banco de Dados. No exemplo a seguir veremos como controlar a ordem de saída dos recordset.

Exemplo 2: Ordem de saída alfabética, cronológica ou númerica

Não raro é interessante colocar a saída dos registros em uma ordem alfabética, cronológica ou númerica. Isto é fácil de se fazer com SQL no qual a sintaxe Order By ColumnName é usada para realizar o ordenamento.
Observe o comandos SQL do exemplo anterior:
 strSQL = "SELECT * FROM people"
 
 
Os registros podem, por exemplo, serem ordenados em ordem alfabética pelo primeiro nome das pessoas, como mostrado a seguir:
 strSQL = "SELECT * FROM people ORDER BY FirstName"
 
 
Ou cronologicamente pela data de aniversário:
 strSQL = "SELECT * FROM people ORDER BY BirthDate"
 
 
A ordenação pode ser alterada de ascending (ordem ascendente) para descending (ordem descendente) com uso de DESC:
 strSQL = "SELECT * FROM people ORDER BY BirthDate DESC"
 
 
No exemplo a seguir as pessoas são ordenadas por idade:
 <html>
 <head>

 <title>Extraindo dados de um Banco de Dados</title>

 </head>
 <body>
 
 <?php
 // Conecta com o Banco de Dados
 mysql_connect("mysql.myhost.com", "user", "sesame") or die (mysql_error ());

 // Seleciona o Banco de Dados
 mysql_select_db("mydatabase") or die(mysql_error());

 // query SQL
 $strSQL = "SELECT * FROM people ORDER BY BirthDate DESC";

 // Executa a query (o recordset $rs contém o resultado da query)
 $rs = mysql_query($strSQL);
 
 // Loop pelo recordset $rs
 while($row = mysql_fetch_array($rs)) {

    // Escreve o valor da coluna FirstName e BirthDate
   echo $row['FirstName'] . " " . $row['BirthDate'] . "<br />";

   }

 // Encerra a conexão
 mysql_close();
 ?>

 </body>
 </html>
 
 
Como exercício construa a query SQL para ordenação pelo primeiro nome, último nome, número de telefone.

Extrair dados segundo uma condição

Até aqui nossas consultas SQL extraíram todas as linhas de uma tabela. Mas, é comum a necessidade de extração de certas linhas da tabela que atendam a uma determinada condição como, por exemplo, a linha contendo um determinado telefone ou nome.
Suponha que se deseje extrair informações sobre a pessoa cujo telefone é "66554433". Isto se faz conforme mostrado a seguir:
 strSQL = "SELECT * FROM people WHERE Phone = '66554433 '"
 
 
Existem seis operadores relacionais na linguagem SQL:
= Igual
< Menor que
> Maior que
<= Menos que ou igual
> = Maior que ou igual
!= Diferente

Há também, na linguagem, alguns operadores lógicos:
AND (E)
OR (OU)
NOT (NÃO)

Ver lição 6 para mais informações sobre operadores lógicos.
No exemplo a seguir usaremos condicionais para criar um catálogo de endereços.

Exemplo 3: Catálogo de endereços

Neste exemplo usaremos muitos dos conceitos que você já aprendeu neste tutorial. Construiremos uma lista de nomes de pessoas extraídos do Banco de Dados na qual cada nome é um link cujo destino é um documento com maiores informações sobre a pessoa.
Vamos precisar de dois arquivos - list.php e person.php - com o seguinte código:

Código para o arquivo list.php

 <html>
 <head>
 <title>Extraindo dados de um Banco de Dados</title>
 </head>
 <body>

 <ul>

 <?php
 // Conectar com o Banco de Dados
 mysql_connect("mysql.myhost.com", "user", "sesame") or die (mysql_error ());

 // Selecionar o Banco de Dados
 mysql_select_db("mydatabase") or die(mysql_error());

 // query SQL 
 $strSQL = "SELECT * FROM people ORDER BY FirstName DESC";

 // Executar a query (o recordset $rs contém o resultado da query)
 $rs = mysql_query($strSQL);
 
 // Loop pelo recordset $rs
 while($row = mysql_fetch_array($rs)) {

    // Nome da pessoa
   $strName = $row['FirstName'] . " " . $row['LastName'];

    // Cria link para o arquivo person.php com um valor de id no URL
    $strLink = "<a href = 'person.php?id = " . $row['id'] . "'>" . $strNavn . "</a>";

     // Lista de links
    echo "<li>" . $strLink . "</li>";

   }

 // Encerra conexão
 mysql_close();
 ?>

 </ul>
 </body>
 </html>

 
 

Código para o arquivo person.php

 <html>
 <head>
 <title>Extraindo dados de um Banco de Dados</title>
 </head>
 <body>

 <dl>

 <?php
 // Conectar com o Banco de Dados
 mysql_connect("mysql.myhost.com", "user", "sesame") or die (mysql_error ());

 // Selecionar o Banco de Dados
 mysql_select_db("mydatabase") or die(mysql_error());

 // Extrair dados de acordo com o id passado no URL
 $strSQL = "SELECT * FROM people WHERE id=" . $_GET["id"];
 $rs = mysql_query($strSQL);
 
 // Loop pelo recordset $rs
 while($row = mysql_fetch_array($rs)) {

  // Escreve dados da pessoa
  echo "<dt>Nome:</dt><dd>" . $row["FirstName"] . " " . $row["LastName"] . "</dd>";
  echo "<dt>Telefone:</dt><dd>" . $row["Phone"] . "</dd>";
  echo "<dt>Data de nascimento:</dt><dd>" . $row["BirthDate"] . "</dd>";

 }

 // Encerra conexão
 mysql_close();
 ?>

 </dl>
 <p><a href="list.php">Voltar à lista de nomes</a></p>

 </body>

 </html>
 
 
O catálogo de endereços é bem simples, mas bem demonstra o potencial de desenvolvimento com PHP e Banco de Dados.
Imagine um Banco de Dados com 10.000 produtos e respectivas informações devidamente cadastradas. Fazendo algumas simples adaptações nos arquivos do exemplo mostrado você poderá montar, com facilidade, um catálogo de produtos com mais de 10.000 páginas usando apenas um Banco de Dados e dois arquivos PHP.
Bem-vindo ao maravilhoso mundo dos sites extensíveis, fáceis de construir e manutenir! Depois que você aprende a trabalhar com Banco de Dados suas soluções web nunca mais serão as mesmas.

Lição 21: Apagando dados de um Banco de Dados

Nas duas lições anteriores você aprendeu a inserir e extrair dados de um Banco de Dados. Nesta lição estudaremos como apagar dados de Um Banco de Dados, tarefa que é bem mais simples do que inserir dados.

Apagando dados com SQL

A sintaxe SQL para apagar dados é:
 
 DELETE FROM TableName WHERE condition 

 

Exemplo: Apagar um dado

Para apagar um dado você pode usar o campo identificador único (AutoNumber) da tabela correspondente. Na tabela do nosso Banco de Dados é a coluna denominada id. Usar o identificador único garante que apenas uma linha de dados será apagada. No exemplo a seguir apagamos a linha com o identificador cujo valor é 24:
 <html>
 <head>
 <title>Apaga dado em um Banco de Dados</title>
 </head>

 <body>
 
 <?php
 // Conectar com o Banco de Dados
 mysql_connect("mysql.myhost.com", "user", "sesame") or die (mysql_error ());

 // Selecionar o Banco de Dados
 mysql_select_db("mydatabase") or die(mysql_error());

 // SQL para apagar registro
 $strSQL = "DELETE FROM people WHERE id = 24";
 mysql_query($strSQL);
 
 // Fechar conexão com Banco de Dados
 mysql_close();
 ?>

 <h1>Registro apagado!</h1>

 </body>
 </html>
 
 
Lembre-se que não existe uma pasta "Lixeira" quando se trabalha com PHP e Banco de Dados. Se você apagar um dado não terá como recuperá-lo posteriormente.

Lição 22: Atualizando dados em um Banco de Dados

Em lições anteriores você aprendeu a inserir, requisitar e apagar dados de um Banco de Dados. Nesta lição estudaremos como atualizar os dados de um Banco de Dados, ou seja, editar os valores dos campos de uma tabela do Banco de Dados.

Atualizando dados com SQL

A sintaxe SQL para atualizar dados em um campo de uma tabela é mostrada as seguir:
 
 UPDATE TableName SET TableColumn='value' WHERE condition
 
 
É possível atualizar vários campos ds tabela de uma só vez como mostrado a seguir:
 
 UPDATE TableName SET TableColumn1='value1', TableColumn2='value2' WHERE condition 

 
Com os conhecimentos adquiridos nas lições 19, 20 e 21 ficou bem mais fácil entender como funciona a sintaxe mostrada. Vejamos um exemplo.

Exemplo: Atualizando campos da tabela "people"

O código a seguir faz a atualização do campo "FirstName" (primeiro nome) de Donald Duck's para D. e altera o campo "Phone" (número do telefone) para 44444444. As outras informações (last name (último nome) e birthdate (data de aniversário)) não serão alteradas. Você pode tentar alterar os dados das outras pessoas escrevendo seus próprios comandos SQL.
 <html>
 <head>
 <title>Update data in database</title>

 </head>
 <body>

 <?php
 // Conecta com o Banco de Dados
 mysql_connect("mysql.myhost.com", "user", "sesame") or die (mysql_error ());

 // Seleciona o com o Banco de Dados
 mysql_select_db("mydatabase") or die(mysql_error());
 
 // Constrói a consulta SQL
 $strSQL = "Update people set "; 
 $strSQL = $strSQL . "FirstName= 'D.', "; 
 $strSQL = $strSQL . "Phone= '44444444' "; 

 $strSQL = $strSQL . "Where id = 22"; 

 // Executa a consulta 
 mysql_query($strSQL);

 // Encerra a conexão
 mysql_close();
 ?>

 <h1>O Banco de Dados foi atualizado!</h1>
 </body>
 </html>

 
Este exemplo completa as lições sobre Banco de Dados. Você aprendeu a usar PHP para inserir, requisitar, apagar e atualizar dados em um Banco de Dados. Assim, você está habilitado a criar soluções web dinâmicas e avançadas nas quais o usuário será capaz de manutenir e atualizar dados em um Banco de Dados, usando formulários.
Se você quiser visitar uma aplicação sofisticada demonstrando o que pode ser feito com PHP e Banco de Dados torne-se nosso parceiro. É gratuito e tomará apenas 1 minuto do seu tempo para a realização do seu registro. Você poderá entre outras coisas gerenciar seu perfil usando formulários. Talvez você até colha algumas ideias para empregar no seu site.
Aqui terminamos nosso tutorial. PHP nos fornece muitas funcionalidades para adicionar interatividade em um site. O único limite é a sua imaginação. Divirta-se!

Fonte : http://pt-br.html.net/tutorials/php/ .

6 comentários:

bom demais este tutorial, amigo! valeu!

10 de junho de 2013 07:24 comment-delete

DEMAIS> PARABENS!

19 de junho de 2013 09:07 comment-delete

muito bom,tutorial completo e bem explicado para começar a programar em php é ideal a partir daqui pode se fazer o resto.

4 de setembro de 2014 18:27 comment-delete

Nice blog...Very useful information is providing by ur blog. Great beginning php tutorials Very clear and helpful for beginners.

4 de agosto de 2015 04:30 comment-delete

Este comentário foi removido pelo autor.

29 de julho de 2017 22:21 comment-delete

Tutorial muito bom brother, parabéns!

29 de julho de 2017 22:25 comment-delete

Postar um comentário

comente e dê sua opinião! curta