Depois de termos passado por vários artigos introdutórios ao PHP, eis que chegamos a um ponto importante: Como passar informação entre páginas em PHP. Este processo é feito através de Arrays Superglobais. PHP Oferece vários tipos de arrays superglobais para os desenvolvedores, cada um com uma finalidade diferente. Um array superglobal é uma variável especial que está sempre disponível nos scripts, dos quais figuram:

  • $GLOBALS: Variáveis disponívels globalmente
  • $_SERVER: Informação acerca do servidor
  • $_GET:  Dados utilizados durante o método HTTP GET
  • $_POST: Dados utilizados durante o método HTTP POST
  • $_REQUEST: Dados utilizados durante um pedido HTTP
  • $_FILES: Dados utilizados durante a introdução de um ficheiro HTML
  • $_SESSION: Dados relativos à sessão actual do utilizador
  • $_COOKIE: Dados guardados no navegador do utilizador como cookie

Não perca alguns dos nossos artigos anteriores relacionados com PHP:

 

php

VARIABLE SCOPE

Na programação, o scope refere-se ao contexto em que declara uma variável. A maioria das variáveis em PHP têm um único scope: global. A utilização deste significa que uma variável estará disponível no script que a declara, bem como em qualquer script que seja incluído após a declaração da variável.

<?php

$teste = "teste";
include_once 'extras.php'; // $teste estará disponível no extras.php
$teste2 = "teste2"; // $teste2 não estará disponível no extras.php

echo "teste é $teste e teste2 é $teste2.";

?>

$GLOBALS

O PHP fornece uma opção para acessar as variáveis no scope global: o array superglobal $GLOBALS. Todas as variáveis no global são carregadas para o array $GLOBALS, permitindo o acesso ás mesmas utilizando o nome da variável como a chave do array:

<?php

$x = "um texto qualquer";

funcion test()
{
    echo $GLOBALS['x'];
}

test();
?>

Normalmente deve-se evitar a utilização de globals quando possível. O método preferido para aceder às variáveis globais dentro de funções é utilizá-las como argumentos. Isto torna os seus scripts mais simplificados e simples de ler e compreender, o que por si só simplifica a manutenção do mesmo ao longo do tempo.

$_SERVER

A superglobal $_SERVER guarda informação acerca do servidor e do script actual, ao mesmo tempo que tem também funcionalidades que lhe permitem aceder ao endereço IP de um visitante de um website, qual o site que o levou ao seu site, a outro tipo de informações interessantes. Uma das funcionalidades mais interessantes é utilizar a superglobal $_SERVER no nome do host do site, que é guardado em HTTP_HOST. O nome é útil porque permite-lhe criar um simples template que poderá utilizar em diferentes projectos sem necessitar de alterar qualquer código. Utilizando o código abaixo, poderá dar as boas vindas a um visitante do seu website:

<?php
    echo "<h1> Bem-Vindo ao $_SERVER[HTTP_HOST]! </h1>";
?>

Correndo este pequeno script no seu computador, iria retornar “Bem-Vindo ao localhost!” pois o seu script está a ser rodado localmente. Se utilizar este script online, irá retornar “Bem-Vindo ao seusite.com!”. Ao longo do tempo e explorando as opções você irá encontrar vários usos para o HTTP_POST nos seus scripts. Aqui ficam alguns:

<?php

// Caminho para o ficheiro actual (por ex. /site/index.php)
echo $_SERVER['PHP_SELF'];

// Informação acerca do navegador do utilizador
echo $_SERVER['HTTP_USER_AGENT'];

// Endereço da página que enviou o utilizador
echo $_SERVER['HTTP_REFERER'];

// Endereço IP do utilizador
echo $_SERVER['REMOTE_ADDR'];

?>

Correndo este script irá retornar todas estas informações citadas.

$_GET

Este método é um dos dois métodos mais utilizados para passar informação entre páginas. Os dados através do $_GET são passados através do URL, e essas informações são inseridas após o endereço actual do website – http://www.escolacriatividade.com?var1=valor1&var2=valor2. A sintaxe é fácil, começa com um ponto de interrogação, de seguida vem a variável seguida de um sinal de igual e do valor da variável. Para adicionair mais que uma, utiliza-se um “&” a separar. Felizmente para facilitar este processo, PHP contém uma função de encurtamento do URL, que pode ser utilizada para preparar os valores para serem passados através de um URL.

Esta função é utilizada em parelha com o urldecode() e juntas permitem-lhe passar valores complexos através do url:

<?php

relatorio_erro(E_ALL);

$var = "Este é um valor complexo e necessita de ser codificado.";

//saída da string original
echo $var, "<br /><br />";

//Codificar a string
$ext = urlencode($var);

//Dar o Output da string codificada
echo $ext, "<br /><br />";

//Descodificar a string e o output
echo urldecode($ext);

?>

Espero que tenha compreendido todos os passos. Este é o primeiro de vários artigos sobre esta temática relacionada com PHP. Se tive dúvidas, questões ou pretender simplesmente dar o seu ponto de vista, deixe um comentário!

Abraço e até já!

 

Autor: Diogo Espinha

Blog do Autor | Artigos do Autor:

Workaholic e totalmente viciado em computadores, Internet e desporto motorizado. Adora praticar desporto, é um curioso da programação em PHP, CSS e HTML5 e não dispensa a companhia do seu Mac OSX 86 Snow Leopard!

  • Explorer - Factory Construction & Ship Building Joomla Theme
  • Justice - Attorney and Law Firm Joomla Template
  • OwnFolio - One Page Personal Portfolio / vCard / Resume / Showcase Joomla Template
  • Big Business - Responsive Template
  • Merab - Creative Multipurpose Drupal 8 Theme
  • Fitness Academy Joomla Template
  • Fruition - Business Joomla Template
  • Educate | Education & Courses, Kindergartens Joomla Template
  • Constructive - Contractors Multipurpose Joomla Landing Page Theme
  • Vina Bubox - VirtueMart Joomla Template for Online Stores
  • BizOne - One Page Parallax Drupal Theme
  • LawHouse - Responsive Lawyers Attorneys Joomla Template

Gostou deste artigo? Então torne-se fã do Blog no Facebook!



Comentários dos Alunos


  1. Jose Correia
    17 de janeiro de 2012

    Ótimo artigo, outro bom seria sobre o mysql que acho muito interessante.
    Parabens pelo artigo.



    • Diogo Espinha
      18 de janeiro de 2012

      Olá José, obrigado pelo seu comentário!

      Abraço



  2. Jose
    22 de janeiro de 2012

    Uma perguntinha revi o seu artigo mas tou com duvida no relatorio_erro(E_ALL);

    não percebi para que serve esse código nem o E_ALL
    ? Cumprimentos.



  3. Noel Cruz
    2 de maio de 2013

    Bom dia: muito esclarecedor obrigado
    eu tenho um problema és que estou a fazer um site para um projecto e estou a passar um valor por href(um id de uma tabela) que seria recebida e utilizada noutra pagina (numa query na base de dados) na qual és feita paginação a primeira vez é feita na perfeição más quando passamos a próxima página o id és 0, perde-se e agradecia qualquer ajuda.
    Obrigado


RSS
Twitter
Facebook
Comentários
ASSINANTES
SEGUIDORES
FÃS
COMENTÁRIOS
7794

Subscrever Newsletter
Subscreva a Newsletter:



Aplicativos Android, iPhone e Muito Mais!




Assine a Escola Criatividade Assine a Newsletter da Escola Criatividade Escola Criatividade no Twitter Escola Criatividade no Facebook Escola Criatividade no Youtube Escola Criatividade no Google Buzz