Fala galera,
Hoje vou publicar o último item sobre PHP, assim fecho o guia básico. No post de hoje vou mostrar como usar as super globais em PHP.
Boa leitura!
Superglobals (Super Globais) em PHP
As variáveis super globais foram introduzidas no PHP 4.1.0 e são variáveis que podem ser utilizadas em qualquer momento, em qualquer parte do script. Nada especial é necessário para que você possa fazer isto, basta usá-las. As super globais são:
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
Agora, vou falar um pouco sobre cada uma delas. Vale lembrar que aqui mesmo no blog já mostrei alguns usos, por exemplo das super globais $_GET e $_POST, que são as mais comuns. Mas como o post de hoje é específico sobre as super globais, vou dar uma pincelada sobre cada uma delas.
$GLOBALS
Este tipo de super global é um tipo mais genérico. Com ele você consegue acessar variáveis globais, de qualquer local do script. Veja o código abaixo:
<?php
$x = 75;
$y = 25;
$z;
?>
<?php
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
?>
Repare que antes de usar a $GLOBALS, eu já tinha as variáveis X e Y declaradas em outro script. No caso de precisar delas em um local digamos, que não estejam disponíveis, usar a super global $GLOBALS resolve o problema.
$_SERVER
Esta super global é usada quando se quer informações sobre o servidor PHP. Exemplo:
<?php
echo $_SERVER['PHP_SELF'];
?>
É claro que este foi um exemplo, para uma lista completa veja esta tabela que tirei da fonte de consulta (W3C) deste post.
Element/Code | Description |
---|---|
$_SERVER[‘PHP_SELF’] | Returns the filename of the currently executing script |
$_SERVER[‘GATEWAY_INTERFACE’] | Returns the version of the Common Gateway Interface (CGI) the server is using |
$_SERVER[‘SERVER_ADDR’] | Returns the IP address of the host server |
$_SERVER[‘SERVER_NAME’] | Returns the name of the host server (such as http://www.w3schools.com) |
$_SERVER[‘SERVER_SOFTWARE’] | Returns the server identification string (such as Apache/2.2.24) |
$_SERVER[‘SERVER_PROTOCOL’] | Returns the name and revision of the information protocol (such as HTTP/1.1) |
$_SERVER[‘REQUEST_METHOD’] | Returns the request method used to access the page (such as POST) |
$_SERVER[‘REQUEST_TIME’] | Returns the timestamp of the start of the request (such as 1377687496) |
$_SERVER[‘QUERY_STRING’] | Returns the query string if the page is accessed via a query string |
$_SERVER[‘HTTP_ACCEPT’] | Returns the Accept header from the current request |
$_SERVER[‘HTTP_ACCEPT_CHARSET’] | Returns the Accept_Charset header from the current request (such as utf-8,ISO-8859-1) |
$_SERVER[‘HTTP_HOST’] | Returns the Host header from the current request |
$_SERVER[‘HTTP_REFERER’] | Returns the complete URL of the current page (not reliable because not all user-agents support it) |
$_SERVER[‘HTTPS’] | Is the script queried through a secure HTTP protocol |
$_SERVER[‘REMOTE_ADDR’] | Returns the IP address from where the user is viewing the current page |
$_SERVER[‘REMOTE_HOST’] | Returns the Host name from where the user is viewing the current page |
$_SERVER[‘REMOTE_PORT’] | Returns the port being used on the user’s machine to communicate with the web server |
$_SERVER[‘SCRIPT_FILENAME’] | Returns the absolute pathname of the currently executing script |
$_SERVER[‘SERVER_ADMIN’] | Returns the value given to the SERVER_ADMIN directive in the web server configuration file (if your script runs on a virtual host, it will be the value defined for that virtual host) (such as someone@w3schools.com) |
$_SERVER[‘SERVER_PORT’] | Returns the port on the server machine being used by the web server for communication (such as 80) |
$_SERVER[‘SERVER_SIGNATURE’] | Returns the server version and virtual host name which are added to server-generated pages |
$_SERVER[‘PATH_TRANSLATED’] | Returns the file system based path to the current script |
$_SERVER[‘SCRIPT_NAME’] | Returns the path of the current script |
$_SERVER[‘SCRIPT_URI’] | Returns the URI of the current page |
Vale testar todas no mesmo esquema do código exemplo (echo + $_SERVER[‘xxx’]) para ver os resultados.
$_REQUEST
Esta super global é usada para recolher dados do formulário após sua submissão. Normalmente nós mandamos as informações dos formulários para uma outra página, mas este exemplo da página de referência é excelente, por isto vou explicá-lo:
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_REQUEST['fname'];
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>
</body>
</html>
Neste exemplo temos um form, que manda suas informações para o mesmo script PHP usando a super global $_REQUEST. É claro que outra super global foi usada ($_SERVER), mas já falei sobre ela aqui neste mesmo post, então vou mostrar somente a $_REQUEST neste trecho.
Quando o usuário clica em submit, o input “Name” do exemplo estará preenchido com o nome do mesmo (assim é esperado pelo menos). Em vez de mandas as informações para outra página, e usar a super global POST para processar as informações, foi usada uma outra super global para que estas informações pudessem ser processadas no mesmo script. E estas informações são obtidas conforme este trecho:
$name = $_REQUEST['fname'];
Uma das utilidades, seria validar as informações preenchidas pelo usuário em PHP antes de salvá-las em algum lugar.
$_POST
Esta super global é amplamente usada quando um formulário é submetido com o method=post. Usando a sintaxe do exemplo abaixo:
$nome = $_POST['nome'];
Desta maneira, a variável nome vai receber o que tinha no input que também tinha esta mesma identificação. A diferença do post para o request, é que no post os dados são enviados para um arquivo diferente do arquivo do formulário.
$_GET
Esta super global é praticamente a mesma coisa da anterior. A diferença é que usamos o get quando um formulário é submetido com o method=get. Só pra constar, segue a sintaxe:
$nome = $_GET['nome'];
Porém, o get tem um uso diferente, que o post não possui. Ele pode ser usado para pegar valores na URL. Veja esta URL de exemplo:
https://sdevlab.wordpress.com/index.html?nome=teste&tipo=php
Em certos sistemas, alguns parâmetros são enviados via URL, seguindo a sintaxe da URL acima. Para recuperar estas informações, basta usar o get no mesmo modelo acima!
Bom galera, com isto fecho esta série de tutoriais sobre PHP 5.
Até a próxima!
Fonte: http://www.w3schools.com/php/
http://www.w3schools.com/php/php_superglobals.asp