1
Introdução à programação PHP
O trabalho Introdução à programação PHP de Sheldon Led foi licenciado com uma Licença Creative
Commons - Atribuição 3.0 Não Adaptada.
Com base no trabalho disponível em http://www.sheldonled.com/pdf/intro-php.pdf.
2
Sumário
Indice..................................................................................................2
Introdução...........................................................................................3
Exemplos de aplicativos em PHP.......................................................4
Noções básicas de programação........................................................5
Sintaxe básica do PHP.......................................................................7
Criando um sistema de Login...........................................................10
Criando sua página inicial:................................................................10
Criando um formulário de login.........................................................12
Criando o banco de dados................................................................12
Criando sistema de login..................................................................13
Criando o logout.php........................................................................15
Conclusão.........................................................................................16
Referências.......................................................................................16
3
Introdução
O PHP é uma das linguagens mais utilizadas na Web. Ela utiliza o servidor para interpretar seu
código PHP, e exibir o resultado em código HTML no navegador do usuário, em qualquer lugar
em que seu servidor pode ser acessado. Sua principal característica é o dinamismo e
praticidade, além da fácil aprendizagem, principalmente para aqueles que já conhecem alguma
linguagem de programação parecida com C.
O PHP é gratuito e com seu código aberto, ou seja, até os arquivos binários do PHP tem seu
código disponível e toda informação sobre o PHP pode ser encontrada em http://www.php.net.
Neste site é possível acessar toda a documentação do PHP, com informações detalhadas de
cada funcionalidade da linguagem.
O PHP é embutido no HTML, ou seja, a página “index.php” contém a estrutura textual do seu
site, a referência à estrutura visual (css), e no meio do seu código HTML são colocadas as
chamadas PHP. Porém, ao acessar essa página, mesmo ela tendo o final .php, pode-se
visualizar seu código fonte e verá que só é exibido o HTML que você colocou e o HTML gerado
pelo PHP, pois este é executado pelo servidor.
Com o PHP é possível fazer conexões à bancos de dados. Com isso é possível criar sites mais
dinâmicos, podendo criar aplicativos iguais aos do seu computador, porém executando na web,
como aplicativos de gestão de projetos, gestão financeira, loja virtual, blogs, criar um sistema
de comunicação com o leitor do seu site em forma de e-mail, fórum, etc.
As linguagens executadas por um servidor costumam ser dinâmicas pois o usuário pode estar
em qualquer máquina, acessar seu navegador de internet nativo, e poder ver o resultado do
que o servidor executa. Além de ter essa capacidade, o PHP funciona também sendo instalado
em Linux, Windows e MAC, e existem servidores para essas plataformas que executam o PHP.
Este documento é uma visão geral do PHP, seguida de um tutorial simples de formulário de
login. Deve ser seguido utilizando a internet, pois há muita coisa que não será abordada aqui,
então se faz necessário o uso da internet para ir além. Aqui também, não abordaremos a
preparação do ambiente php, visto que esta configuração é fácil e existem milhares de tutoriais
na internet explicando como fazê-la. Programas que configuram automaticamente esse
ambiente também são muito utilizados: EasyPHP, WampServer, XAMPP.
Importante: Em todos os nossos exemplos, vamos deixar predeterminado que a pasta do seu
servidor que armazena os arquivos php é /var/www e que os nossos exemplos estão sendo
executados localmente, ou seja, o acesso pelo navegador será http://localhost. A ferramenta
de banco de dados utilizada será o phpMyAdmin.
4
Exemplos de aplicativos em PHP
Existem milhões de aplicativos que são feitos em PHP, rodando em um servidor web em sua
máquina local, ou em um servidor remoto. Alguns exemplos de aplicativos são:
1. Gerenciadores de conteúdo (CMS): Sistemas gerenciadores de conteúdos são muito
utilizados em sites gerais. Atualmente as pessoas não mais fazem um site do zero, mas
utilizam CMS para criar um site. Os gerenciadores de conteúdo mais conhecidos são
Joomla! e Wordpress, sendo o último mais utilizado para blogs e o primeiro para sites.
Porém isto não é uma regra, pessoas fazem sites em Wordpress tanto quanto blogs em
Joomla!
2. Gerenciador de projetos: Sistemas muito poderosos para gerenciamento de projetos
são feitos em PHP. O gerenciador de projetos mais famoso é o Microsoft Project, e seu
concorrente direto em software livre é feito em php. Os dois gerenciadores de projetos
mais famosos em PHP são: Redmine e dotProject. São livres para estudo e para uso
geral.
3. E-commerce: Já sabemos que vender pela internet dá dinheiro. Um sistema
mundialmente conhecido que nos dá uma ferramenta de comércio eletrônico pronta é o
Magento. Este é um sistema de e-commerce feito em PHP, e existem centenas de
milhares de lojas virtuais no mundo funcionando em cima deste sistema. É estruturado
modularmente utilizando o Zend Framework.
4. Redes sociais: O facebook foi inicialmente feito em php. Hoje o facebook é um sistema
muito robusto, pois é acessado por milhões de pessoas simultaneamente. Sendo assim,
a parte de mais baixo nível do sistema é feita em C, e existem outras partes não
conhecidas pelos usuários, pois o facebook não é de código aberto, como a maioria dos
sistemas citados aqui.
5. O seu sistema: O seu sistema pode conter qualquer tipo de funcionalidade. Muitas
pessoas fazem aplicativos para uso pessoal em php, como por exemplo, um sistema
que controla estoque, onde utiliza-se o php para armazenar os produtos que entram no
estoque, em um banco de dados, e depois pode armazenar o que já foi consumido, e no
final é possível fazer um balanço entre o que tem, o que falta e qual produto precisa ser
reabastecido no estoque, mesmo que esse estoque seja sua geladeira.
5
Noções básicas de programação
A linguagem C é sempre um referencial forte, portanto, se você já teve alguma experiência com
esta linguagem, ou com outras parecidas, vai se sentir mais à vontade ao iniciar seu
aprendizado com PHP, porém não se deixe levar por isso, pois o PHP tem suas peculiaridades.
1. Primeiro código PHP
Uma vez que você tem acesso à um servidor que interprete PHP, crie um arquivo chamado
primeiro.php e o abra em um editor de textos (notepad, coda, Sublime text, gedit, vim, etc),
digite o código abaixo:
<html>
<body>
<?php
//Meu primeiro código em php
echo “Se você lê isto, é porque eu programo em PHP!”;
?>
</body>
</html>
Salve o seu arquivo e abra o navegador e acesse o arquivo: http://localhost/primeiro.php
Se apareceu a mensagem: Se você lê isto, é porque eu programo em PHP! então você pode
ficar feliz pois esta frase declara uma verdade, e este é seu primeiro código PHP que funciona.
Agora vou explicar o que você fez:
1. Todo código PHP deve ficar dentro da tag <?php aqui ?>. Qualquer coisa escrita fora
dessas tags é interpretada como HTML ou texto puro.
2. // significa um comentário de linha, para comentar mais de uma linha você utiliza /*
comente várias linhas aqui */.
3. echo escreve algo na tela. Quando um código PHP gera um resultado HTML,
provavelmente ele foi imprimido utilizando o echo.
4. Toda linha em PHP termina com ponto e virgula; Caso contrário aparecerá um enorme
erro na execução do seu código. Essa regra não se aplica à comentários.
Note que, com este exemplo, você já aprendeu a fazer comentários no seu código, que são
muito importantes, pois dada a maneira que o código vai crescendo, fica difícil manipulá-lo, e
os comentários podem ajudá-lo bastante.
2. Variáveis
Toda variável no PHP inicia com o símbolo do dólar. Então altura está errado, porém $altura é
o correto. Escreva o exemplo abaixo, e salve como exemp1.php:
<html>
<body>
<?php
$a = 5;
$b = 5;
$c = $a + $b;
echo “A soma de $a e $b é igual a $c”;
//Ou também se pode fazer
6
echo “A soma de “.$a.” e “.$b.” é igual a “. $c;
?>
</body>
</html>
Note que a saída de ambas linhas é: A soma de 5 e 5 é igual a 10. A diferença entre os dois
exemplos é que no primeiro a variável está embutida na saída, e no segundo exemplo é que a
variável é concatenada com a saída. Também é importante ressaltar que a variável $a seria
diferente de $A, pois o PHP é sensível à essa diferença e entende como variáveis distintas.
Existem vários operadores que podem ser trabalhados em variáveis, para diferentes usos
dependendo do tipo de dado que a sua variável carrega. Não é o foco deste tutorial falar sobre
tipos de dados ou operadores de manipulação de dados. Variáveis também tem seu escopo,
por exemplo, uma variável declarada dentro de uma função só será reconhecida lá dentro, e
para que seja reconhecida globalmente por todo o código PHP basta adicionar a palavra global
na sua declaração:
<?php
global $a;
?>
A declaração de uma função será abordada depois.
3. Constantes
Se variável armazena um valor que pode ser manipulado, constantes são o contrário, uma vez
atribuído, seu valor não pode ser mudado ao longo do código. Um exemplo de constante é o
símbolo de dinheiro, você pode averiguar se o usuário está no brasil, então recebe “R$”, se
estiver nos E.U.A então recebe “$”. A definição de uma constante é:
<?php
define(“CONSTANTE”, “Este texto é constante!”);
//utilizando a constante
echo CONSTANTE;
?>
Observe que é um padrão mundialmente reconhecido, que as constantes sejam declaradas
sempre em maiúsculo. Para variáveis utiliza-se o camelCase (ex: dataAniversario), já para
constante, o padrão é UPPERCASE (ex: DATA_ANIVERSARIO). Esses padrões são
reconhecidos e utilizados em várias linguagens, e nas linguagens orientadas à objeto, utiliza-se
o padrão StudlyCaps para criação de classes.
7
Sintaxe básica do PHP
Agora que o básico já foi explicado acima vamos aprender um pouco mais sobre a sintaxe
básica do PHP.
1. Estruturas de Controle
As estruturas de controle são comuns em todas as linguagens de programação, e seu uso é
indispensável. As estruturas de controle são comandos condicionais (if, else, switch, case) ou
comandos de repetição (do, while, for e foreach). As estruturas de repetição tem o comando
break, que interrompe a repetição, e o comando continue para ignorar o restante da repetição e
ir para a próxima repetição.
1. if - else: O bloco de um if pode estar sozinho, ou acompanhado de um else. Vejamos
uma aplicação no mundo real: Você pensa, “se chover, não saio de casa”, utilizou
apenas o if. Se pensar, “se chover, saio de carro, senão saio de moto”, utilizou if e else.
Ainda existe uma estrutura aninhada, por exemplo: “se chover e tiver gasolina no carro,
saio no carro; senão se chover e não tiver gasolina no carro, e tiver capa de chuva,
saio na moto; senão fico em casa”. Aninhamos várias condicionais, veja o código do
útlimo exemplo:
<?php
if ($chovendo && $temGasolinaCarro) {
echo “sair no carro”;
} else if ($chovendo && !$temGasolinaCarro && $temCapadeChuva){
echo “sair na moto”;
} else {
echo “ficar em casa”;
}
?>
2. switch: A estrutura switch-case é apenas uma simplificação desse último exemplo,
quando queremos exibir vários resultados diferentes dependendo do valor de uma
variável, veja:
<?php
switch ($temperatura) {
case 30:
echo “use uma regata”;
break;
case 20:
echo “use uma camiseta com manga”;
break:
case 15:
echo “use uma blusa de frio”;
break:
default:
echo “vista-se bem!”;
break;
}
?>
O bloco default é o else sozinho, no exemplo anterior, ou seja, se nenhuma condição acima for
verdadeira, será executado o default.
8
3. For: é uma estrutura de repetição controlada por uma variável. É preciso definir o valor
inicial, condição para finalizar, incrementação, veja:
<?php
//contando até 10
for ($i=1;$i<=10;$i++) {
echo “linha $i <br>”;
}
?>
O laço vai contar do 1 até 10 (enquanto i for menor ou igual (<=) a 10, ele executará o código).
4. While e do-While: É uma estrutura de repetição que executará sempre que a condição
for verdadeira. É usada quando a interrupção precisa ser mais dinâmica:
<?php
//variável recebe um valor qualquer
$i=0;
$stop = 25;
while ($i<$stop) {
echo “linha $i <br>”;
$i++;
}
?>
O laço pode executar de diferentes maneiras, dependendo do que a variável $stop receber. A
diferença do while comum para o do-while é que, no while comum, se a condição for falsa, não
executa nada, no do-while o código é executado pelo menos uma vez:
<?php
//variável recebe um valor qualquer
$i=0;
$stop = 25;
do {
echo “linha $i <br>”;
$i++;
} while ($i<$stop);
?>
No exemplo acima, se $stop receber 0, ele executa a primeira vez e sai do laço, já no anterior,
não executaria nada.
5. Foreach: este comando funciona a partir da versão 4 do PHP. É usado para percorrer
um array, veja:
<?php
$alunos = array(“Sheldon”, “Maria”, “Sarah”, “Isaac”, “André”);
echo “Os alunos que vieram hoje foram: <br>”;
foreach ($alunos as $a) {
echo “$a <br>”;
}
?>
9
2. Funções
Funções e Classes são grandes avanços de uma linguagem, uma vez que a Orientação à
Objetos é um paradigma de programação muito aceito, porém, falar de Classes não é o foco
agora, pois é preciso assimilar o conteúdo introdutório no PHP, então vamos abordar apenas o
uso de funções, pois o PHP aceita tanto a programação estrutural quanto a programação
orientada à objetos.
Funções são pedaços de código que executam uma tarefa bem específica. Ela é declarada
para deixar o código mais organizado e funcional, veja:
<?php
function soma($var1, $var2){
return ($var1+$var2);
}
echo soma(5,15);
?>
O resultado na tela será 20. No exemplo acima, soma é o nome da função, $var1 e $var2 são
os argumentos, o código entre chaves { } será executado sempre que houver a chamada da
função, como foi feita: soma(5,15);
3. Inclusão de Arquivos
O comando include permite a inclusão de outros arquivos PHP no arquivo que está sendo
executado. Por exemplo, se várias páginas tem a mesma estrutura superior, você pode
separá-la em um arquivo topo.php, e incluir em seu index.php. Veja:
<html>
<body>
<?php
//aqui será incluído todo o código superior
include(“topo.php”);
//Abaixo vai todo o código de sua index.php
?>
<h2>Olá</h2>
</body>
4. Dicas:
Evite ao máximo repetições de código. Acima foram demonstrada algumas maneiras de evitar
vãs repetições, sempre refatorando seu código com funções, separando códigos em arquivos a
serem incluídos e usando as estruturas de controle e repetição.
Short tags - Uma coisa interessante a se usar no PHP são as short tags. É necessário habilitar
essa função no seu arquivo php.ini (short_open_tag), e depois de habilitada, você pode utilizar
apenas <? aqui ?> para escrever seu código. Note que, se você desenvolver seu código
assim, terá que verificar essa configuração sempre que for executá-lo em outro servidor
10
Criando um sistema de Login
É muito comum, em qualquer website ou sistema, existir uma área restrita, onde é necessário
fazer um cadastro para ser reconhecido como membro daquela área, e assim, definir ou
restringir demais coisas, como nível de acesso. Vamos fazer agora um sistema de login:
Criando sua página inicial:
Segue abaixo um código que deixará sua página inicial com uma estrutura parecida com esta:
1. Estrutura do documento (HTML):
<!DOCTYPE html>
<html>
<head>
<meta name="author" content="Sheldon Led" />
<meta name="description" content="Primeiro site php" />
<title>Meu site</title>
<link href="css/template.css" rel="stylesheet" />
</head>
<body>
<div id="container">
<header id="topo">
<h1>Meu Site</h1>
<h2>Seja bem vindo, <a href="login.php">Fazer login?</a></h2>
</header>
<div style="clear: both;"></div>
<div id="meio">
<aside id="lateral">
<nav id="menu">
<ul>
<li><a href="index.php">In&iacute;cio</a></li>
<li><a href="quemsomos.php">Quem Somos</a></li>
</ul>
</nav>
</aside>
<section id="conteudo">
11
<h2>Seja bem vindo ao meu site!</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc vitae sapien ut leo iaculis
interdum. Nunc hendrerit purus non lorem viverra dapibus. Mauris at venenatis dolor. Pellentesque
blandit ligula eget nunc interdum quis scelerisque velit fringilla. Mauris consequat ipsum quis odio
aliquam vulputate. Nunc erat est, varius a elementum non, ornare in nibh. Sed sed nulla urna, ac
hendrerit tellus. Cras eleifend risus et orci varius sit amet semper diam sagittis. Mauris sed leo ligula, ac
luctus sapien. Mauris justo lacus, porta eget volutpat id, lacinia ut urna. Maecenas vitae diam sed enim
ornare tincidunt. Nunc posuere, nunc tristique faucibus feugiat, lacus lectus facilisis nibh, vitae
condimentum nulla mauris eget erat. Nunc ut elit velit.</p>
<p>Nam facilisis tristique sem non sodales. Sed vitae lectus id orci dictum dapibus in ac diam.
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Fusce tempus
varius enim, nec cursus nibh porta in. Nulla eu rhoncus neque. Nam eu tortor feugiat quam lacinia
semper eget vitae nibh. Duis ornare, nibh sit amet viverra mollis, risus magna rutrum elit, vel convallis
massa neque non enim. Donec risus nulla, aliquam ut imperdiet at, pharetra a velit. Aliquam erat
volutpat.</p>
</section>
</div>
<div style="clear: both;"></div>
<footer id="rodape">
<h3>Obrigado por acessar! &copy; 2013 - Sheldon Led </h3>
</footer>
</div>
</body>
</html>
2. Estrutura de visualização (CSS):
Crie um arquivo template.css dentro da pasta css, no seu site, e insira o conteúdo abaixo:
body {
background: #eedc94;
}
#container{
width: 960px;
margin: 0 auto;
background: #C64934;
color: #FFF;
}
a, a:hover, a:visited {
color: #FFF;
}
a:hover {
text-decoration: none;
}
#topo{
height: 120px;
margin-bottom: 20px;
background: #fea540;
12
}
#lateral{
width: 200px;
float: left;
}
#meio{
min-height: 80px;
overflow: auto;
background: #fea540;
}
#conteudo{
width:700px;
height: 100%;
padding: 0 20px;
float: right;
background: #C64934;
}
#rodape {
height: 60px;
margin-top: 20px;
padding-top: 60px;
background: #fea540;
text-align: center;
}
Criando um formulário de login
Pensando na estrutura definida acima, vamos colocar o formulário de login dentro do bloco de
conteúdo. Crie o arquivo login.php com o mesmo código fonte de index.php, substituindo o
conteúdo dentro da section conteudo pelo código abaixo:
<h2>Login</h2>
<form id="login" action="index.php" method="POST">
<label for="user"> Usu&aacute;rio:</label>
<input id="user" name="user" type="text" width="50px" maxlength="25">
<br><br>
<label for="senha"> Senha:</label>
<input id="senha" name="senha" type="password" width="50px" maxlength="25">
<br>
<input type="submit" value="entrar">
</form>
Observe que, ao acessar login.php e digitar um usuário e senha qualquer, nada acontece, pois
nenhuma programação foi definida ainda.
Criando o banco de dados
Supondo que há um servidor MySQL instalado, utilize o cliente que desejar, por exemplo, o
phpMyAdmin. Crie um banco de dados chamado login, e uma tabela chamada usuarios com 5
campos:
13
Nome do campo
Tipo
Tamanho
id_usr
INT
AUTOINCREMENT (A_I)
nome_usr
VARCHAR
100
usuario_usr
VARCHAR
30
senha_usr
VARCHAR
30
email_usr
VARCHAR
100
Veja o SQL de criação da tabela:
CREATE usuarios (
id_usr int(11) NOT NULL AUTO_INCREMENT,
nome_usr varchar(100) NOT NULL,
usuario_usr varchar(30) NOT NULL,
senha_usr varchar(30) NOT NULL,
email_usr varchar(100) NOT NULL,
PRIMARY KEY (id_usr)
);
Insira agora 3 usuários de exemplo, para trabalharmos com eles:
nome_usr
usuario_usr
senha_usr
email_usr
Maria de Fátima
maria
maria123
[email protected]
Sarah Oliveira
sarah
sarah321
[email protected]
Isaac Martins
isaac
isaac555
[email protected]
Criando sistema de login
Como você pode osbervar, seu formulário de login está enviando os dados via POST para a
página index.php. Sendo assim, precisamos validar o usuário e senha por lá. No arquivo
index.php, do final do </header> até a primeira linha do documento, insira o código abaixo:
<?php
$con = mysql_connect("localhost","root","root");
if (!$con){
die("Sem conexão com banco de dados :" . mysql_error());
}
session_start();
mysql_select_db("login",$con);
$logar = "";
if(isset($_POST["user"]) && isset($_POST["senha"]) ){
$sql = "SELECT * FROM usuarios
14
WHERE usuario_usr='".$_POST["user"]."' AND senha_usr='".$_POST["senha"]."'";
$result = mysql_query($sql);
if (mysql_num_rows($result) > 0) {
$vusuario = mysql_fetch_array($result);
$_SESSION['usuario']=$vusuario['nome_usr'];
$_SESSION['senha']=$vusuario['senha_usr'];
}
}
if ($_SESSION['usuario'] != "") {
$logar = $_SESSION['usuario'].". <a href=\"logout.php\">Sair.</a>";
}else {
$logar = "<a href=\"login.php\">Fazer login?</a>";
}
?>
<!DOCTYPE html>
<html>
<head>
<meta name="author" content="Sheldon Led" />
<meta name="description" content="Primeiro site php" />
<title>Meu site</title>
<link href="css/template.css" rel="stylesheet" />
</head>
<body>
<div id="container">
<header id="topo">
<h1>Meu Site</h1>
<h2>Seja bem vindo,
<?php
if ($logar != "")
echo $logar;
?>
</h2>
</header>
Da mesma forma, insira nas demais páginas que você criar, a validação da session:
<?php
session_start();
if ($_SESSION['usuario'] != "") {
$logar = $_SESSION['usuario'].". <a href=\"logout.php\">Sair.</a>";
}else {
$logar = "<a href=\"login.php\">Fazer login?</a>";
}
?>
A partir desse momento, já é possível fazer login e ver o nome do usuário logado na página
inicial do seu site. Agora é preciso criar uma maneira de fazer logout.
15
Criando o logout.php
Crie um arquivo chamado logout.php e insira o código abaixo:
<?php
session_start();
//destruindo a seção
unset($_SESSION['usuario']);
unset($_SESSION['senha']);
session_destroy();
//redireciona para pagina inicial
Header("Location: index.php");
?>
Pronto, agora você tem um login completo sendo executado no seu site. Claro que nenhuma
medida de segurança foi inserida, como encriptação dos dados nas sessions. Esse exemplo foi
simplesmente uma ilustração do que possa vir a ser o seu sistema web. Nesse tutorial
abordamos Layout utilizando tags HTML5, CSS, sessões PHP, HTTP header, estruturas de
controle e variáveis. Isso já é um bom ponto de partida para estudar novos conceitos web.
16
Conclusão
Neste documento foram introduzidas as informações e técnicas de programação fundamentais
para o desenvolvimento de sistemas web ou sites dinâmicos utilizando PHP. Portanto isso nem
pode ser considerado o início, pois muito há de se aprender. O primeiro passo foi dado, e você
já conhece a programação básica, agora é aprofundar seus estudos.
Uma sugestão é que você crie um site com conteúdos válidos, mesmo que seja para estudo
pessoal e que isso não venha a ficar disponível na internet, mas insira páginas de acesso
restrito, coloque redirecionamentos automáticos, modulariza o código HTML, enfim, existem
muitas coisas que podem ser melhoradas no exemplo que foi apresentado acima.
Referências
1. Site oficial do PHP (http://www.php.net) - Acessado do dia 7 ao dia 15 de maio de 2013
2. Niederauer, Juliano. Desenvolvendo websites com PHP. São Paulo: Novatec, 2004
3. Material didático sobre HTML na W3shhools (em inglês) http://www.w3schools.com/html
4. Material didático sobre CSS na W3shhools (em inglês) - http://www.w3schools.com/css/
5. Material didático sobre PHP na W3shhools (em inglês) - http://www.w3schools.com/php/
Download

Introdução à programação PHP