Mostrando postagens com marcador php. Mostrar todas as postagens
Mostrando postagens com marcador php. Mostrar todas as postagens

quarta-feira, janeiro 15, 2014

Tutorial upload de arquivos com jQuery e PHP

E aí pessoal, beleza? Dessa vez vamos aprender como implementar a funcionalidade de upload de arquivos utilizando PHP e jQuery. O jQuery (http://jquery.com/) é uma biblioteca Javascript que busca simplificar a implementação de tarefas como manipulação de HTML, tratamento de eventos, animação, Ajax, etc. No nosso artigo usaremos o jQuery basicamente para recuperar o status corrente do upload através de chamadas assíncronas ao servidor.

Visão Geral deste Tutorial

Como já adiantamos, o tutorial consiste de uma página com um campo para upload de arquivos. O arquivo escolhido será enviado via Ajax ao servidor, que, por sua vez, retornará para o cliente o percentual do arquivo que já foi copiado. Este valor será atualizado automaticamente e será exibido em uma div para o usuário. 

Código do Lado do Cliente

No lado do cliente temos uma página simples HTML. Nela definimos um form, que contém um campo do tipo file para que o usuário possa escolher o arquivo para upload e também temos um botão de submit. Até aí, nada demais. A mágica acontece graças ao jQuery. Para este tutorial, utilizamos o plugin jQuery Form, que possibilita o uso de chamadas Ajax em formulários HTML de forma bastante simples. 

Primeiramente, é necessário incluir as bibliotecas javascript do jQuery e do jQuery Form Plugin. Utilizei para este exemplo as bibliotecas disponíveis no googlepais e github, mas você pode (e geralmente deve) baixá-las para o seu servidor e fazer referência a elas.

Após isso, nós definimos um objeto do tipo Options, especificado pelo jQuery Forms Plugin, que conterá atributos referentes à chamada Ajax. Para o nosso exemplo, nós especificamos funções de callback:

beforeSend: Função chamada imediatamente antes do envio do formulário. Geralmente usadas para esquemas de validação pré-submissão. No nosso caso, apenas exibimos uma mensagem via alert.

uploadProgress: Função callback a ser invocada com as informações do progresso do upload. Aqui nós atualizamos uma div com o percentual do upload concluído.

success: Define a função de callback a ser chamada após o envio do formulário. Aqui, apenas um alert será exibido.

error: Função chamada em caso de erro.

Por fim, preparamos o nosso form para ser submetido via Ajax com a chamada $("#uploadForm").ajaxForm(options),  , passando como parâmetro as opções acima.

Veja o código completo:
 <html>  
  <head>  
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>  
  <script src="http://malsup.github.com/jquery.form.js"></script>  
  <title>Upload de arquivos com progresso usando com Ajax, jQuery e PHP</title>  
  <script>  
      $(document).ready(function() {  
           var options = {  
                beforeSend: function() {  
                     alert("Antes de mandar!");  
                },  
                uploadProgress: function(event, position, total, percentComplete) {                      
                     $("#status").html("Percentual completado: " + percentComplete + "%");  
                },  
                success: function() {  
                     alert("Upload concluido!");  
                },  
                error: function() {  
                     alert("Falha ao fazer upload de arquivo.");  
                }  
           };  
           $("#uploadForm").ajaxForm(options);  
      });  
  </script>  
  </head>  
  <body>  
 <h1>Validação de formulário com Ajax e PHP</h1>  
 <form id="uploadForm" action="upload.php" method="post" enctype="multipart/form-data">  
  Arquivo para upload: <input name="myFile" id="user" type="file" />  
  <input type="submit" value="Enviar!" />  
 </form>  
 <div id="status" />  
 </body>  
 </html>  


Código do Lado do Servidor

O código server-side é uma função simples de upload de arquivos em PHP. Basicamente, o servidor recebe o arquivo no objeto $_FILES e o copia para a pasta /upload/ na raiz do site através da função move_uploaded_file.

Veja o código do arquivo upload.php:
 <?php  
 define ('SITE_ROOT', realpath(dirname(__FILE__)));  
 //upload.php  
 $output_dir = "/upload/";  
 if(isset($_FILES["myFile"]))  
 {  
   //Filter the file types , if you want.  
   if ($_FILES["myFile"]["error"] > 0)  
   {  
    echo "Error: " . $_FILES["file"]["error"] . "<br>";  
   }  
   else  
   {  
     //move the uploaded file to uploads folder;  
     move_uploaded_file($_FILES["myFile"]["tmp_name"],SITE_ROOT. $output_dir. $_FILES["myFile"]["name"]);  
    echo "Uploaded File :".$_FILES["myFile"]["name"];  
   }  
 }  
 ?>  


Então, pessoal, espero que esse tutorial tenha ajudado vocês a conhecerem um pouco mais do poder do jQuery e da sua integração com uma linguagem server-side - no caso, PHP. Dúvidas, sugestões ou críticas? Deixe um comentário! ;)

sexta-feira, janeiro 10, 2014

Validação de formulários com Ajax e PHP

Nesse tutorial veremos como criar um esquema de validação de formulários usando Ajax e PHP. A idéia é realizar as validações dinamicamente, à medida em que o usuário preenche os campos do formulário. Esse modo de validação é especialmente útil para auxiliar o preenchimento de longos formulários, pois com ele o usuário não precisa esperar pelo submit completo do form para saber o resultado da validação server-side. Fazendo o uso de chamadas assíncronas ao servidor (para isso usaremos Ajax), essas verificações serão feitas campo a campo, à medida em que o usuário preenche o formulário.

Para este tutorial, teremos um formulário simples de criação de usuário, em que o visitante do site terá que escolher um nome de usuário para criar o seu perfil. O nome de usuário deve ser único, e por isso nossa validação apenas apontará um erro caso seja escolhido um nome de usuário já cadastrado no sistema. Para fins deste tutorial, manteremos em memória uma lista de usuários pré-definida, mas no seu código, é provável que você implemente uma função de consulta dos usuários ao banco de dados ou a um arquivo.

Bem, vamos ao código!

Lado do Cliente

Primeiramente, vamos criar a nossa página index.html. Ela contém apenas um campo de texto onde será digitado o nome de usuário para cadastro e uma div que informará se o usuário cadastrado já existe ou não no sistema. À medida em que o usuário digita no campo de texto, é chamada a função Javascript checklogin, que recebe o valor do campo como parâmetro.

 <html>  
  <head>  
  <title>Validação de formulário com Ajax e PHP</title>  
  <script>  
      function checkLogin(user)  
      {  
      var xmlhttp;  
      if (window.XMLHttpRequest)  
       {//codigo para IE7+, Firefox, Chrome, Opera, Safari  
       xmlhttp=new XMLHttpRequest();  
       }  
      else  
       {//codigo para IE6, IE5  
       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");  
       }  
      xmlhttp.onreadystatechange=function()  
       {  
       if (xmlhttp.readyState==4 && xmlhttp.status==200)  
           {  
                document.getElementById("result").innerHTML = xmlhttp.responseText == 0 ? "Login já existente!" : "Login ainda não cadastrado!";  
           }  
       }       
      xmlhttp.open("GET","checklogin.php?username=" + user,true);  
      xmlhttp.send();       
      }  
 </script>  
  </head>  
  <body>  
 <h1>Validação de formulário com Ajax e PHP</h1>  
 <form action="#">  
  Usuário: <input name="user" id="user" type="text" onkeyup="checkLogin(this.value)"/>  
 </form>  
 <div id="result" />  
 </body>  
 </html>  

A função checkLogin, definida acima, instancia o objeto xmlhttp de acordo com o tipo de navegador utilizado pelo usuário. Ação tomada quando a requisição assíncrona é respondida é basicamente mudar o texto da div com id "result" de acordo com o resultado da consulta.

Por fim, a função checkLogin abre uma conexão via GET com a página checklogin.php (será definida a seguir) passando como parâmetro o valor corrente do campo de texto. Vale lembrar que a função checkLogin será chamada - e consequentemente a página checklogin.php será consultada - a cada tecla digitada pelo usuário.

Lado do Servidor

Bem, para este exemplo o código server-side é bastante simples. Veja a seguir:

 <?php
 //este array geralmente será substituído por uma busca ao banco de dados ou arquivo texto
 $userList = array('alice', 'bob', 'carl', 'dexter', 'earl', 'frank', 'george', 'john');
 $user = $_GET['username'];
 if (in_array($user, $userList)) {
      echo 0; //usuario ja existe
 } else {
      echo 1; //usuario nao existe. logon ok.
 }
 ?>
A variável $userList contém a lista de usuários cadastrados no nosso sistema fictício. Na vida real, você provavelmente substituirá este trecho por uma consulta a uma base de dados, por exemplo. A partir daí, é muito simples. Caso o nome de usuário enviado como parâmetro via método GET já esteja cadastrado, a requisição retorna o valor 0. Caso contrário, retorna 1.

Voltando um pouco para a função checkLogin, no código da parte do cliente, você verá que o valor retornado pelo código servidor - neste caso, 0 ou 1- é atribuído a xmlhttp.responseText. É nesse ponto que a div será atualizada, mostrando se o usuário já existe ou não na nossa base de usuários.

Concluindo

Bem  pessoal, neste tutorial aprendemos a validar um formulário dinamicamente usando Javascript, PHP e chamadas assíncronas Ajax. Espero que este exemplo simples sirva como base para você fazer coisas mais legais. Sinta-se à vontade para postar dúvidas, críticas e sugestões nos comentários.

Até a próxima!

Ainda precisando de uma mãozinha? Que tal esses:







domingo, junho 03, 2007

Sistema de Login com PHP orientado a objetos

Olá a todos. Peço desculpas pelo tempo sem postagens. Ultimamente tem sido muito corrido para mim. Por isso gostaria de aproveitar a oportunidade para abrir esse espaço a todos os que gostariam de contribuir com o blog com tutoriais e artigos.

Desta vez vamos desenvolver um sistema de autenticação com PHP usando orientação a objetos. Vamos precisar de três arquivos: um arquivo para conter a classe Usuário, outro para realizar a autenticação e fazer o redirecionamento e uma página HTML que vai conter o formulário. Pois bem, mãos à obra.

A classe de usuário. Essa classe vai ficar no arquivo usuario.php


< ?php
class Usuario {
var $nome, $senha;

function getNome() {
return this->nome;
}

function Usuario($nome,$senha) {
$this->nome = $nome;
//A senha será submetida a um hash, que
é uma criptografia sem volta.
$this->senha = md5($senha);
}

function autentica() {
//Aqui estara o metodo de acesso ao banco.
$nome = $this->nome;
$senha = $this->senha;
$query = "SELECT nome, senha FROM usuarios WHERE nome=$nome
AND senha=$senha";
$resultados = mysql_query($query) or die(mysql_error();
if (mysql_num_rows($resultados)>0) {
$this->geraSessao($this);
return true;
}
else{
return false;
}
}

function geraSessao($usuario) {
session_start();
$_SESSION['usuario'] = $usuario;
}
}
?>



A página HTML:


< HTML>
< HEAD>
< TITLE>Login< /TITLE>
< /HEAD>

< BODY>
< form action="autentica.php" method="post">
< input type="text" name="nome" />
< input type="password" name="senha" />
< /form>
< /BODY>
< /HTML>


A página que vai fazer a autenticação dos dados vindos da página HTML:


< ?php
include("usuario.php");
$nome = $_POST["nome"];
$senha = $_POST["senha"];
var usuario = new Usuario($nome,$senha);
if (usuario->autentica()) {
header("location:principal.php");
}
else {
header("location:login.php");
}
?>


Bom pessoal, esta é uma idéia de um sistema de autenticação. Hábitos de segurança como gravar os dados de senha no banco como um hash são importantes e devem ser usados. Postem dúvidas, sugestões e melhorias para o código. Não testei o sistema. É apenas um tutorial didático, mas de qualquer forma, não custa estudar e testar. No caso de acessar o banco, não esqueçam de escrever um método de conexão.

É isso aí pessoal. Até a próxima.

sábado, maio 26, 2007

Carrinho de Compras com PHP orientado a objetos

Olá a todos! Desta vez vamos criar um carrinho de compras em PHP orientado a objetos. Escolhi OO pois deixa o código mais claro e mais fácil de dar manutenção. Além disso, para aqueles que ainda não conhecem a orientação a objetos, sugiro fortemente que busquem aprender. Podem começar então por esse tutorial.

Esta não é um versão completamente funcional, mas já é uma base para o carrinho de compras de verdade.



< ?php

class Produto {

var $codigo;
var $descricao;
var $preco;
var $quantidade;

function Produto($codigo,$descricao,$preco,$quantidade) {
$this->codigo = $codigo;
$this->descricao = $descricao;
$this->preco = $preco;
$this->quantidade = $estoque;
}

function getCodigo() {
return this->codigo;
}

function getQuantidade() {
return this->getQuantidade;
}

function setQuantidade($quantidade) {
this->quantidade = $quantidade;
}

function getValor() {
return this->preco * this->quantidade;
}


}


class CarrinhoDeCompras() {

var $carrinho;

//Coloca o novo Carrinho de Compras na sessão
function CarrinhoDeCompras() {
session_start();
$_SESSION["carrinho"] = new Array();
}

//Atualiza os dados da sessão
function atualizaDados() {
$_SESSION["carrinho"] = $this->carrinho;
}

//Pega os dados da sessão
function getCarrinho() {
$this->carrinho = $_SESSION["carrinho"];
}

//Adiciona um item no carrinho de compras
function adicionaItem($produto) {
//Pega os dados atualizados da sessão
$this->getCarrinho();

$codigo = $produto->getCodigo();
//Seo produto ainda não está no carrinho adicione
if ($this->arrinho[codigo] != null) {
$this->carrinho[codigo] = $produto;
}
//Caso contrário, apenas incremente a quantidade do produto já existente
else {
$quantidade = $produto->getQuantidade() +
$carrinho[$codigo]->getQuantidade();
$this->carrinho[$codigo]->setQuantidade($quantidade);
}

//Atualiza os dados da sessão
$this->atualizaDados();
}


//Remove um item do carrinho de compras
function removeItem($produto) {
$this->getCarrinho();

$codigo = $produto->getCodigo();
unset($this->carrinho[codigo]);

$this->atualizaDados();
}

//Pega o valor total das compras do usuário
function getTotal() {
$this->getCarrinho();
$total = 0;

foreach($this->carrinho as $produto) {
$total += $produto->getValor();
}

return $total;
}

}

? >


É isso pessoal. Para aqueles que gostaram, sugiro a adição de novas funcionalidades como controle do estoque dos produtos que saem, novas classes que gerenciem formas de pagamento, etc. Quando tiverem com a loja virtual funcionando me avisem para eu visitar =D.

Até a próxima!

quinta-feira, maio 17, 2007

Tutorial PHP: Mural de Recados

Primeiramente vamos estruturar a parte de acesso ao banco de dados e criação de tabelas.

* Para conectar a aplicação ao banco, vamos usar um arquivo chamado conecta.php, que conterá informaçãoes como usuário, senha e servidor mysql.

conecta.php

< ?php
$server ="localhost";
$user="root";
$password="";
$dbname="mural_de_recados";
mysql_connect($server,$user,$password) or die(mysql_error());
mysql_select_db($dbname) or die(mysql_error());
? >


* Para criar o banco, vamos executar esse script uma única vez
cria_banco.php

< ?php
$server ="localhost";
$user="root";
$password="";
$dbname="mural_de_recados";
mysql_connect($server,$user,$password) or die(mysql_error());
$query= "CREATE DATABASE mural_de_recados";
mysql_query($query) or die (mysql_error());
?>


* Para criar a tabela, vamos rodar apenas uma vez o arquivo cria_tabelas.php, que criará a tabela de recados.

cria_tabelas.php

include("conecta.php");
$query = "CREATE TABLE recados
(id int NOT NULL AUTO_INCREMENT,
titulo varchar(256),
comentario text,
email varchar(256),
PRIMARY KEY(id))";
mysql_query($query) or die(mysql_error());
mysql_close();
? >


Com a parte do banco já criada, vamos passar pará a página que cadastrará novos posts e listará todos os recados.

index.php

< html>
< head>
< title>Mural de Recados em PHP
< /head>
< body>
< h1>Mural de Recados< /h1>
< form method="POST" action="cadastra.php">
Titulo: < input type="text" name="titulo" />


E-mail: < input type="text" name="email" />


Recado: < textarea name="recado">Deixe seu recado!< /textarea>

< input type="submit" />


< h2>Recados Postados: < /h2>
< ?php
include("conecta.php");
$query = "SELECT * FROM recados ORDER BY id DESC";
$resultado = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_array($resultado)) {
echo "< b>".$row["titulo"]."< /b>";
echo "< br/>";
echo $row["comentario"];
echo "< br/>";
echo "E-mail: < b>".$row["email"]."< /b>";
echo "< br/>< br/>";
}
mysql_close();
? >
< /form>
< /body>
< /html>


E finalmente, página responsável por salvar os novos recados:

cadastra.php

< ?php
include("conecta.php");
$titulo = $_POST['titulo'];
$email = $_POST['email'];
$recado = $_POST['recado'];


$query = "INSERT INTO recados (titulo,email,comentario) VALUES ('$titulo','$email','$recado')";
mysql_query($query) or die (mysql_error());

mysql_close();

header("location:index.php")
? >



Bem pessoal, esse foi o primeiro tutorial completo de PHP do Mãozinha. Espero que tenham gostado e aprendido com ele. Ele foi testado e está funcionando certinho. Só mais uma coisa: como o blogger não aceita que postemos tags html e php, eu coloquei um espaço entre os símbolos < e > e as tags. Por exemplo em < html >. Logicamente você devem tirar esses espaços para o programa funcionar. A ordem de execução dos arquivos é:

1. cria_banco.php
2. cria_tabelas.php
3. index.php


Lembrando que os dois primeiros são apenas executados na primeira vez.

Falou pessoal e até a próxima!

terça-feira, maio 15, 2007

Tutorial de PHP - Parte 3: Sessões e Autenticação

Olá a todos futuros programadores de PHP!

Nesta terceira parte do nosso tutorial vamos tratar de dois dos assuntos mais importantes no que se trata de programação web: sessões e autenticação.

Em todo o lugar vemos telas de login, cadastros e senhas (Às vezes são tantos que não é raro nós trocarmos ou simplesmente esquecermos). Tudo isso para proporcionar segurança, restringir o acesso a determinado conteúdo ou então manter a privacidade e individualidade de acesso a um serviço.

Veremos que com PHP é bem fácil implementar essas políticas de acesso.
  • Sessões:
Sessões são usadas para guardar dados enquanto a janela do browser estiver aberta. São geralmente usadas para manter dados como nome do usuário, tipo do usuário (se é o administrador ou se é um visitante não cadastrado, por exemplo), entre outros dados importantes. Dica: NUNCA COLOQUE A SENHA NA SESSÃO. VOCÊ SÓ PRECISA DELA PARA AUTENTICAÇÃO!
Para iniciar uma sessão no PHP usamos a função:

 session_start(); 


Se quisermos destruir a sessão (no caso de o usuário ter feito logoff), usamos a função:

 session_destroy(); 


Agora precisamos apenas setar os valores que ficarão na sessão. No PHP os valores são armazenados em um vetor associativo chamado $_SESSION. As associações são feitas com pares chave e valor. Por exemplo, vamos setar o nome do usuário e a permissão dele, e colocar esses dados na seção. Vamos buscar esses dados a partir de um formulário fictício, via POST.

< ?php
session_start(); //iniciamos a sessão

$_SESSION['usuario'] = $_POST['usuario']; //colocamos na sessão o valor do campo usuário vindo do formulário

$_SESSION['permissao'] = $_POST['admin']; //da mesma forma setamos suas permissões

header("location:pagina_principal.php"); //Redirecionamos para a pagina principal

? >


Com isso feito, podemos acessar as variáveis da sessão de qualquer lugar da nossa aplicação através do vetor $_SESSION.

  • Autenticação e Segurança:
Os princípios vistos até agora já lhe dão uma boa base de como funciona o processo de autenticação na web. Agora vou dar umas dicas para otimizar a segurança do seu site, tornando-o mais confiável para os seus visitantes.
    • Nunca passe dados confidenciais via GET. Isso pode parecer meio óbvio para os mais experientes, mas é uma falha comum que pode ser desastrosa. Sempre use o método POST em sistemas de login, por exemplo.
    • Quando estiver trabalhando com banco de dados, nunca armazene as senhas de seus usuários como elas são. Por exemplo: Digamos que a senha de um usuário seja 123456. NÃO armazene no banco 123456. O PHP dispõe de funções de hash (criptografia sem volta) que promove maior segurança para armazenar dados críticos. Aplicando uma dessas funções em 123456 obteríamos "AssjUBnsuabBHb1513AdsDbkhjNKJokp", por exemplo. Esse valor criptografado seria armazenado no banco, e na hora do login a função de hash seria aplicada à senha digitada e aí então seria feita a comparação entre os dois valores criptografados. Ou seja, nenhum administrador de banco de dados mal intencionado poderá olhar as senhas dos seus usuários.

É isso pessoal, espero que estejam gostando dos tutoriais desta série. Qualquer dúvida é só comentar.




quinta-feira, maio 10, 2007

Tutorial de PHP - Parte 2: Variáves e Formulários

Bem pessoal, chegamos à segunda parte do nosso tutorial sobre PHP, onde aprenderemos sobre varáveis, passagem de valores para outras páginas e vamos começar a brincar com formulários também.

Vamos lá, então.

As variáveis em PHP são antecedidas pelo símbolo $. Por exemplo:


< ?php
$mensagem = "Mensagem é uma string";
$inteiro = 1526;
$float = 3.1416;
?>


Apesar de todas as variáveis terem tipos, nós não precisamos declará-los. O PHP tem tipagem dinâmica, o que permite que uma mesma variável assuma valores de vários tipos durante a execução do programa. Veja:


< ?php
$mensagem = "Mensagem é uma string";
if ($mensagem=="OK") {
$mensagem = 10;
}
?>


Mas as variáveis não serviriam para nada se elas não pudessem ser transmitidas de uma página para outra. Para isso temos dois métodos: GET e POST. No GET, os dados são passados pela própria URL como no exemplo:

www.meusite.com/pagina.php?nome=Jose&idade=25&cidade=Salvador

Nesse caso temos três variáveis sendo passadas para a página "pagina.php". Primeiro vem a variável nome cujo valor é Jose, depois temos a variável idade cujo valor é 25 e por último temos cidade, cujo valor é Salvador.

Pelo método POST, os dados são passados por debaixo do pano. É mais seguro e não tem limite de tamanho, porém só pode ser usado com um formulário, que é o próximo tópico do nosso tutorial.

Veja mais sobre POST e GET nesse tutorial específico.

O método de se obter informações do usuário numa aplicação web é através de formulários. Só para lembrar como se declara um formulário no HTML, vamos declarar um formulário contendo dois campos de texto. Um para o nome e outro para a idade do usuário, além é claro, de um botão de submit para enviar as informações.
Código do formulario da pagina formulario.html:

< form method="POST" action="pagina.php>
< input type="text" name="nome" />
< input type="text" name="idade" />
< input type="submit" value="Enviar Dados" />
< /form>


O atributo method do form define qual método usaremos para transmitir os dados. Nesse caso usaremos o POST, e fica como exercício fazer usando GET (você vai perceber que as variáveis vão na URL). Já o atributo action diz qual página vai receber as variáveis passadas. Nesse caso é a página pagina.php .

Temos, então que preparar a pagina.php para receber as nossas variaveis:
Código da pagina.php:

< ?php
$nome = $_POST["nome"];
$idade = $_POST["idade"];
if ($idade<18) {
echo "Ola ";
echo $nome;
echo " você ainda é menor de idade";
}
else {
echo "Ola ";
echo $nome;
echo " você já é maior de idade";
}
?>



Pronto! Com isso você já pode começar a se aprofundar nos formulários usando PHP. Não deixe de pesquisar mais sobre o assunto. Essa é apenas a ponta do iceberg. Você pode fazer muitas coisas legais usando esses conceitos que vimos hoje.

Até o próximo tutorial da série, no qual trataremos de sessões no PHP e implementaremos um sisteminha de login.

Até lá e qualquer dúvida é só postar.

segunda-feira, maio 07, 2007

Tutorial de PHP - Parte 1: Primeiros passos

O PHP é a linguagem de programação web mais usada em todo mundo. Além ser open source, é muito leve e fácil de aprender. Nesta série de tutoriais veremos alguns tópicos que lhe darão o primeiro empurrãozinho no aprendizado desta linguagem.
Primeiramente você precisa ter o PHP instalado na sua máquina, além do servidor Apache. Também usaremos nos tutoriais o banco de dados MySQL. Você pode baixar tudo isso separadamente, mas é mais fácil instalar o EasyPHP, que já instala e configura tudinho para você.

Após instalar o EasyPHP, vamos conhecer um pouco a estrutura de pastas das nossas aplicações web em PHP. Dentro da pasta do easyPHP você vai encontrar uma pasta chamada www. Essa pasta vai guardar todas as nossas páginas. Quando você chamar a página pelo navegador o servidor Apache vai nessa pasta procurar pelos arquivos. Por isso nunca se esqueça de salvar todas as suas produções dentro da www.

OK. Com isso acho já podemos colocar a mão na massa. Como todo tutorial de linguagem de programação que se preze, vamos iniciar com o bom e velho hello world.

Para começar, crie um arquivo pelo bloco de notas (ou o editor de sua preferência - em breve vou indicar uns bons editores para você programar). Salve como hello.php. Se usar o bloco de notas cuidado para não salvar como .txt.php.

Com o que vimos até agora você já deve saber onde salvar essa página, não é? Isso mesmo, você deve salvar dentro da pasta www, que é lá que Apache busca pelas páginas. Pronto, página está criada e salva. Agora precisamos finalmente dar o hello para o mundo do PHP.

Abra a página hello.php e coloque o seguinte código.


< ?php echo "Ola mundo do PHP!!!"; ?>

  • O < ?php e ?> são usados para delimitar o código PHP. Todo o seu PHP tem que estar dentro dessas tags.
  • A função echo serve para escreve algo na tela certo? Errado. Um detalhe importante sobre a função echo é que ela joga o parâmetro no html da página e não na tela. Isso é bem interessante porque nos permite montar tags html dinâmicamente. Se você não ainda não entende HTML, recomendo dar uma lida antes de vir para esse tutorial.
Para visualizar abra o navegador, e digite http://localhost/hello.php e voi lá, você acaba de escrever o sua primeira página em PHP.

Ficamos por aqui nessa primeira parte do nosso tutorial. No próximo da série vamos tratar de variáveis, passagem de valores entre páginas e formulários. Em caso de dúvidas, só é postar.

Até mais!




terça-feira, abril 10, 2007

Enviando dados via GET e POST no PHP

Quando desenvolvemos um site dinâmico, geralmente temos a necessidade de passar alguns valores de uma página para a outra, para podermos, então, realizar operações como consultas e inserções no banco, autenticação de usuários, etc. No PHP os dois métodos mais utilizado para isso são o GET e POST. Vamos falar um pouco mais sobre eles agora.
GET
É o método mais simples e mais limitado para se usar. Neste caso os valores e seus respectivos identificadores são transmitidos pela URL, não sendo preciso a abertura de uma nova conexão (explicaremos melhor isso quando falarmos do método POST). Quem nunca viu uma URL desse tipo:
Esse exemplo demonstra na prática o uso da passagem de parâmetros via GET. A presença da interrogação indica o fim do endereço e o início da declaração dos nossos valores que serão passados. Neste caso, a página versecao.php receberá uma variável chamada id com o valor 32, e outra variável descricao com valor “Minha_Secao”.
Pronto! Você provavelmente deverá estar pensando: “Ótimo . Vou passar todos os meus valores via GET, pela URL. ”
Porém, como nem tudo é perfeito, o método GET não faz tudo para nós.
Como os valores são passados pela URL, há um limite para o número de bytes que serão enviados. Você poderá enviar no máximo 1024 caracteres, o que limita bastante suas possibilidades com esse método.
Outra questão, agora referente à segurança, é sobre os tipos de dados que você poderá enviar via URL. Como nesse método os dados são visíveis ao usuário, não é bom (na verdade é péssimo) que se passe informação confidenciais via GET. Imagine você, navegando em um site, e de repente você vê a sua senha passando pela URL. E o pior, sendo salva no histórico do computador.
O ideal é que se use o método get somente para passar parâmetros para pesquisas e outras informações não críticas.
Para solucionar esses e outros problemas temos disponível o método POST.
POST
O método POST representa uma alternativa ao método GET para as questões de capacidade e segurança. Nesse método uma conexão paralela é aberta e os dados são passados por ela. Não há restrição referente ao tamanho e os dados não são visíveis ao usuário. Há única condição é que se use um formulário para os dados. Na tag form , temos um atributo action. Nesse atributo é que setaremos a página que receberá nossas informações. Quando o botão submit for acionado todos os dados desse formulário serão passados para a página definida no action. É uma maneira segura e com mais capacidade em termos de espaço.
Legal. Aprendemos como enviar as informações através dos dois métodos para as páginas, mas ainda não sabemos como acessá-los nessas página.
O PHP armazena as variáveis vindas por GET e por POST em vetores associativos (vetores cujos índices são strings).
Vejamos como faríamos isso com o exemplo do método GET acima.
Foram passadas duas variáveis : id e descricao.
Para pegar o id fazemos, por exemplo:
$meu id = $_GET[“id”] e $minhadescricao = $_GET[“descricao”]
No caso do método POST, temos um vetor chamado $_POST que armazenará os dados vindos do formulário. Vale lembrar que, nesse caso, os índices do vetor serão as nomes dados aos inputs no seu formulário.
Para acessar os valores vindos de um formulário com nome e idade, por exemplo, fazemos>
$nome = $_POST[“nome”] e $idade = $_POST[“idade”].

Agora você já está pronto para começar a praticar a transmissão de variáveis no PHP. Qualquer dúvida é só comentar.

Ainda precisando de uma mãozinha? Tente esses outros posts:

Validação dinâmica de formulários usando Ajax e PHP

Tutorial upload de arquivos com jQuery e PHP