Ubuntu Para Iniciantes

VARIÁVEL SUPER GLOBAL EM PHP

Variáveis super globais ou superglobais, são variáveis que já estão pré definidas no ambiente de desenvolvimento do PHP, são muito úteis para manipular dados.

O que você verá nesta postagem sobre as variáveis globais do PHP:
  • Quais são as variáveis de ambiente
  • Como podem ser utilizadas
 variavel super gloabal em php session cookie file e server

QUAIS SÃO AS VARIÁVEIS DE AMBIENTE OU SUPER GLOBAIS DO PHP

Uma variável em PHP sempre irá iniciar com o simbolo do CIFRÃO "$". Resumidamente uma variável é um espaço reservado da memória e que se pode alocar algum tipo de valor, seja ele numérico ou uma string.

O PHP não tipifica as variáveis, o que permite que uma variável pode assumir um valor numérico em um momento e posteriormente um valor de uma string.

Porém as variáveis super globais se diferem de uma variável criada pelo desenvolvedor.

Por exemplo, uma variável definida pelo usuário só será manipulada dentro de um mesmo escopo, já uma variável super global, além de permitir capturar e manipular dados é possível transmitir ou navegar entre escopos diferentes.

Abaixo um exemplo de uma variável normal:

<?php
/* A variável dados foi criada
    e pode assumir outros valores
*/

$dados = "Marcelo";
//Esta variável pode assumir outro valor dentro do próprio escopo
$dados = 17;
?>
 
As variáveis super globais do PHP são utilizadas para que se possa manipular dados, como por exemplo dados que são enviados para um formulário.

Abaixo estão as variáveis super globais do PHP que são mais utilizadas em desenvolvimento:

 $_GET
 $_POST
 $_SERVER
 $_FILES
 $_COOKIE
 $_SESSION


Existem outras variáveis de ambiente utilizadas no PHP que não será tratados neste post.

Algo que é de extrema importância saber é que estas variáveis tem por características o padrão de um Array. Caso você sinta necessidade clique e veja como FUNCIONAM OS ARRAYS EM PHP.

Abaixo será mostrado  uma breve explicação de cada variável, que será importante para sua compreensão e uso.

UTILIZANDO VARIÁVEL $_GET E $_POST 

Estas variáveis são próprias para manipulação de dados enviados de um formulário HTML e operam basicamente da mesma forma.

No entanto há um diferença fundamental entre estas variáveis. Os dados enviados pelo método GET de formulário são transmitidos pela própria barra de endereço do navegador. Dependendo do tipo de informação que você está enviando, este método não é muito recomendado.

Veja o exemplo abaixo de uma codificação html de um formulário contendo duas caixas de textos e um botão:

<form action="pagina-processamento.php" name="usuario" method="get"  >
Login :<input type="text" name="login" value="" />
Senha:<input type="text" name="senha" value="" />
<input type="submit" value="ENVIAR" />
</form>

No formulário, o atributo method irá definir como os dados serão enviados, como você pode perceber está recebendo o valor GET.

Claro que para um formulário que tem por finalidade enviar um login e uma senha, o método GET não é eficiente por apresentar as informações na barra de endereço do navegador.

Então vamos supor que a partir de agora o método de envio foi alterado para POST, por ser mais seguro. Então, como capturar estas dados? 

Na página para onde se destina o formulário, deverá capturar os dados que foram enviados, é ai que entra a variável super globa $_POST.

Então para que você possa capturar os dados que estão sendo enviados basta você fazer referência da posição do elemento que está no formulário.

O formulário está enviando todos os dados, incluindo ele mesmo e o botão submit, veja a lista abaixo:

Formulário: usuario
Primeira caixa de texto Login: login 
Segunda caixa de texto Senha: senha
Botão Submit: ENVIAR

O que será capturado então pela variável super global $_POST será os nomes que você deu para cada elemento HTML. Para você ver todos os valores descritos no $_POST, basta você usar o print_r.

<?php
// neste exemplo será impresso todos os valores dos elementos html
 print_r($_POST);
?>

O resultado da impressão no navegador será o conteúdo de cada índice que contem em um array da variável super global, como mostrado abaixo:

Array
(
    [login] => Weihmayr
    [senha] => 123mudar
)

Porém para você ter seus dados impressos ou manipulados individualmente, você deverá referenciar seu elemento pelo nome HTML. Exemplo:

<?php
print $_POST['login'] . "<br />";
print $_POST['senha'] ;
?> 

Com o código acima será possível capturar os dados que foram enviados pelo formulário e efetuar a manipulação necessária, assim como enviar diretamente para um banco de dados.

Embora os exemplos mencionados referenciam a variável $_POST todo o conceito cabe também para a variável super global $_GET, com exceção que esta transmite os dados pela barra de endereço do navegador.

VARIÁVEL SUPER GLOBAL $_SERVER

Da mesma forma como $_GET e $_POST a variável super global $_SEVER é tratada como um array, porém seus elementos ou chaves já são pré definidos, isso é, o PHP atribui a esta variável chaves que serão chamadas pelo usuário quando for necessário.

Esta variável permite que o desenvolvedor possa capturar dados de requisição ao servidor, por esse motivo, pode ser que nem todos os dados estarão disponíveis.

Os elementos do array $_SERVER é bem extenso, por se tratar de várias informações que podem ser capturadas para manipulação, como por exemplo o nome do servidor.

<?php 
// Retorna o nome do servidor

  print $_SERVER['SERVER_NAME'];
?>

Outra possibilidade desta variável super global é poder saber qual o endereço de host ou IP que o usuário está acessando determinada página, utilizando a chave 'REMOTE_ADDR', como no exemplo abaixo:

<?php
// Retorna o nome do servidor
  print $_SERVER['REMOTE_ADDR'];
?>

Caso você queira saber quais são todas as chaves da variável $_SERVER jutamente com suas respectivas informações basta você usar o print_r:

<?php
// Retorna todos os dados do servidor
  print_r($_SERVER);
?>

O retorno da impressão será algo descrito abaixo, claro que estas informações irão mudar conforme o ambiente em que você se encontra, este resultado foi extraído de uma host local:

Array
(
    [HTTP_HOST] => localhost
    [HTTP_USER_AGENT] => Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:49.0) Gecko/20100101 Firefox/49.0
    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    [HTTP_ACCEPT_LANGUAGE] => en-US,en;q=0.5
    [HTTP_ACCEPT_ENCODING] => gzip, deflate
    [HTTP_CONNECTION] => keep-alive
    [HTTP_UPGRADE_INSECURE_REQUESTS] => 1
    [HTTP_CACHE_CONTROL] => max-age=0
    [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    [SERVER_SIGNATURE] => 
Apache/2.4.18 (Ubuntu) Server at localhost Port 80

    [SERVER_SOFTWARE] => Apache/2.4.18 (Ubuntu)
    [SERVER_NAME] => localhost
    [SERVER_ADDR] => 127.0.0.1
    [SERVER_PORT] => 80
    [REMOTE_ADDR] => 127.0.0.1
    [DOCUMENT_ROOT] => /var/www/html
    [REQUEST_SCHEME] => http
    [CONTEXT_PREFIX] => 
    [CONTEXT_DOCUMENT_ROOT] => /var/www/html
    [SERVER_ADMIN] => webmaster@localhost
    [SCRIPT_FILENAME] => /var/www/html/exemplo.php
    [REMOTE_PORT] => 39404
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => GET
    [QUERY_STRING] => 
    [REQUEST_URI] => /exemplo.php
    [SCRIPT_NAME] => /exemplo.php
    [PHP_SELF] => /exemplo.php
    [REQUEST_TIME_FLOAT] => 1477323828.198
    [REQUEST_TIME] => 1477323828
)

Veja aqui para saber todas as funcionalidades dos elementos da variável super global $_SERVER e entender mais como cada chave irá operar quando requisitada.

VARIÁVEL SUPER GLOBAL $_FILES

Esta variável contem dados referente a manipulações de arquivos, quando por exemplo se faz um upload de um determinado arquivo, por meio desta variável você pode saber ou até mesmo determinar o tamanho de um arquivo texto ou imagem.

Para que se tenha os elementos ou chaves desta variável, que também é tratada como um array, é necessário que se tenha um arquivo para manipular, como por exemplo utilizando o atributo HTML para carregar um arquivo.

Os elementos da varável $_FILES geralmente são:

name = Nome do arquivo
type   = Tipo do arquivo
Size   = Tamanho do arquivo 

No entanto para você capturar estas informação é necessário que seja feito realmente um upload para que o PHP obtenha as informações do arquivo. Clique aqui e veja mais informações sobre o $_FILE no php.net.

VARIÁVEL SUPER GLOBAL $_COOKIE

Esta variável é uma das mais interessante, porque por meio dela o desenvolvedor pode gravar um pequeno arquivo na máquina do usuário e recuperar estes dados posteriormente.

Muito sites utilizam o $_COOKIE para armazenar senhas e logins e outras informações em um arquivo texto, facilitando o acesso do usuário. Os cookies servem somente para leitura.

Para que possamos trabalhar e manipular cookies devemos criá-los antes que o navegador interprete o HTML, por trabalhar em conjunto com o cabeçalho HTTP, no mais é isso que precisamos saber, portanto escreva sua instrução antes de qualquer instrução html.

E para criar o cookie precisamos de uma função chamada de setcookie() do PHP, nesta função podemos criar os elementos que depois será armazenados em $_COOKIE.

Na função setcookie() você poderá determinar três parâmetros, o nome do cookie, o valor do cookie e o tempo em que o cookie pode espirar.

Suponha então que vocẽ queira criar um cookie que contenha o nome de usuário e sua senha.

O código de criação ficaria da seguinte forma no código PHP:

<?php
 //neste exemplo será criado
 //um cookie para nome do usuario
 //e outro para a senha
 //para simplificar os valores será setados diretamente

setcookie('name','marcelo');
setcookie('senha','juca');
 print '<pre>';
 print_r($_COOKIE);
 print '</pre>';
?>
 
No navegador, carregando a página, você terá a seguinte saída de informação do $_COOKIE.

Array
(
    [name] => marcelo
    [senha] => juca
)

Veja que os elementos dos array setados e seus valores são impressos como resultados, da mesma forma como em outras variáveis globais.

Para imprimir as posições ou chaves do array, você pode fazer a referência de cada um, como no exemplo abaixo:

 <?php
  //imprimindo o valor do cookie
  print $_COOKIE['name']; //será impresso no navegador marcelo
 ?>

Este tipo de variável é muito útil quando se quer ter algumas informações que não são necessárias fazer requisição em banco de dados.

Você também pode excluir uma das posições que estão em $_COOKIE, basta chamar o nome do elemento do array em setcookie porém sem referenciar valor no parâmetro, como o exemplo abaixo:

<?php
 //apagando cookie
 setcookie('name');
?>

Desta forma $_COOKIE['name'] foi apagado da variável. Veja aqui para você saber mais sobre manipulações com a variável super global $_COOKIE.

VARIÁVEL SUPER GLOBAL $_SESSION 

Esta variável é semelhante a variável super global $_COOKIE, pois deve também ser iniciada antes da renderização do HTML. Você deverá iniciar o inicio da sua codificação.

As vantagens de se utilizar sessão são várias, uma delas é que você pode navegar entre as páginas do seu sistema, sem a necessidade de enviar por algum tipo de elemento HTML, como formulários. 

Para que você possa criar uma sessão será necessário utilizar a função session_start().

O exemplo abaixo inicia uma sessão em PHP e cria um elemento ou chave de array para $_SESSION.

<?php
//inicia a sessão
session_start();
 
//Cria uma chave
$_SESSION['login'] = $_POST['usuario'];
?>

O exemplo acima cria uma sessão, e $_SESSION['login'] está recebendo outra variável super global, $_POST['usuario'], como se estivesse recebendo as informações enviadas por um formulário.

Com este tipo de exemplo, você poderia verificar se o usuário realmente fez login no sistema.

Toda vez que você for verificar ou utilizar uma sessão você deve iniciar seu escopo com session_start(), para só dai chamar as sessões criadas.

Para você saber também quais são as chaves que foram criadas em $_SESSION você pode  utilizar o print_r(), da mesma forma como foram mostrado nos exemplos anteriores.

Para excluir uma sessão você pode utilizar a função unset(), ao executar a sessão será perdida.

Ao fechar o navegador a sessão que foi criada também será excluida e deverá ser iniciada novamente. Abaixo um exemplo para excluir uma sessão que foi criada:

<?php
 //excluindo sessão
 unset($_SESSION['login']);
//sessão excluída 
 
?>
Aqui você também poderá encontrar mais informações sobre a variável super global $_SESSION e se aprofundar mais sobre o tema.

Você também poderá gostar destas outras postagens aqui do Blog:
6 Editores para você codificar em PHP
Sublime Text um editor para PHP poderoso
Instalar PHP7, apache Ubuntu
Laço de repetição em PHP
Manipulação de links com o JQuery
Banco de dados Postgres - Aprenda o CASE WHEN
 
Seja bem vindo ao Ubuntu Para Iniciantes, espero que estas informações tenha sido úteis. Deixe seu comentário logo abaixo com suas critícas e sugestões, isso é muito importate. Assine também deixando seu e-mail e receba as novidades a cada nova postagem. Um grande abraço e obrigado.
VARIÁVEL SUPER GLOBAL EM PHP Reviewed by Ubuntu para Iniciantes Marcelo Weihmayr on 23:12:00 Rating: 5

Nenhum comentário :

Olá, faça seu comentário com sugestões, dicas ou críticas

Powered By Blogger , Designed by Sweetheme

Formulário de contato

Nome

E-mail *

Mensagem *

Marcelo Weihmayr. Tecnologia do Blogger.