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!

Templates Incríveis para seus Projetos:

  • HostCloud - Premium Joomla Template
  • Estrange Joomla Template
  • Little Khan - Repnsive Drupal Theme
  • DS Portfolio Joomla! Templates - Mobile Ready
  • BT Photography Joomla Template
  • Smiley Premium - Joomla Template
  • Solaris Drupal Theme
  • HotCake for Joomla — Retina Mobile Template
  • Hosting Square - Web Hosting Joomla Template
  • WS-None | Responsive & Clean Joomla Template
  • abana - Premium Business Joomla Template
  • London Creative + (Portfolio & Blog Joomla Theme)

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.

    Responder


  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.

    Responder

Comente o Artigo!

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

Subscrever Newsletter
Subscreva a Newsletter:



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