Aprender inglês facil!




Galera, em continuação a nossa série "A importancia do inglês, para o Profissional de TI", que você pode ler no blog, quero falar agora sobre as facilidades que a internet disponibiliza para quem tem interesse real em crescer profissionalmente na área de TI, estudando inglês, o que facilitará com toda a certeza,  a vida de muita gente, pois trará a muito profissional o chamado "diferencial". Portanto, após pesquisas na internet resolvi postar dicas de sites, que nos possibilitam estudar online, e assim, aumentar consideravelmente nosso nível. Vale a pena visitar cada um.

Segue a lista de sites, bem como um resumo do que fazem:


Site estruturado, ótimo para iniciantes, (aqueles que só estudaram inglês, mal e porcamente no ensino médio), porém com conteúdo que vai até niveis mais avançados.


Site muito bom, ótimo também para quem não manja nada ainda, oferece podcast, aulas em audio, muito bom para treinar.


http://www.learnamericanenglishonline.com/index.html (Aprenda inglês americano online)

Este site é desenvolvido para estudantes de fora dos EUA, e ao redor de todo o mundo, tem como didática, sete níveis de instruções, ( blue, red, yellow, green, purple, orange e violet), e lições desenvolvidas para cada nível de instrução.



Curso excelente focado principalmente na gramática, com quadros ilustrações, excelente para auxiliar estudantes no estudo de provas, ou concursos de inglês!


Da Rede de tv BBC. Curso de inglês bem estruturado, com videos e audio de excelente qualidade, onde o foco é contar histórias interessantes e mostrar em video as histórias, tudo isso obviamente no idioma inglês.


(Curso 




Muito legal e interativo, esse curso online possibilita que você escolha o nível que está, e oferece um teste, no qual se baseiam para personalizar o curso especificamente para você! Muito legal mesmo!!!

Não custa repetir

Pessoal não custa repetir que, para quem deseja aprender inglês, alguns minutos (ou horas rs) de disciplina são ingredientes principais, esse blog, bem como essas dicas tenta oferecer incentivo a quem quer crescer, mas para crescer é necessário muita luta, e muito esforço, portanto, esforce-se amigo, baixe os podcasts, ouça as aulas no celular, dentro do onibus, onde você estiver, otimize seu tempo, você verá que vai valer e vale muito a pena. 

O que achou dessas dicas? Você gosta de inglês? O que faz para aprender?



2 comentários:

Postar um comentário

comente e dê sua opinião! curta

Qual a maneira mais rápida de aprender inglês?




Bom, essa é com certeza uma pergunta que muitos se fazem e nos fazem, afinal, qual o método mais prático e rápido de aprender inglês?
Bom, costumo dizer que depende, isso porque hoje depende mais do interessado em aprender, do que dos meios pelos quais pode aprender. As dicas que darei abaixo, se seguidas, poderão dar a autonomia que você precisa, em meses. Mas tudo vai depender de Você!!!!

Bom, particularmente, considero que nunca foi tão fácil aprender outra lingua, como tem sido nos dias de hoje. Antigamente, de 5 anos para trás, para aprender inglês, era necessário passar por uma verdadeira epopéia, ir a bibliotecas buscar livros, frequentar algumas horas semanais de aula presencial em alguns cursos, que na maioria das vezes, eram e (ainda são), extremamante caros, o que dificulta e muito a vida de pobres mortais, brasileiros médios como nós, que em geral temos uma vida financeira apertada. 

Hoje porém, devido as facilidades da tecnologia, aprender inglês, tornou-se uma tarefa bem mais facilitada em relação a dificuldade que encontrávamos antes, o que faz dessa tarefa, mesmo para quem não possui muitas condições financeira, algo perfeitamente alcançável. Haja vista, várias ferramentas que são verdadeiras mão na roda de quem deseja e se dedica, mesmo que sem tempo, ao aprendizado dessa lingua tão importante pra nós, e tão desvalorizada por muitos. 

Dessas ferramentas, podemos destacar, por exemplo, o aparelho celular, que todo mundo tem no Brasil, a maioria dos celulares possui cartão de memórias, onde se é possivel baixar no formato mp3, aulas de inglês, do básico ao avançado, ótimas aulas, que possibilitam ao aluno, enquanto está indo trabalhar, no ônibus, ou na hora do almoço, até mesmo naquela sagrada hora do banheiro, ouvir e ouvir, otimizando seu tempo, aprendendo fundamentos da gramática, que darão base para seu aprendizado progressivo. Note, que, nesse caso, trato de um objeto, que particularmente no Brasil, todo mundo tem, basta otimizar o tempo, e deixar de lado aquelas rádios de cultura (funk, pagode, sertanojo), rsrs (brincadeirinha), e dedicar algum tempo 1 ou 2 horas do dia, a ouvir aulas de inglês. Não é difícil, basta querer!! 

Outra maravilhosa ferramenta que possuimos, é obviamente o computador e a internet, que dispoem de centenas de websites, e videoaulas de inglês, que simulam e dão ao aluno praticamente, e na minha opinião (até melhor), a situação de aula presencial, porque nas video aulas, é possível repetir quantas vezes for necessário uma explicação, e internalizar mais facilmente algo, tornando-se assim, mais dificil esquecer-se. 

Além dessas duas coisas, vale lembrar que assistir séries, é sem dúvida umas das minhas formas preferidas de aprender, uma vez que, nesse caso, além do aprendizado, existe a diversão, por si mesmo, escolher uma série que se identifique, como (house, Lost, Todo Mundo odeia o Cris, CSI, The Walking Dead), assistir primeiro em português, depois, legendado, e na terceira vez em inglês. Isso vai torná-lo, com o tempo (seja perseverante), mais acostumado com os sons, que sem dúvida no caso da língua inglesa, é oi mais dificil de entender, mas com esse método, você vai aprender com mais diversão, já que as séries são algo muito bacana. Vale lembrar que, nesse caso, as séries não podem ser muito longas, porque pode tornar-se cansativa, escolha séries, de preferencia de 20 a 30 minutos por episódio.

Quais os Sites que oferecem podcast de inglês?


Bom vai aí a dica pra quem quer aprender com podcast!! (ótima ferramenta)
Baixe no seu aparelho mp3 (esquece o funk), e aprenda algo de útil!! rs


Quais são os sites que oferecem cursos online



Quais são os canais de video que oferecem curso


youtube - Digite "Hello channel"
youtube - digite "steve fords"

Bom, fica a dica pra quem quer aprender, e no caso do Profissional de TI, fica a dica se quer ou não crescer, mas isso serve pra qualquer  profissão, ou mesmo para quem quer crescer como pessoa. 

Você acha isso importante? Qual a sua dica? Comente algo e nos ajude a crescer também!! 

Té mais....



 

1 comentários:

Postar um comentário

comente e dê sua opinião! curta

Margem de Contribuição - Quanto Sobra para Sua Empresa


Seguindo post tema  Como cobrar e quanto cobrar? sigo postando matérias a respeito da forma correta de calcular os preços tanto de venda como de prestação de serviços, importante lembrar que esse tema é de fundamental importância para qualquer profissional em qualquer área, sobretudo ao profissional de TI, cuja boa parte, se trata de prestadores de serviços, cabe então ao bom profissional ter a consciência de que, para ser valorizado e conseguir almejar crescimento em sua empresa ou serviço, é necessário conhecimentos básicos em empreendedorismo, quero ressaltar que o artigo abaixo foi baseado no sebrae, portanto nada feito por mim,  o artigo pode servir como apoio para estudo das áreas de marketing e empreendedorismo


MARGEM DE CONTRIBUIÇÃO – QUANTO SOBRA PARA SUA EMPRESA?


O termo Margem de Contribuição tem um significado igual ao termo Ganho Bruto sobre as Vendas. Isso indica para o empresário o quanto sobra das vendas para que a empresa possa pagar suas despesas fixas e gerar lucro.

Em qualquer que seja o segmento, Indústria, Comércio ou Serviços, é perfeitamente possível e fácil se apurar o valor e o percentual respectivo da Margem de Contribuição.

Para a explicação deste item, precisamos inicialmente saber qual o percentual que as Despesas Fixas representam das vendas, que neste caso usaremos como exemplo a seguinte fórmula:

Valor total das Despesas Fixas dividido pelo valor total das Vendas.
Exemplo: R$36.000,00 ÷ R$240.000,00 =  15%.

Mas por que esse nome, Margem de Contribuição?

• Margem por que é a diferença entre o preço de venda e os valores dos custos e das despesas específicas destas Venda, ou seja, valores também conhecidos por Custos Variáveis e Despesas Variáveis da venda.

• Contribuição porque representa em quanto o valor das vendas contribui para o pagamento das Despesas Fixas e também para gerar Lucro.

Para encontrar a Margem de Contribuição, é preciso realizar a seguinte conta:

Vlr. das Vendas – (Custos Variáveis + Desp.Variáveis) = Marg. de Contrib.

O valor encontrado ao se utilizar esta fórmula representa o quanto a empresa consegue gerar de recursos para pagar as Despesas Fixas e obter Lucro.
Quando o valor da Margem de Contribuição for superior ao valor total das Despesas Fixas, a empresa estará gerando lucro e, quando for inferior, o resultado será entendido como prejuízo.

É normal termos em qualquer empresa produtos/serviços com preços, custos e despesas diferentes uns dos outros. Por isso, é muito importante apurar a margem de contribuição de cada produto/serviço.

Atenção! Ao analisar a margem de contribuição unitária de qualquer produto/serviço em sua empresa, lembre-se que nenhum deles deverá apresentar margem que não contribui, ou seja, quando o valor do preço de venda é inferior à soma dos valores de despesas variáveis e dos custos variáveis, não contribuindo, portanto, para pagar as despesas fixas e gerar lucro.
A margem que não contribui pode ser aceitável em uma empresa quando estiver relacionada a alguma estratégia promocional de vendas, isto é, com total conhecimento de seus gestores. Mas ainda assim, deve-se avaliar se as vendas de outros produtos, agregadas ou não à promoção, apresentam margens que compensem a margem de contribuição negativa (preço de venda inferior aos custos variáveis e despesas variáveis) de algum produto/serviço que esteja nesta condição.
Entretanto, o objetivo principal do empresário, nesta questão, deve ser a busca constante da melhor margem de contribuição para seus produtos, e isso dependerá sempre das negociações que puder fazer para reduzir os valores dos custos e das despesas variáveis. Ter o valor do preço de venda aumentado é também uma saída, mas isso não poderá ser feito se o preço reajustado deixar de proporcionar competitividade frente aos concorrentes.

Com as informações acima, vamos para o exemplo prático:

Vamos considerar um produto qualquer em que o valor de custo variável seja de R$15,00. Considerando uma margem de 50% sobre o custo para definir o preço de venda, esse produto seria vendido por R$ 22,50 (R$15,00 + 50%).
Logo, a margem de contribuição, considerando que as despesas variáveis desta empresa representam 10,5% sobre o preço de venda (impostos 4%, comissão 3% e taxa de cartão 3,5%), é de:
Cálculo de margem de contribuiçãoR$%Cálculo dos percentuais
+ Preço de venda22,50100,00O preço de venda ou a venda total é sempre igual a 100%
- Despesas variáveis (10,5%)2,3610,50R$ 2,36 / R$ 22,50 x 100
- Custo variável15,0066,67R$ 15,00 / R$ 22,50 x 100
= Margem de contribuição5,1422,84R$ 5,14 / R$ 22,50 x 100

Veja que a Margem de Contribuição, isto é, a contribuição deste preço de venda para pagar as despesas fixas e gerar lucro, é de R$ 5,14 por unidade ou 22,8% do preço de venda.

Vamos ver agora como fica a Margem de Contribuição se praticarmos 35% sobre o custo, neste caso o preço de venda seria R$20,25 (R$15,00 + 35%).
Cálculo de margem de contribuiçãoR$%Cálculo dos percentuais
+ Preço de venda20,25100,00O preço de venda ou a venda total é sempre igual a 100%
- Despesas variáveis (10,5%)2,1310,50R$ 2,13 / R$ 20,25 x 100
- Custo variável15,0074,07R$ 15,00 / R$ 20,25 x 100
= Margem de contribuição3,1215,41R$ 3,12 / R$ 20,25 x 100

Veja que a margem de contribuição caiu de 22,8% para 15,4% sobre o valor do preço de venda, e é com essa margem que a empresa pode contar para pagar as despesas fixas. Note que se as despesas fixas representam 15% das vendas, não existindo aumento do valor total de vendas e nem diminuição do valor total das despesas, o resultado final será praticamente zero.

Usando este exercício, será possível:

• entender que o ganho bruto não é simplesmente o percentual aplicado sobre os custos variáveis;
• definir o preço de venda avaliando a margem de contribuição e os reflexos que isso provocará no volume necessário de vendas e não em função do preço da concorrência;
• identificar o volume mínimo necessário de vendas para pagar as despesas fixas – o ponto de equilíbrio;
• identificar o volume mínimo de vendas para pagar despesas fixas e ainda gerar um determinado valor de lucro;
• elaboração das tabelas de preços considerando descontos especiais em função do volume vendido a um mesmo cliente.

Fonte pesquisada: Sebrae

E você? como faz seus calculos, comente e curta o blog!!

0 comentários:

Postar um comentário

comente e dê sua opinião! curta

REDES DE COMPUTADORES - QUESTIONARIO RESPONDIDO!




Em vista da grande complexidade do aprendizado de redes de computadores, bem como da necessidade de que se aprenda todos esses conceitos para conseguir ingressar nessa área com competência, disponibilizo questionário com várias questões aplicadas pelos professores de várias universidades, bem como suas possiveis respostas, lembrando que tal trabalho serve apenas como consulta não dispensando obviamente uma pesquisa mais apurada em outros locais. Espero que ajude a todos!!

--> --> -->
1. Quais são os tipos de redes de computadores e qual a motivação para estudá-las separadamente?
R: Redes locais LAN (local área network),
Redes metropolitanas MAN (metropolitana área network),
Redes de longa distância WAN (wide área network).
O motivo de estuda-las separadamente é aprender o que cada uma dela faz e como se comporta.

2. Quais são os parâmetros que permitem diferenciar as redes de computadores?
R: Sistemas de comunicação meios de transmissão (enlaces físicos), regras para concretizar a comunicação (protocolo).

3. Quais são as características de uma LAN?
R: LAN tem uma cobertura mais limitada (prédio, campus).

4. Quais são as características de uma MAN?
R: MAN tem cobertura intermadiária (região, bairro, cidade).

5. Quais são as características de uma WAN?
R: WAN tem cobertura ampla (internacional).

6. Defina o significado de LAN e WAN e compare suas características mostrando suas diferenças e suas semelhanças.

R: LAN tem hots ligados diretamente nela, alta taxa de transmissão(100 mbps ou mais), baixa taxa de erro, vários tipos de protocolos de trasporte (tcp/ip, netbeui e ipx/spx) e de Propriedade priva(dentro dos limites da empresa ou casa) e atende a área geográfica relativamente pequena(até alguns milhares de metros).

WAN é uma rede de transporte, não tem hosts ligados diretamente nela, interliga LANs e MANs, é uma rede formada para interligação de LANs e MANs localizadas em regiões fisicamente distantes taxa de transmissão iguais ou menores que as LANs, taxa de erro maiores que da LANs, pode ter acesso publico. E grande área de cobertura, podem ser redes nacionais ou Internacionais. Usam linhas de transmissão de dados de grandes operadoras de telecomunicações.

7. Defina o significado de WAN e MAN e compare suas características mostrando suas diferenças e suas semelhanças.

R: LAN tem hots ligados diretamente nela, alta taxa de transmissão (100 Mbps ou mais), baixa taxa de erro, vários tipos de protocolos de transporte (tcp/ip, netbeui e ipx/spx) e de Propriedade privada (dentro dos limites da empresa ou casa) e atende a área geográfica relativamente pequena (até alguns milhares de metros).
MAN é uma rede de transporte, isso é não tem hosts ligados diretamente nela, interliga LANs e WAMs.
Semelhante à tecnologia LAN, só que cobrem distancias muito maiores numa região metropolitana.
O aparecimento do padrão IEEE 802.6(1981) padrão para transporte de dados em alta velocidade numa região metropolitana utiliza protocolos de rede WAN (ATM, MPLS) e protocolos derivados de redes LAN (MetroEthernet) .
Rede de TV a cabo é exemplo de MAN.

8.Defina o significado de LAN e MAN e compare suas características mostrando suas diferenças e suas semelhanças.

R: LAN tem cobertura mais limitada campus e prédios, casa. MAN tem cobertura intermediaria como (região, bairro, cidade). Semelhante à tecnologia LAN só que cobrem distancias muito maiores numa região metropolitana.

9. Monte um quadro comparativo que mostre as diferenças e as igualdades das LANs, MANs e WANs.

Tipos de Redes
Semelhanças
Diferenças
LAN
-Alta taxa de transmissão (100 mbps ou mais);
-Baixa taxa de erro.
-Vários tipos de protocolos de transporte (TCP/IP, NetBEUI,e IPX/SPX).

-A Lan possui propiedade privada(confinadas entre quatro paredes da empresa).

MAN
-MAN permite a dois nós distantes comunicar como se fizessem parte de uma mesma rede local.
-MAN utiliza protocolos da Lan e os seus própios.
-A MAN cobre distâncias muito maiores numa região metropolitana e a Lan cobre dispositivos em casas, prédios e escritórios e chega em uma distância de até 25km.
-A MAN utiliza protocolos da rede LAN e protocolos própios (ATM, MPLS).
-Rede TV a cabo é exemplo de MAN.

WAN
-A WAN é formada por interligações de LANs e MANs.
-Taxa de transmissão menor ou igual a LAN.

-A Wan usa linhas de transmissão de dados de grandes operadoras de telecomunicações e são usadas em áres nacionais e internacionais e tem a capacidade de distância acima de 25 km.
-A WAN tem acesso público como a internet.




10. O que são protocolos de comunicação de dados e quais são as suas finalidades?

R: É um conjunto de regras e convenções que permitem a troca confiável de informações entre dois ou mais dispositivos de comunicação de dados.

11. Quais são as funções básicas de um protocolo de comunicação de dados?
R: Estabelecer as características da interface, representação da informação, controle de endereçamento, detecção de erros, recuperação de erros, controle de fluxo, priorização de trafego de informações.

12. O que é "Encapsulamento" em um protocolo de comunicação de dados?

R: Encapsulamento é o processo no qual uma determinada camada do protocolo “envelopa” as informações recebidas do nível imediatamente superior e adiciona as informações de controle de sua camada.

13. Qual o papel desempenhado pela camada 7 do Modelo OSI?

R: (Aplicativos/Programas) Aplicação distribuída interagindo, transferir arquivos, atualizar, consultar bancos de dados. Disponibiliza serviços de rede para processos aplicativos como correio eletrônico, Transferência de arquivos e emulação de terminais.

14. Qual o papel desempenhado pela camada 6 do Modelo OSI?

R: (Formato de representação da informação ).Apresentação assegura que a informação emitida pela camada de aplicação de um sistema seja legível para a camada de aplicação de outro sistema.
Garantir que os dados sejam legíveis, para o sistema receptor formato de dados, estrutura de dados, negocia a sintaxe de transferência de dados camada de aplicação. Converter códigos e/ou caracteres, criptografia, formatação de dados,compressão/ descompressão de dados


15. Qual o papel desempenhado pela camada 5 do Modelo OSI?
R: (Estabelecimento da comunicação entre programas residentes em computadores diferentes). A camada de sessão estabelece, gerencia e termina as sessões entre os aplicativos. Gerencia o dialogo fim-afim dos processos entre dois hosts, programa que estão rodando em cada um dos computadores que trocam dados.
16. Qual o papel desempenhado pela camada 4 do Modelo OSI?

R: (Qualidade de serviços e confiabilidade ponta-a-ponta, Transmissão e recepção). A camada de transporte fornece o transporte confiável dos dados fim-a-fim.
Conexões ponto a ponto tratam de questões de transporte entre hosts, confiabilidade do transporte de dados, estabelece mantem, e termina os circuitos virtuais. Detecção e recuperação de falhas e controle de fluxo de informações.

17. Qual o papel desempenhado pela camada 3 do Modelo OSI?

R(Viagem dos pacotes através da rede). A função da camada de rede é encontrar o melhor caminho através da rede. Determinar o destino dos dados à medida que eles se movem pela rede como endereço IP e Roteador.

18. Qual o papel desempenhado pela camada 2 do Modelo OSI?

R: (Quadros e controle de acesso ao meio), enlace garante a integridade dos dados que passam através de um enlace físico. Endereçamento físico dos dispositivos de rede, topologia de rede, do acesso à rede, da notificação de erro, da entrega ordenada de quadros e do controle de fluxo. Como endereço de porta MAC/ Ethernet, Switch e Bridge.

19. Qual o papel desempenhado pela camada 1 do Modelo OSI?
R: (Sinais e meios de comunicação), Física Transmissão binaria fios, conectores, voltagens, taxa de dados.

20. Indique em qual camada cada um dos itens que seguem estão associados:
Cabo UTP, fibra óptica, Repetidor >>R: Camada 1-Física.
Roteador >>R: Camada 3-Rede
Protocolo TCP e UDP >>R: Camada 4-Transporte

21. Indique em qual camada cada um dos itens que seguem estão associados:
Switch e Bridge >>R: Camada 2- Enlace
Protocolo IP >>R: Camada 3-Rede
FTP, E-mail, aplicativo de e-commerce >>R: Camada 7- Aplicação.



22 - Defina e descreva os componentes de uma estrutura básica de rede de computadores?

R: A estrutura básica é composta por borda de rede, núcleo de rede e redes de acesso.

Borda da Rede:
Hospedeiros e suas Aplicações estão dentro da LAN.
Serviço orientado à conexão
Serviço não orientado à conexão.
Núcleo da Rede:
Rede de Roteadores interligados.
Enlaces de comunicação entre os roteadores.
Rede de comutação de pacotes (datagramas).
Rede de comutação de circuitos (circuitos virtuais)
Redes de Acesso:
Enlaces de comunicação entre a LAN e o Núcleo da Rede.


23-Qual o papel desempenhado pela Borda, Núcleo e Rede de Acesso em uma rede de computadores?

R: O papel da borda de rede é transferência de dados entre sistemas finais, do Núcleo é transferencia de dados entre a rede po pacotes ou circuitos e Rede de Acesso forma de otimizar a ligação entre os usuários e as operadoras de serviços, através da utilização de tecnologias para construir uma estrutura que seja capaz de entregar ao assinantes o serviço que ele necessita no lugar que for necessário.

Interligando 2 hosts em uma rede de computadores, explique o que é um Serviço Orientado à Conexão e como ele se desenvolve?
R: O Serviço Orientado á Conexãio fornece serviço adicional de segurança na entrega de pacotes entre sistemas finais. Ocorre da seguinte maneira estabelecer o caminho lógico para o envio de dados, controlar o fluxo para que não afogue” o receptor com excesso de dados, controle de congestionamento caso reconheca reduz o volume de dados e reconhecimentos de perda de dados, caso haja então háretransmissões para recuperação dos dados perdidos.
24-Qual o objetivo do Controle de Fluxo e do Controle de Congestionamento nos protocolos de comunicação entre Hosts? Quais as diferenças e semelhanças entre eles?

R: Ambos controlam o fluxo de dados, porem um reduz o volume e o outro o outro a velocidade.

Controle de Congestionamento
- Garantia de que a sub-rede vai conseguir lidar com todos os pacotes
- Vários hosts podem gerar muito tráfego ao mesmo tempo

Controle de Fluxo
- Baseia-se apenas no controle de tráfego ponto-a-ponto
- Se um receptor pode receber o tráfego gerado pelo transmissor




25-Interligando 2 hosts em uma rede de computadores, explique o que é um “Serviço Não Orientado à Conexão” também conhecido por “Serviço sem Conexão” e como ele se desenvolve?
R: O serviço Não orientado a conexão não fornece serviço adicional, ou seja, possui menos segurança na entrega de pacotes entre sistemas finais. Ocorre da seguinte maneira um pacote independente que carrega informação suficiente que permite a rede roteá-lo da origem até o seu destino. Não depende de informações do pacote anterior ou do próximo para ser encaminhado pela rede, porem Transferência de dados não é confiável, isso é, não garante a entrega dos dados no host de destino.

26-Como funciona o processo de “Comutação de Circuitos” dentro do Núcleo de uma rede de computadores?

R: A comutação de circuitos usa um canal dedicado, estabelecido antes de iniciar o envio dos dados, para cada conexão por onde os pacotes de dados são trafegados (Circuito Virtual).


27- Como funciona o processo de “Comutação de Pacotes” dentro do Núcleo de uma rede de computadores?

R: A comutação de pacotes dados são enviados em pacotes por caminhos que podem variar (datagramas).


28-Qual a diferença existente entre o processo de “Comutação de Circuitos” e o de “Comutação de Pacotes” que uma rede de computadores utiliza em seu núcleo?

R: Na comutação de circuitos uma conexão entre as duas entidades comunicantes é alocada, de forma a estar sempre disponível; a comunicação é feita, então, de forma ininterrupta.
Já na comutação de pacotes a origem envia uma informação para a rede dentro de um pacote, que leva o endereço de destino no seu cabeçalho. O pacote é então transmitido pela rede, que é responsável por escolher o melhor caminho até o destino. 










4 comentários:

Postar um comentário

comente e dê sua opinião! curta

Como cobrar? E quanto cobrar?



Bom, em primeiro lugar, gostaria de dizer que esse tema é realmente um dos grandes temas do trabalhador que presta serviços na área de informática, ou qualquer área técnica, muitos ainda possuem dúvidas da maneira que devem se conduzir quando o assunto é cobrança, talvez pelo fato de haver muitos picaretas que cobram muito barato, o que acaba desvalorizando a categoria, ou absurdamente caro o que ocasiona aquelas reportagens no fantástico, onde se é cobrado pra ligar um fio de uma geladeira, o valor de várias horas técnicas, pra uma coisa que dura apenas poucos minutos pra se resolver, gerando assim a desconfiança dos clientes a respeito do diagnóstico dado ou no caso dos webdesigners e programadores por exemplo, a desconfiança sobre o tempo gasto para chegar à solução oferecida.

Convém ao meu ver, padronizar certos "padrões", redundante não? Mas é isso mesmo! Convém que certos padrões sejam realmente seguidos pelos profissionais da Area de TI sob risco de, que, se assim não for, logo logo estarmos trabalhando pra pagar a luz, a água e a gasolina, somente para as despesas, sem nenhum lucro que seja para qualidade de vida e possibilidade de crescimento mais significativo.

Uma das coisas mais importantes que esquecemos, como profissionais, é de que, quando estudamos, gastamos muito dinheiro, e devemos (teoricamente rs) recuperá-lo, ou não seria essa a intenção?

Por exemplo, considere que trabalhe em qualquer área de TI (infra-estrutura, webdesigner, programador, banco de dados, etc), e tenha se formado em uma faculdade de 4 anos, tornando-se assim bacharel, considere que sua mensalidade, era de aproximadamente 500 reais mensais, considere que pagava condução todos os dias, ou se ia de carro, o que tornaria a vida mais cara ainda, com gasolina e estacionamento, fora o lanche, o material didádito enfim... Façamos algumas contas!

Estudo
4 anos = 48 meses 
48 x 500 = 24000

Transporte (Onibus)

Preço da passagem  considerando preço de SP e meia entrada.

dias letivos = 200 por ano
200x4=800
total=800 dias letivos
800 x R$3,00
2400 R$

Pra quem tem automóvel (custo mensal de gasto gasolina, estacionamento)

gasolina=150
estacionamento=50
total=200/mês

48x200=R$9600

Se estiver nessa condição  terá feito um investimento de, no mínimo

2400 R$ + 9600 R$ = 35600 R$ (total)

Bom, na simulação acima, temos um investimento de 35600 reais, ou seja, se estudou nessas condições, que é a condição em que a média estuda, vai ter que recuperar ao longo do tempo seu investimento de 35600 R$.

Bom a partir daí, teremos que considerar também, como prestadores de serviços, mais algumas despesas como, gasolina, livros, depreciação de carro, luz, internet, água, telefone. Ou seja, há as despesas que teremos ao praticar visitas, e há despesas do ambiente físico onde permanecemos a maior parte do tempo. Vale sempre a pena, criar uma planilha e anotar sempre todas as despesas,colocarei minhas despesas médias como exemplo.

água =        40 R$
telefone=   60 R$
Internet =  40 R$
luz=            40 R$
gas moto    50 R$
Manut mot 50 R$
Total           280 RS

Partimos do princípio que, no mínimo temos 280 reais de despesas (claro que para muita gente que me lê) isso é muito pouco, quero deixar claro que essa simulação é muito mínima, não quis me aprofundar tanto, porisso falei da necessidade de uma planinha pessoal pra cada um. Mas enfim, 280 reais só de despezas, como é o meu caso. 

Considere que ache justo, ou seja fora o investimento com os estudos, há ainda despezas no próprio exercicio da atividade, como (almoço, remédio, lanche, etc..) as quais deverão ser consideradas na hora de praticar o preço.

Formalmente, já há algum tempo em São Paulo, muitos profissionais de TI na área de manutenção, utilizam padrões em torno de 70 a hora técnica (fora a visita, que deve ser avaliada a distancia, tempo, etc.) considero o minimo justo (repito, mínimo), avaliando que o profissional de hardware sem dúvida é o que possui maior responsabilidade por se tratar de uma espécie de médico do computador, que por  sua vez, é a ferramenta que faz qualquer empresa ou mesmo residencia andar.

O problema a meu ver, é que, muitos micreiros, se prostituem, e cobram valores como 20, 30 reais, e se permanecer assim, sem padrão, não dará mais pra competir com esses. Agora pense! Se cobrar 30 reais pra arrumar um micro, quantos séculos demorará para recuperar apenas o dinheiro investido para os estudos? Faça a conta e leve um susto!

Em outras áreas, como a de Webdesigner e programadores, há parametros um pouco diferentes, por se tratar de tempos diferentes de trabalho, onde o programador ou designer, terá com aquele mesmo cliente, muito mais horas, o que possibilita que ele cobre menos por horas, e acabe recebendo pelo projeto em si, no montante.  A grosso modo como acontece com um pedreiro, o que torna mais vantajosa, a vida desses. 

Outra questão importante é que o profissinal de TI possui muitos amigos, rs, esse fenômeno certamente fará com que 30% dos seus serviços sejam na "camaradagem" afinal, aquela velha frase "Olha eu te chamei porque vc é amigo hein, tinha um sobrinho do meu sobrinho que ia fazer na faixa, vê se não mete a faca hein". Estes amigos de montão, também entram no pacote, e tentam fazer dagente apenas serviçais, o que certamente tomará muito do nosso tempo, e desvalorizará muito nosso serviço, claro que, é importante sempre ajudar quem não pode, ou nossos amigos, mas é importante esclarecer, que nossos amigos também tem que respeitar que nossos conhecimentos, nossos estudos, nosso tempo de abstinência as outras coisas também valem algo. Gosto de comparar a alguns vizinhos e amigos meus que possuem comercios por exemplo, quando eu vou comprar algo nas suas lojas, ou mesmo o churrasquinho, não passo lá e falo, olha esse churrasco aqui é na camaradagem hein, to pegando aqui uns, que Deus te pague. 

Quando compramos algo, vamos ao caixa e pagamos, quando o mecânico meu amigo mexe na minha moto, eu pago ele. Porque pra quem trabalha com TI, fazendo sites, fazendo manutenção, redes, as pessoas acham que devem ser feitas as coisas só porque são amigas? Só o tempo delas e o trabalho delas é que valem? 
O problema é que muitas vezes fica difícil cobrar, uma vez que no Brasil, as pessoas já te procuram pra levar vantagem, mas nessas horas, convém ser pulso firme e dizer "amigo, eu estudei, se fosse fácil qualquer um faria". E talvez perder o "falso amigo" mas não perca sua dignidade e possibilidade de futuro promissor.

Vale lembrar que nesse artigo em nenhum momento calculei lucro, apenas a recuperação de gastos feitos nos cursos, e despezas gerais, ou seja to falando pra ficar no zero, o que torna mais absurda ainda a situação, pois ninguém quer trabalhar e se dedicar tanto tempo sem poder depois ter um dinheiro pra poder se divertir, ajudar alguem, comer alguma coisa que gosta, viajar, etc.

Bom, feita a observação, se quiserem, postarei um modelo de planilha que sirva para o cálculo de despesas e hora técnica, para que todos possamos ser melhor remunerados e reconhecidos, recompensados por tanto esforço ok? 

E você como cobra seus serviços, tem alguma sugestão?







 






0 comentários:

Postar um comentário

comente e dê sua opinião! curta

HACKERS -Você tem medo deles?


O que é ser hacker? - Parte 1


Normalmente associado à práticas do mal, como invasões, retirada de páginas de bancos e hospitais do ar, roubo de dados e a todo o tipo de vandalismo eletrônico, o nome hacker tem sido muito mal difundido e explicado pelas mídias, o que causa um efeito negativo em relação a esses que muitas vezes são jovens ousados cuja capacidade de invenção traz em si, muitas vezes soluções, e não problemas. Isso mesmo os hackers são responsáveis por muitas soluções que temos disponíveis hoje, existe uma cultura hacker, que objetiva não fazer o mal, mas criar e estimular o bem comum, não apenas mostrando as vulnerabilidades de sistemas, mas o oferecimento de soluções que visam aumentar a segurança, pois os hackers ajudam a construir e modernizar os sistemas, o que existe para muitos no entanto, é a não compreensão, de que, para ser um hacker, muitas vezes será necessário o descumprimento de regras, isso para que, possa ser tentado uma melhoria naquilo. Por exemplo, você acharia correto alguém invadir um banco e ter acesso a todos os cofres podendo assim saquear tudo? Certamente que não! Você não concordaria com isso. 

Mas e, se a intenção desse alguém fosse entrar e verificar todas as possíveis e vulneráveis portas e caminhos apenas para poder ao final do processo, chegar ao responsáveis pela segurança e mostrar com provas que precisam melhorar, para o bem maior, o que você acharia no final? Não acharia isso demais? 
Pois bem, o hacker é o responsável por isso, o que pode ser muitas vezes confundido com os crackers que seriam os invasores cuja única intenção é fazer fazer o mal.
Vale lembrar também, que o termo hack, em seu sentido original também é análogo aquele que deseja melhorar algo, que uma vez foi feito, tenha necessidade de melhoria, ou seja, nada disso tem a ver com a utilização da palavra tal como tem sido feita hoje!

Como dito acima, além das motivações técnicas de melhoria, os hackers, possuem também motivações políticas, entre elas, a do direito a divulgação de informações e conhecimentos, que segundo eles, devem estar disponíveis para todos, tal batalha se dá contra as empresas e empresários que desejam de alguma forma limitar esse conhecimento, cercando seu acesso para defender seus lucros.

Segundo Steven Levy, os primeiros hackers, desejavam e acreditavam que a informação e as ferramentas para seus projetos, deveriam ser livres. Ou pelo menos disponíveis para todos, e compartilhavam seus trabalhos com os demais, “eram como heróis da era eletrônica”- dizia ele, o que parece destoar completamente da idéia que se dá aos hackers nos dias de hoje!

Os computadores pessoais, desenvolvidos por pessoas como Steve Wozniak, (um dos primeiros hakers), os videogames, musicas eletrônicas, softwares de desenhos, a Web, tudo isso foi desenvolvido por gente assim, hackers, cujo objetivo é usas a máquina para construir e cada vez mais melhorar aquilo.

O que acha dos hacker, isso muda sua forma de pensar a respeito deles?



Comente e opine, compartilhe se gostar.

0 comentários:

Postar um comentário

comente e dê sua opinião! curta

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/ .

5 comentários:

Postar um comentário

comente e dê sua opinião! curta