Ir para conteúdo

Featured Replies

Postado

E ae galera, vim trazer esse tutorial de php

1. A linguagem PHP

Mostrar conteúdo oculto

A linguagem PHP é uma linguagem de programação criada especialmente para o uso em páginas Web. Mas nem por isso ela não pode deixar de ser usada em ambientes desktop, aplicações servidoras, aplicações de rede, entre outros. Mas o principal escopo da linguagem é justamente trabalhar com o ambiente Web. O site do PHP é http://www.php.net, e lá você pode encontrar os arquivos necessários para a instalação em vários sistemas, inclusive o Linux e o Windows.

Para quem não conhece linguagens de programação, PHP pode ser umpouco difícil no começo, como toda linguagem, mas quem já está habituado à programar, vai perceber que PHP é muito fácil. O PHPé uma linguagem orientada a objeto, com a sintaxe parecida com a do C, só que muito mais simples e prática. O PHP se diferencia justamente pela rapidez e agilidade que os programadores têm em fazer programas e sistemas, pois com o PHP consegue-se desenvolver muito mais rapidamente do que outras linguagens de programação para Web tais como ASP ou JSP.

E se já não bastasse, o uso do PHP já é muito difundido na Internet. Uma boa quantidade de páginas dinâmicas por aí na Internet são feitas justamente com a linguagem PHP. Então com certeza você não vai ficar isolado no meio… Com certeza você vai ter vários recursos para estudar o PHP e ver como ele é útil para a programação voltada para Web. E por último, o PHP é software livre, ou seja, seu código-fonte está disponível para todos usufruirem! Ótimas vantagens para quem quer começar a programar para Web!

2. O uso do PHP com Bancos de Dados

Mostrar conteúdo oculto

Uma das melhores habilidades do PHP é lidar com bancos de dados de uma forma fácil. Hoje em dia os sistemas para Web estão cada vez mais usufruindo das capacidades magníficas que os bancos de dados podem oferecer. Neste tutorial vamos aprender a fazer algumas coisas com o banco de dados MySQL.

O MySQL é um banco de dados simples, rápido e eficiente para se trabalhar com sistemas Web. Além disso ele é bem fácil e intuitivo, então estaremos usando ele para fazer os nossos exemplos deste tutorial. A licença deste banco de dados também é GPL, então é software livre. O site do MySQL é http://www.mysql.com.

3. Criando um livro de visitas

Mostrar conteúdo oculto

Antes de mais nada, este tutorial assume que você tenha pelo menos um pouco de noção sobre o que é HTML e um pouco de lógica de programação. Mas também os usuários inexperientes também podem seguir este manual sem problemas, e ir aprendendo ainda mais com ele. Primeiramente iremos criar um livro de visitas bem simples, usando como fonte de dados o banco de dados MySQL.

Mostrar conteúdo oculto

3.2. Utilizando o PHP

Antes de mais nada vamos testar o funcionamento do PHP. O PHP vem com uma função bem simples para mostrar que está funcionando. Suponhamos que o seu servidor já esteja configurado para rodar PHP em todos os arquivos com extensão .php, então vamos criar dentro do diretório de páginas do seu servidor web um arquivo chamado phpinfo.php, com o seguinte conteúdo:

<?

// PHP Info: Mostra informações sobre o PHP instalado na máquina

phpinfo();

?>

Vejamos… Note que para linhas comentadas (ignoradas pelo interpretador, servindo apenas de comentários ou explicações), o PHP utiliza duas barras (//). Bem ao estilo C, pois ele também suporte comentários de múltiplas linhas, como o a seguir:

<?

/*

-----------------------------------------------------------------

Este é um comentário com múltiplas linhas, igual aos comentários

da linguagem C. Isto tudo será ignorado no código.

-----------------------------------------------------------------

*/

phpinfo();

?>

Depois de salvo o phpinfo.php, coloque o endereço dele no browser e você vai ver várias informações mostradas pelo PHP. Esta função é muito útil para quem quer saber como o PHP foi compilado, com suporte a que, a versão dele, variáveis de ambiente, entre outros. O próximo passo para entender melhor como funciona o PHP, é saber que ele trabalha junto com HTML. Nos exemplos anteriores você pôde notar que começamos o código PHP com a tag <? e terminamos com a tag ?>. Isso significa que podemos colocar código HTML quando não estivermos dentro desta tag PHP. Veja o exemplo abaixo:

<html>

<head>

<title>Página de Teste</title>

</head>

<body>

<?

$a = 25;

$b = 35;

$c = $a+$b;

echo "Se:<br>\n";

echo "\$a é igual à $a,<br>\n";

echo "\$b é igual à $b,<br>\n";

echo "\$c é igual à \$a+\$b,<br><br>\n";

echo "logo \$c é igual à $c! Incrível!";

?>

</body>

</html>

Copie este exemplo para uma página PHP e aponte no browser. Veja que eu misturei código HTML com PHP, e isso é muito comum neste tipo de linguagem para Web. Isso torna o PHP muito flexível para poder ir colocando código onde quiser, misturando sempre com a saíde em HTML. É sempre bom você separar código de design HTML, mas isso se faz usando Templates, que é um passo mais complicado, que não iremos falar neste tutorial.

Vimos neste exemplo acima pouca coisa, mas vale notar que usamos a função echo do PHP, que imprime a string no output, ou seja, na página HTML. Mas precisamos de algo mais “complexo” para fazer o nosso guestbook funcionar. Como estamos trabalhando com MySQL, usaremos as funções MySQL incorporadas como módulo ao PHP. Pra não ficar muito chato, vamos para um exemplo:

<?

// Mensagens de Erro

$msg[0] = "Conexão com o banco falhou!";

$msg[1] = "Não foi possível selecionar o banco de dados!";

// Fazendo a conexão com o servidor MySQL

$conexao = mysql_pconnect("localhost","root","senha") or die($msg[0]);

mysql_select_db("guestbook",$conexao) or die($msg[1]);

// Colocando o Início da tabela

?>

<table border="1"><tr>

<td><b>ID</b></td>

<td><b>Nome</b></td>

<td><b>Localização</b></td>

</tr>

<?

// Fazendo uma consulta SQL e retornando os resultados em uma tabela HTML

$query = "SELECT id,nome,localizacao FROM guestbook ORDER BY nome";

$resultado = mysql_query($query,$conexao);

while ($linha = mysql_fetch_array($resultado)) {

?>

<tr>

<td><? echo $linha['id']; ?></td>

<td><? echo $linha['nome']; ?></td>

<td><? echo $linha['localizacao']; ?></td>

</tr>

<?

}

?>

</table>

O resultado disso, de acordo com os dados que colocamos no nosso banco de dados, será o seguinte: ID Nome Localização 00009 Artemis Lua 00001 Eitch Makai 00007 Fulano Nova Zelândia 00012 Hansi Kürch Middle-Earth 00006 Joey DeMaio Battlefield 00010 Kaoru Japão 00005 King Diamond House Of God 00003 Lina Inverse Mundo de Slayers 00004 Narusegawa Naru Hinata Sou 00011 Sakura Japão 00008 Zeca Pagodinho Cachaçalandia

Viu como ficou legal? Extraímos os dados da nossa tabela guestbook no banco de dados guestbook, e colocamos numa tabela HTML, para visualização no browser. Bem fácil não? Não? Ah! Também, eu esqueci de explicar direito o que o código faz… Tá bom, vamos lá.

As primeiras linhas do código configuram uma array com as mensagens de erro que vou usar depois. Se você ainda não conhece o que é uma array, uma array é um tipo especial de variável que contém vários valores. No caso criamos a array $msg, que tem duas outras variáveis dentro dela. A 0 representa a mensagem de erro de que não foi possível conectar ao servidor MySQL, e a 1 representa a mensagem de que não foi possível selecionar o banco de dados. Mais para frente, usaremos array mais uma vez. Aliás, se você for programar em PHP, com certeza você ainda vai usar muita array em sua vida.

Depois é que a começa a esquentar. Começamos a usar as funções MySQL do PHP. A função mysql_pconnect() abre a conexão com o banco de dados, e aponta esta conexão para a variável $conexao. Esta variável será usada mais tarde para os outros comandos do MySQL. Note também que nesta conexão, foi preciso você informar o host/ip onde o servidor MySQL está rodando, o usuário para se conectar e a senha deste usuário. Se por alguma razão o PHP não conseguir estabelecer a conexão, ele irá chamar a função die(), que termina o script PHP e gera uma mensagem no browser, que no nosso caso vai ser o conteúdo da array$msg[0].

Já a função mysql_select_db(), você seleciona o banco de dados que usará. O primeiro parâmetro indica o nome do banco de dados que você quer usar, e o segundo a variável de referência que usamos para identificar a conexão com o banco de dados MySQL, que aqui no nosso tutorial nomeamos de $conexao. Caso ele não consiga selecionar o banco de dados, ele chama a função die(), mostrando o conteúdo da array$msg[1].

Agora vem a parte interessante. Lembra da flexibilidade do PHP, em que você pode sair e entrar do código PHP livremente? Então na parte que se segue você viu um exemplo disso. Saímos do “Modo PHP”, e colocamos as tags HTML para iniciar uma tabela. Colocamos as colunas ID, Nome e Localização, que são os dados que iremos pegar do banco de dados.

Depois entramos no “Modo PH” novamente, e fazemos uma consulta no banco de dados MySQL e colocamos o resultado em uma variável. Como você pode ver, a função mysql_query() é responsável pela consulta no banco de dados MySQL. Então você irá utilizar esta função para fazer todas as coisas, selecionar, inserir, excluir, etc, como aprendemos anteriormente no prompt do MySQL. Tudo que você digitou no prompt do MySQL também é válido como primeiro parâmetro da função myqsl_query(). No caso usamos um exemplo que já usamos anteriormente.

A seguir vem o truque. O laço while vai fazer o trabalho de pegar cada linha do resultado da nossa consulta MySQL e transformar em array (não falei que iríamos usar mais uma vez?). A função mysql_fetch_array()transforma esse resultado de consulta em array. Como temos 11 linhas, o laço vai se repetir 11 vezes. Os dados da linha no banco de dados será identificados na array $linha. Então identificamos o dado utilizando$linha['nome_do_campo'], ou seja, $linha['id'], $linha['nome'] e $linha['localizacao']. Colocamos isso em uma linha de tabela.

Depois de passado cada linha, totalizando 11 linhas, o laço while acaba e o código PHP continua, chamando a tag que finaliza a tabela, que é o </table>. Pronto! Extraímos os dados do banco de dados. Fácil né? Com isso deu pra entender melhor como o PHP trabalha com bancos de dados. Agora vamos ao exemplo que realmente interessa…

Mostrar conteúdo oculto

3.3. Criando o código do Livro de Visitas

Vamos agora criar o Livro de Visitas em si. Vamos usar dois arquivos, um para a visualização do livro de visitas, e outro para a inclusão de uma mensagem no livro de visitas. Vou já incluir todo o código pronto do programa, fragemntado em partes para a explicação. Os comentários também são esclarecedores.

Ok, vamos primeiro à Inclusão! Crie um arquivo chamado assinar.php e mãos à obra:

<?

// Exemplo de livro de visitas para aprendizado (Assinar)

// Hugo Cisneiros, hugo_arroba_devin_ponto_com_ponto_br

//

// Eu não me responsabilizo por quaiser danos com o uso deste código.

// Se você fizer mal uso deste código, seu computador irá explodir e

// sua namorada vai te largar. Eu te avisei!

//

// Primeiro vamos verificar se o método da página é POST. Se for POST,

// quer dizer que o usuário preencheu o formulário e e apertou o botão

// Assinar.

if (getenv("REQUEST_METHOD") == "POST") {

// Configura as variáveis do método POST para virarem variáveis

// "normais" do PHP (Requer apenas nas versões do PHP acima da 4.1)

$nome = $_POST['nome'];

$localizacao = $_POST['localizacao'];

$mensagem = $_POST['mensagem'];

// Caso todos os campos forem preenchidos, inclui a mensagem no

// banco de dados. Caso isso não aconteça, gera uma mensagem de

// erro que será impressa no browser mais a frente.

if ($nome and $localizacao and $mensagem) {

$conexao = mysql_pconnect("localhost","root","senhasecreta");

mysql_select_db("guestbook",$conexao);

$query = "INSERT INTO guestbook VALUES('00000','$nome','$localizacao','$mensagem',NOW())";

mysql_query($query,$conexao);

header("Location: ler.php");

} else {

$err = "Preencha todos os campos!";

}

}

?>

<html>

<head>

<title>Livro de Visitas: Assinar</title>

</head>

<body bgcolor="white">

<h1>Assine o Livro de Visitas</h1>

<?

// Se ocorreu algo de errado, então vai existir uma variável $err

// contendo a mensagem. Imprime-se então em fonte vermelha esta

// mensagem.

if ($err) {

?>

<ul><font color="red"><? echo $err; ?></font></ul>

<?

}

?>

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

<table border="0"

<tr>

<td>Nome: </td>

<td><input type="text" size="15" name="nome" maxlength="250"></td>

</tr>

<tr>

<td>Localização: </td>

<td><input type="text" size="15" name="localizacao" maxlength="45"></td>

</tr>

<tr>

<td colspan="2">

<textarea cols="60" rows="10" name="mensagem">Digite aqui sua mensagem!</textarea>

</td>

</tr>

</table>

<input type="submit" value="Assinar">

</form>

</body>

</html>

Deu para perceber mais ou menos como funciona o código acima? Repare como eu faço muito o uso do controle de fluxo if. No começo o if testa se o usuário postou algum formulário. Para fazer isso, ele verifica se a variável $REQUEST_METHOD é igual à “POST”. Se for “POST”, quer dizer que o usuário postou alguma coisa através de um formulário, e se for “GET”, quer dizer que a requisição da página foi feita pelo modo normal, sem postar nada.

Depois o código testa com o if novamente para ver se o usuário preencheu todos os campos. Para fazer isso ele testa se existe as variáveis correspondentes aos campos de formulário existente na nossa página. Caso aqueles campos estejam todos preenchidos, o código conecta ao servidor MySQL, seleciona o banco de dados que queremos, e depois constrói uma consulta SQL, incluindo os dados na tabela do banco de dados. A parte de inclusão do servidor MySQL não é nova para nós, que já vimos o procedimento anteriormente.

Agora algo interessante. Depois que tudo tiver feito, precisamos redirecionar o navegador do nosso visitante para outro lugar. Para fazer isso, usamos a função header() do PHP, que como o nove diz, manda um cabeçalho para o navegador do visitante. A função header só pode ser usada no começo dos scripts, sem que nada tenha sido impresso no navegador do cliente. Esta é uma restrição do próprio protocolo HTTP, e não do PHP, pois o cabeçalho sempre tem que vir antes né! :) No nosso caso, enviamos o cabeçalho “Location:”, que diz ao navegador para onde ele tem que ir. Então depois que o código inclui os dados no banco de dados MySQL, ele redireciona o navegador para a página ler.php. Pode-se colocar qualquer URL válida no cabeçalho “Location:”. Então, continuando o código, se tudo der certo, ele vai para a página de leitura, mas se for o caso dele não ter preenchido os campos, ou se ele não enviou nada por algum campo de formulário, o resto do código é executado.

O resto do código é a página HTML em si, com os formulários para preenchimento e este tipo de coisa. Os comentários no código explicam como o fluxo do if pode ser útil para por exemplo, mostrar uma mensagem de erro, se houver um erro claro.

Agora vamos para o ler.php, que vai ser a página onde irá se mostrar as assinaturas do livro de visitas! Vamos ao arquivo:

<?

// Exemplo de livro de visitas para aprendizado (Ler)

// Hugo Cisneiros, hugo_arroba_devin_ponto_com_ponto_br

//

// Eu não me responsabilizo por quaiser danos com o uso deste código.

// Se você fizer mal uso deste código, seu computador irá explodir e

// sua namorada vai te largar. Eu te avisei!

//

?>

<html>

<head>

<title>Livro de Visitas: Ler</title>

</head>

<body bgcolor="white">

<h1>Livro de Visitas</h1>

<?

// Verifica se existe a variável $begin, que vai indicar a número

// da mensagem que vai aparecer no começo. Se não existir, assume-se

// que vai ser o começo, ou seja, o valor 0.

$begin = $_GET['begin'];

if (!$begin) { $begin = 0; }

// Conecta ao servidor e seleciona o banco de dados

$conexao = mysql_pconnect("localhost","root","senhasecreta");

mysql_select_db("guestbook",$conexao);

// Coloca na variável $total o número total de mensagens no Guestbook

$query = "SELECT count(*) FROM guestbook";

$query = mysql_query($query,$conexao);

$query = mysql_fetch_array($query);

$total = $query[0];

?>

<p>

Total de mensagens postadas: <b><? echo $total; ?></b>

(<a href="assinar.php">Assine você também!</a>)<br>

Exibindo <b>20</b> mensagens por página, mostrando mensagens de

<b><? echo $begin+1; ?></b> a <b><? echo $begin+20; ?></b>.

</p>

<?

// Calcula os links para as próximas mensagens e as anteriores, de

// acordo com o número total de mensagens

if (($begin > 0) and ($begin <= 20)) {

$anteriores = '<a href="ler.php?begin=0">Anteriores</a>';

} elseif (($begin > 0) and ($begin > 20)) {

$anteriores = '<a href="ler.php?begin=' . ($begin-20) . '">Anteriores</a>';

} else {

$anteriores = 'Anteriores';

}

if (($begin < $total) and (($begin+20) >= $total)) {

$proximas = 'Próximas';

} else {

$proximas = '<a href="ler.php?begin=' . ($begin+20) . '">Próximas</a>';

}

echo $anteriores . " | " . $proximas;

// Faz uma consulta SQL trazendo as linhas das 20 ultimas mensagens

// que foram colocadas no livro de visitas.

$query = "SELECT * FROM guestbook ORDER BY data DESC LIMIT $begin,20";

$query = mysql_query($query,$conexao);

// Gera uma tabela para cada assinatura no livro de visitas (loop)

while ($linha = mysql_fetch_array($query)) {

// Organiza a mostragem da data, já que no campo do MySQL, a data

// se encontra em uma forma não tão legal.

$var = $linha['data'];

$var = explode(" ",$var);

$dia = $var[0];

$hora = $var[1];

$dia = explode("-",$dia);

$data = "$dia[2]/$dia[1]/$dia[0] às $hora";

?>

<table border="0" width="70%">

<tr><td bgcolor="navy" colspan="2"> </td></tr>

<tr>

<td><b>Data:</b></td>

<td width="100%"><? echo $data; ?></td>

</tr>

<tr>

<td><b>Nome:</b></td>

<td><? echo $linha['nome']; ?></td>

</tr>

<tr>

<td><b>Localização:</b></td>

<td><? echo $linha['localizacao']; ?></td>

</tr>

<tr>

<td><b>Mensagem:</b></td>

<td><? echo $linha['mensagem']; ?></td>

</tr>

</table>

<?

}

?>

</body>

</html>

Apesar de que no código já há vários comentários explicando a funcionabilidade das linhas, vamos dar uma olhada geral no que este arquivo PHP faz. Antes de mais nada, o código verifica se existe a variável $begin, obtida pelo método HTTP GET (requisição normal HTTP, enquanto que o método POST é por formulário). Esta variável será usada mais adiante para saber quais mensagens serão mostradas para o usuário. Se a variável não existir, dá-se o valor de 0 para que ele comece da “primeira” mensagem.

Depois é hora de pegar as mensagens do servidor de banco de dados e colocá-las em variáveis para imprimirmos na página, colocando assim as assinaturas do livro de visitas. Para fazer isso, primeiro conectamos ao servidor de banco de dados, e selecionamos o banco de dados. E antes de consultar todas as mensagens, pegamos também o número total de mensagens, através da função count() do MySQL, como você pode ver no código. Esta função irá retornar quantas linhas tem na tabela em que se fez a consulta, ou seja, a tabela guestbook. Esse número total será usado junto com o $begin para poder ser usada na mostragem das mensagens para o usuário…

…Que será agora! Com um raciocínio simples, e alguns controles de fluxo com o if, podemos criar links diferentes. O que queremos fazer é que se estiver sendo mostrada desde a primeira mensagem, o link de “mensagens anteriores” não será mostrado, e sim apenas o de “próximas mensagens”. A mesma coisa é feita com as próximas mensagens, só que dessa vez não aparece o link se estiver mostrando a última mensagem. Como a vida é cruel, não vou explicar detalhadamente como essa parte do código funciona, porque aprender a ler o código e entender é uma parte essencial. É mais difícil eu explicar do que você entender sem ler a explicação :)

O que vem agora é finalmente a mostragem de mensagens. Usaremos aqui dois atributos do MySQL que não conhecemos, que é o DESC e o LIMIT. Então construímos a consulta do MySQL e armazenamos seu resultado na variável $query. Depois vem o interessante, fazemos um laço com a função while() do PHP e a cada linha que se tem na nossa consulta (no nosso caso, cada mensagem), se criaria uma array chamada $linha com os valores de cada linha. No nosso caso, o while() faria com que se imprimisse no navegador uma tabela HTML para cada mensagem do nosso livro de visitas.

Repare também que como não queremos que se mostre todas as linhas da tabela MySQL na nossa consulta, usamos o atributo LIMIT, que como o nome diz, especifica um limite para a quantidade de linhas que será retornada. O formato deste atributo é LIMIT inicio,quantidade. No nosso caso, o inicio é a mensagem inicial, que temos através da variável $begin discutida anteriormente. E como queremos mostrar apenas 20 mensagens, colocamos o número 20, para se mostrar 20 mensagens. É como se disséssemos por exemplo: “Limite a consulta para 20 linhas, começando da linha 0.”

Outra coisa que queríamos no nosso livro de visitas, é que as últimas assinaturas seriam mostradas primeiro. Então na consulta que fizemos no MySQL, usamos o atributo DESC, que quer dizer “decrecente”. Isso já diz tudo, ele inverte a ordem das linhas e vai na ordem descrecente. E além desse, vou deixar de comentar também o uso da função explode(), que usei na formatação da data do MySQL, assim você poderá pesquisar melhor e entender como ela funciona. Só uma definição rápida e objetiva: ela cria uma array com a separação de uma string delimitada por um certo caracter que você mesmo especifica! Oops, eu disse tudo!

Com isso, todas as mensagens são mostradas. Experimente o programinha que você acabou de fazer e acompanhar neste tutorial, e comece a personalizá-lo, assim você vai aprender mais ainda. Uma ótima referência de PHP é o manual oficial, disponibilizado no site oficial, http://php.net, lá você encontra todas as funções que você poderia usar no seu programa. Boa sorte e até a próxima!

4. Anexos

Creditos: http://www.devin.com.br

Gostou Rep+

Editado por Gratos (veja o histórico de edições)

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo